VS 2008 - problene beim kompilieren einer DLL Datei (Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR'..)
-
moin moin,
ich habe da ein recht großes Problem mit Visual Studio 2008. Es lässt sich einfach keine meienr DLL's kompilieren (welche zuvor auf einem anderen Kompiler liefen!)Ich habe mal ein neues WIN32 Project erstellt, DLL ausgewählt und bei der testdll.c folgenden Eintrag gemacht.
bool APIENTRY DllMain( HMODULE hModule, DWORD reason, LPVOID lpReserved ) { switch (reason) { case DLL_PROCESS_ATTACH: MessageBox(NULL,"test","test",MB_OK); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }ALs Fehlermeldung bekomme ich folgendes:
error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglichIch habe auch bereits ein leeres Project begonne und mal eine funktionierende DLL aus dem Board kopiert:
define MAKE_DLL #define _WIN32_WINNT 0x500 #include <windows.h> using namespace std; extern "C" int WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) { switch( fdwReason ) { case DLL_PROCESS_ATTACH: MessageBox(NULL,"Gut","Injected",MB_OK); break; case DLL_PROCESS_DETACH: break; } return TRUE; }Dort bekome ich ebenfalls den gleichen Fehler. Er nimmt einfach nicht die Werte für die MSG Box an. Bei einem ganz normalen C Project ohne DLL gedöns funktioniert alles prima.
Jemand eine Idee ?
-
rafi schrieb:
ALs Fehlermeldung bekomme ich folgendes:
error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'const char [5]' in 'LPCWSTR' nicht möglichScheint so als hättest Du ein Unicodeprojekt angelegt? Das kannst Du in den Projekt-Eigenschaften unter Konfigurationseigenschaften/Allgemein/Zeichensatz umstellen.
Gruss
foodax
-
Und warum benutzt du nicht ::AfxMesasageBox() ?
-
Pack deine Strings in das _T()-Makro:
MessageBox(NULL,_T("test"),_T("test"),MB_OK);