Re: winapi, dll

2020-10-15 Thread Jack via Digitalmars-d-learn

On Thursday, 15 October 2020 at 20:13:37 UTC, Atmosfear wrote:

On Thursday, 15 October 2020 at 16:32:06 UTC, Imperatorn wrote:

On Thursday, 15 October 2020 at 12:45:42 UTC, Atmosfear wrote:
I didn't find how to call the queryperformancecounter 
function. I tried this. Returns errors, doesn't know what 
BOOL and LARGE_INTEGER are.


import core.sys.windows.windows;
import core.sys.windows.w32api;
import core.sys.windows.winbase;
pragma(lib, "kernel32");
extern (Windows)
{
BOOL QueryPerformanceCounter(LARGE_INTEGER 
*lpPerformanceCount);

}
void main()
{}


It's already defined. Just use QueryPerformanceCounter, (no 
extern).


I'm a newby. Can you show me an example? In which module is it?


When you do the import, it include already the function ready to 
use, it isn't like C#'s PInvoke system for example, where tou 
need to add a function sginature/prototype with the dll where 
it's defined.


Re: winapi, dll

2020-10-15 Thread Mike Parker via Digitalmars-d-learn

On Thursday, 15 October 2020 at 20:59:10 UTC, Atmosfear wrote:



I use online DMD. I'll try VS 2019 with the VisualD.


That's the issue, then. The online versions of DMD run on Linux. 
You don't need VisualD for this. Just plain old dmd in a text 
editor will do.


Re: winapi, dll

2020-10-15 Thread Atmosfear via Digitalmars-d-learn

On Thursday, 15 October 2020 at 20:47:43 UTC, Imperatorn wrote:

On Thursday, 15 October 2020 at 20:13:37 UTC, Atmosfear wrote:

On Thursday, 15 October 2020 at 16:32:06 UTC, Imperatorn wrote:

[...]


I'm a newby. Can you show me an example? In which module is it?


I see. What Editor/IDE are you using btw?

If you use Visual Studio 2019 with the VisualD extension or 
Visual Studio Code with the D Programming Language (code-d) 
extension you can get some nice help with these kinds of things.


To the question, try this:

import std.stdio;

import core.sys.windows.winbase;
import core.sys.windows.windef;
import core.sys.windows.windows;

void main()
{
LARGE_INTEGER li;

BOOL b = QueryPerformanceCounter();

//Don't know what you're after. Defined in winnt
writeln(li.QuadPart);

readln();
}


I use online DMD. I'll try VS 2019 with the VisualD.


Re: winapi, dll

2020-10-15 Thread Imperatorn via Digitalmars-d-learn

On Thursday, 15 October 2020 at 20:13:37 UTC, Atmosfear wrote:

On Thursday, 15 October 2020 at 16:32:06 UTC, Imperatorn wrote:

On Thursday, 15 October 2020 at 12:45:42 UTC, Atmosfear wrote:
I didn't find how to call the queryperformancecounter 
function. I tried this. Returns errors, doesn't know what 
BOOL and LARGE_INTEGER are.


import core.sys.windows.windows;
import core.sys.windows.w32api;
import core.sys.windows.winbase;
pragma(lib, "kernel32");
extern (Windows)
{
BOOL QueryPerformanceCounter(LARGE_INTEGER 
*lpPerformanceCount);

}
void main()
{}


It's already defined. Just use QueryPerformanceCounter, (no 
extern).


I'm a newby. Can you show me an example? In which module is it?


I see. What Editor/IDE are you using btw?

If you use Visual Studio 2019 with the VisualD extension or 
Visual Studio Code with the D Programming Language (code-d) 
extension you can get some nice help with these kinds of things.


To the question, try this:

import std.stdio;

import core.sys.windows.winbase;
import core.sys.windows.windef;
import core.sys.windows.windows;

void main()
{
LARGE_INTEGER li;

BOOL b = QueryPerformanceCounter();

//Don't know what you're after. Defined in winnt
writeln(li.QuadPart);

readln();
}





Re: winapi, dll

2020-10-15 Thread John Chapman via Digitalmars-d-learn

On Thursday, 15 October 2020 at 20:13:37 UTC, Atmosfear wrote:

On Thursday, 15 October 2020 at 16:32:06 UTC, Imperatorn wrote:

On Thursday, 15 October 2020 at 12:45:42 UTC, Atmosfear wrote:
I didn't find how to call the queryperformancecounter 
function. I tried this. Returns errors, doesn't know what 
BOOL and LARGE_INTEGER are.


import core.sys.windows.windows;
import core.sys.windows.w32api;
import core.sys.windows.winbase;
pragma(lib, "kernel32");
extern (Windows)
{
BOOL QueryPerformanceCounter(LARGE_INTEGER 
*lpPerformanceCount);

}
void main()
{}


It's already defined. Just use QueryPerformanceCounter, (no 
extern).


I'm a newby. Can you show me an example? In which module is it?


Just import core.sys.windows.windows and call the function like 
so:


---
import core.sys.windows.windows;

void main() {
  LARGE_INTEGER pc;
  QueryPerformanceCounter();
}
---


Re: winapi, dll

2020-10-15 Thread rikki cattermole via Digitalmars-d-learn

On 16/10/2020 9:13 AM, Atmosfear wrote:


I'm a newby. Can you show me an example? In which module is it?


You can search for it on Github and it'll show up.

https://github.com/dlang/druntime/search?q=QueryPerformanceCounter


Re: winapi, dll

2020-10-15 Thread Atmosfear via Digitalmars-d-learn

On Thursday, 15 October 2020 at 16:32:06 UTC, Imperatorn wrote:

On Thursday, 15 October 2020 at 12:45:42 UTC, Atmosfear wrote:
I didn't find how to call the queryperformancecounter 
function. I tried this. Returns errors, doesn't know what BOOL 
and LARGE_INTEGER are.


import core.sys.windows.windows;
import core.sys.windows.w32api;
import core.sys.windows.winbase;
pragma(lib, "kernel32");
extern (Windows)
{
BOOL QueryPerformanceCounter(LARGE_INTEGER 
*lpPerformanceCount);

}
void main()
{}


It's already defined. Just use QueryPerformanceCounter, (no 
extern).


I'm a newby. Can you show me an example? In which module is it?


Re: winapi, dll

2020-10-15 Thread Imperatorn via Digitalmars-d-learn

On Thursday, 15 October 2020 at 12:45:42 UTC, Atmosfear wrote:
I didn't find how to call the queryperformancecounter function. 
I tried this. Returns errors, doesn't know what BOOL and 
LARGE_INTEGER are.


import core.sys.windows.windows;
import core.sys.windows.w32api;
import core.sys.windows.winbase;
pragma(lib, "kernel32");
extern (Windows)
{
BOOL QueryPerformanceCounter(LARGE_INTEGER 
*lpPerformanceCount);

}
void main()
{}


It's already defined. Just use QueryPerformanceCounter, (no 
extern).