Ich habe eine kurze DLL erstellt, die eine MessageBox anzeigen wird, wenn es von einem Prozess geladen wird. Das Meldungsfeld wird jedoch zweimal angezeigt. Es sieht also so aus, als ob die DLL-Exportfunktion zweimal aufgerufen wird. Könnten Sie bitte sehen, ob etwas in meinem Code geändert werden muss, damit die MessageBox nur einmal angezeigt wird?DLL-Exportfunktion, die zweimal aufgerufen wird
#include <windows.h>
#include <stdio.h>
__declspec(dllexport) void sampledllmain()
{
MessageBox(NULL, "sample text","sample title", 0);
}
BOOL APIENTRY DllMain(HANDLE hHandle, DWORD dwReason, LPVOID Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
sampledllmain();
break;
}
return 1;
}
lade ich die DLL mit rundll32 wie unten dargestellt:
rundll32 "path to DLL",sampledllmain
Ihr Aufruf 'mit' DllMain' und mit dem 'rundll32' Aufruf sampledllmain' anruft, wählen Sie bitte eine zweite Dummy-Funktion für Ihre Tests hinzufügen, so dass Sie verwenden können,' rundll32 "Pfad zu DLL", dummy' – dvhh
Natürlich würde es zweimal aufgerufen werden. Entferne 'sampledllmain' von' DllMain'. – Ari0nhh