Gå til innhold

Hvordan importere Postmessage?


Anbefalte innlegg

Skrevet (endret)

Jeg vanker vanligvis i C# forumet, men har nå kommet i en situasjon hvor jeg trenger å vite hvordan syntaksen for å importere funksjoner ser ut i C++. Er det noen som kan vise meg dette? C# versjonen ser slik ut:

[DllImport("User32.dll", CharSet = CharSet.Auto)]
	public static extern bool PostMessage(int hhwnd, uint msg, int wparam, int lparam)

Endret av Velena
Videoannonse
Annonse
Skrevet (endret)

C++ har vel ingen direkte mulighet til å gjøre det du gjøre C# uten å linke med biblioteket filen, men du kan gjøre en runtime linking som vist under (windows).

 

 

 

typedef bool (*PostMessageFnc)(int hhwnd, unsigned int msg, int wparam, int lparam); //spesifiserer funksjonen

PostMessageFnc PostMessage;//global variable

#include <windows.h>

int main()
{
HMODULE	hDLL;

hDLL = LoadLibrary("User32.dll");
if(!hDLL)
	return 1;//problemer med lasting av user32.dll

//PostMessage == null hvis funksjonen ikke finnes.
PostMessage	= (PostMessageFnc) GetProcAddress(hDLL,"PostMessage");	


FreeLibrary(hDLL);//ferdig med dll fila
};

 

 

Endret av Giddion
Skrevet

Legger bare inn en oppklaringspost

 

Statisk linking er nesten lik i som i C++ men du må også ta med .lib fil for at det skal funke (user32.lib) som blir inkludert automatisk av Visual Studio.

 

extern BOOL PostMessage(HWND hWnd, UINT msg, LPARAM lParam, WPARAM wParam)

 

Men i dette tilfellet må du inkludere windows.h så slipper du å gjøre noe som helst.

 

Men det er du sikkert klar over.

  • 1 måned senere...
Skrevet

Er ikke heilt sikker, men går kanskje ann å loade PostMessage dynamisk. Mener jeg så et eksempel på rohitab.com om det her for ei stund siden hvordan man kunne loade WIN-API's dynamisk. Men husker ikke heilt :p

 

- Aleksander -

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...