DLL mit Multithreading?
-
Hallo,
Ich wollte eine kleine DLL coden, die sollte einen Thread starten, jedoch hab ich probleme beim compilieren der DLL :#include <windows.h> #include <process.h> #ifdef __cplusplus #define EXPORT extern "C" __declspec (dllexport) #else #define EXPORT __declspec (dllexport) #endif typedef struct { //[...] HWND hwnd; }CONFIG; typedef struct { BOOL Work; HWND hwnd; }PARAMS; void Thread (PVOID ptr) { PARAMS* params = (PARAMS*)ptr; while(params->Work) { MessageBox(params->hwnd, "Test", "Test", 0); Sleep(2000); } return; } int WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved) { return TRUE; } EXPORT BOOL CALLBACK AutostartPlugin(BOOL startThread) { PARAMS thread; thread.Work = startThread; thread.hwnd = config->hwnd; _beginthread(Thread, 0, &thread); return TRUE; }
es fehlt hier der teil, damit ich den Thread beenden kann, ist mir klar, wills auch erstmal nur compilieren...
Nur : Wie mache ich das?
"bcc32 -tWD testdll.cpp" habe ich probiert : "undefined symbol _beginthread [...]" und was anderes als -tWD für DLLs kenne ich nicht.Danke
-
moin meister ...
wer sucht der findet ...
Schau mal in die Hilfe zu den CLT´s
Allgemeine Compiler-Ausgabeoptionen:
Multi-Thread-Anwendung erzeugen (Kommandozeilen-Äquivalent = -tWM)
Der Compiler erzeugt eine Multi-Thread-Anwendung (EXE-Datei bzw. DLL). (Die Kommandozeilenoption -WM wird nur aus Gründen der Abwärtskompatiblilität unterstützt. Sie leistet dasselbe wie die Option -tWM.)
Diese Option wird nicht benötigt, wenn Sie eine Modul-Definitionsdatei in Ihr Compilat einbinden und Befehle einbinden, die den Typ der zu erzeugenden 32-Bit-Anwendung festlegen.mfg
RB