Wie kann ich einen Einstiegspunkt für eine DLL setzen?

8

Zuerst dachte ich Eintrittspunkt in dlls DLLMain, aber wenn ich versuche, es in C # zu importieren, erhalte ich einen Fehler, dass entrepoint nicht gefunden wurde Hier ist mein Code:

%Vor%

Wie kann ich einen Einstiegspunkt für meine DLL festlegen? Und wenn es Ihnen nichts ausmacht, können Sie mir eine kleine Erklärung über den Eintrittspunkt geben?

Wie muss ich die gleiche DLL wieder importieren und den Einstiegspunkt ändern, damit ich andere Funktionen in derselben DLL verwenden kann? Danke im Voraus.

    
method 04.10.2011, 17:19
quelle

1 Antwort

10

In Ihrem Beispiel scheint es, dass Test () ein Einstiegspunkt ist, den Sie jedoch nicht exportieren. Selbst wenn Sie mit dem Exportieren beginnen, funktioniert es möglicherweise nicht richtig mit C ++ - Name "Dekoration" (Mangling). Ich würde vorschlagen, Ihre Funktion als neu zu definieren:

%Vor%

Die extern "C" -Komponente wird C ++ - Namensfehlern entfernen. Die Komponente __declspec(dllexport) exportiert das Symbol.

Weitere Informationen finden Sie Ссылка .

Bearbeiten: Sie können auf diese Weise beliebig viele Eintrittspunkte hinzufügen. Calling-Code muss nur den Namen des Symbols kennen, das abgerufen werden soll (und wenn Sie eine statische .lib erstellen, kümmert sich diese für Sie).

    
mah 04.10.2011, 17:25
quelle

Tags und Links