Avatar billede chump Nybegynder
02. marts 2001 - 11:52 Der er 3 kommentarer

Api opkald i C

hej
hvordan deklarerer jeg et windows32 api opkald i C? Jeg bruger compileren LCC-Win32...Det kunne være fedt hvis nogen kunne give mig et eksempel på et opkald som gettickcount()

På forhånd tak





Avatar billede wisen Nybegynder
02. marts 2001 - 12:19 #1
Nu kender jeg ikke lige den compiler, men den normale procedure er at :

1) indlæse (LoadLibrary) den dllfil, hvor funktionen ligger i. (i dette tilfælde Kernel32.dll)

2) Finde \"adressen\" på funktionen (GetProcAddress)

3) Køre funktionen...

Hvordan det lige implementeres i din compiler, kan jeg desværre ikke hjælpe dig med...
Avatar billede wisen Nybegynder
02. marts 2001 - 13:46 #2
Et halvt og ikke testet eksempel :

<snip>

HANDLE hwndlib;
HHOOK (*fn)();
DWORD count;

hwndlib=LoadLibrary(\"KERNEL32.DLL\");
fn=GetProcAddress(hwndlib,\"GetTickCount\");
count = (DWORD) (*fn)();

</snip>

Som sagt er det ikke testet, snarere noget jeg lige fandt på...
Avatar billede moykal Nybegynder
10. marts 2001 - 16:30 #3
Ikke for noget. Men har du ikke en header a la windows.h? Ellers er du mildest talt på glatis. LCC-compileren, er det ikke den, Mathworks leverer med til Matlab? Eller er det en fri compiler. Du må ikke gøre dig den bjørne-tjeneste som foreslået ovenfor, medmindre du har for meget tid. Du kan altid gå ind på Microsofts MSDN side www.msdn.microsoft.com og se hvad typen af div. funktioner er. For GetTickCount er det:

DWORD GetTickCount(void);

I dette simple eksempel kan du blot skrive:

extern DWORD GetTickCount(void);

int main(void) {
  :

  const DWORD dwTickCount = ::GetTickCount();

  :

  return 0;
};

Husk at linke til det rigtige bibliotek. Kender ikke options til LCC, men det må din doc fortælle dig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester