Wie kann ich einen entrypoint für eine dll
Dachte ich zuerst Einstiegspunkt in dlls DLLMain aber dann, wenn ich versuche zu importieren, die es in C# bekomme ich eine Fehlermeldung, dass entrypoint nicht gefunden, Hier ist mein code:
#include <Windows.h>
int Test(int x,int y)
{
return x+y;
}
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(0,L"Test",L"From unmanaged dll",0);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
Wie kann ich einen Ansatzpunkt für meine dll? Und wenn es Ihnen nichts ausmacht können Sie mir kleine Erklärung über Einstiegspunkt?
Wie muss ich für den import der gleichen dll wieder und ändern Sie den Eintrag Punkt also ich kann andere Funktionen nutzen, die in derselben dll? vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In deinem Beispiel, es scheint, Sie wollen Test (), um einen Eintrag Punkt jedoch sind Sie nicht exportieren. Auch wenn Sie beginnen zu exportieren, es funktioniert möglicherweise nicht richtig mit C++ Namen "Dekoration" (mangeln). Ich würde vorschlagen, die Neudefinition Ihrer Funktion als:
Den
extern "C"
Komponente entfernen C++ name mangling. Die__declspec(dllexport)
Komponente exportiert das symbol.Sehen http://zone.ni.com/devzone/cda/tut/p/id/3056 für mehr detail.
Bearbeiten: Sie können beliebig viele Einstiegspunkte, wie Sie in dieser Art und Weise. Aufrufende code muss lediglich wissen, der name des symbols abrufen (und wenn Sie eine statische .lib, das übernimmt das für Sie).