stdcall DLL
-
Hallo,
Ich habe das Visual Studio 2008 und versuche gerade eine DLL mit stdcall zu erstellen. Das klappt auch alles soweit nur habe ich nach dem erstellen der DLL keine Exporte drin.
Bin nach der Anleitung vorgegangen http://www.schlotsoft.de/coder/vb/dllcoding.htm
Nur leider finde ich den Punkt Packages nicht mehr im VS2008. Wo ist die Funktion, dass die Funktionen nicht in einer lib abgelegt werden, sondern direkt in der dll?
-
Falsches Forum: Visual C++ oder WinAPI wären besser.
Ansonsten: Erstelle einfach ein Win32 Library Project, da kommt automatisch eine DLL raus. Dann mit dllexport oder *.def File die Funktionen exportieren.
Simon
-
Wo ist denn das? Das gibt es bei mir nicht eine Win32-Library-Projekt.
Ich habe nur Win32-Konsolenwnwendung und Win32-Projekt, aber eben kein Library-Projekt.
Das Projekt dass ich bisher hatte war ein Win32-Projekt auf DLL gestellt und leer. Erstellen tut er mir ja die DLL auch, aber eben auch eine lib-Datei, die ich gar nicht will, sondern alles in der DLL!
-
Die *.lib wird generiert sobald du etwas exportierst.
Entweder ist darin der ganze Code (statische Library, keine *.dll) oder nur Stubs (dann gibts auch eine *.dll).
Die *.lib wird nicht benötigt, falls Du die DLL dynamisch lädst (mit LoadLibrary, FreeLibrary, GetProcAddress).
Simon
-
OK Danke!
Mittlerweile habe ich das hinbekommen.
Allerdings habe ich jetzt das Problem, dass die andere DLL per __cdecl die Funktionen aufruft. Mein Linker bringt mir jetzt Fehler dass er diese nicht per __stdcall aufrufen kann.
Wie kann ich eine DLL von cdecl zu stdcall wrappen?
PS: Habe von der DLL nur die lib und die dll selbst!
-
Ich habe es jetzt einfach mal mit __cdecl direkt vor den Funktionsdeklarationen geschrieben, allerdings akzeptiert er das nicht wenn es sich dabei um eine Zeiger-Funktion handelt.
Also bei
extern "C" int __cdecl fkt1() -> kein Fehler extern "C" int __cdecl *fkt2() -> Fehler
-
Der Stern bezieht sich ja nicht auf die Funktion sondern auf das "int", oder?
Dann schreib es auch so!extern "C" int* __cdecl fkt2();
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.