Billie
Erfahrenes Mitglied
Hellas!
Folgendes neues Problem, ich hab eine DLL welche Windows-Messages verarbeiten soll. Die DLL selbst sollte aber kein sichtbares Fenster besitzten, nur einen gültigen Window-Handle.
Also folgenden Code habe ich schon, bin für alle Kommentar und Verbesserungen offen:
Das Problem, GetLastError sagt mir bei CreateWindow "1400". Übrigens, gibt es eine einfache Möglichkeit mir den Namen der Konstante anstatt den Wert auszugeben? Zum Beispiel statt 1400 "INVALID_WINDOW_HANDLE"?!
Übrigens, der Compiler schreibt Warnungen raus:
Zeile 32 ist folgende:
und 35 folgende:
Besten Dank für Hilfe!
Billie
Folgendes neues Problem, ich hab eine DLL welche Windows-Messages verarbeiten soll. Die DLL selbst sollte aber kein sichtbares Fenster besitzten, nur einen gültigen Window-Handle.
Also folgenden Code habe ich schon, bin für alle Kommentar und Verbesserungen offen:
C:
HWND hWnd;
unsigned __stdcall Thread(void* pArguments) {
WNDCLASSEX wndclass;
MSG msg;
wndclass.cbSize = sizeof(wndclass);
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = "XFS Window ClassName";
RegisterClassEx(&wndclass);
hWnd = CreateWindow("XFS Window ClassName", "XFS", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hModule, NULL);
printf("CreateWindow: %d\n", GetLastError());
ShowWindow(hWnd, SW_SHOW);
while(GetMessage(&msg, hWnd, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
Sleep(100L);
}
return 0;
}
BOOL APIENTRY DllMain(HMODULE _hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if(DLL_PROCESS_ATTACH == ul_reason_for_call) {
if (hModule == NULL) {
hModule = _hModule;
}
hThread = (HANDLE) _beginthreadex(NULL, 0, &Thread, NULL, 0, &threadID);
} else if(DLL_PROCESS_DETACH == ul_reason_for_call) {
printf("DLL_PROCESS_DETACH\n");
CloseHandle(hThread);
}
return TRUE;
}
Das Problem, GetLastError sagt mir bei CreateWindow "1400". Übrigens, gibt es eine einfache Möglichkeit mir den Namen der Konstante anstatt den Wert auszugeben? Zum Beispiel statt 1400 "INVALID_WINDOW_HANDLE"?!
Übrigens, der Compiler schreibt Warnungen raus:
Code:
1>.\dllmain.c(32) : warning C4133: '=': Inkompatible Typen - von 'char [25]' zu 'LPCWSTR'
1>.\dllmain.c(35) : warning C4133: 'Funktion': Inkompatible Typen - von 'char [25]' zu 'LPCWSTR'
1>.\dllmain.c(35) : warning C4133: 'Funktion': Inkompatible Typen - von 'char [8]' zu 'LPCWSTR'
Zeile 32 ist folgende:
C:
wndclass.lpszClassName = "XFS Window ClassName";
und 35 folgende:
C:
hWnd = CreateWindow("XFS Window ClassName", "XFS", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hModule, NULL);
Besten Dank für Hilfe!
Billie