Gå til innhold

Hvordan importere Postmessage?


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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
Lenke til kommentar

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.

Lenke til kommentar
  • 1 måned senere...

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...