weiß jemand wie ich unter Visual Studio.NET eine c++ DLL in meinem c++ Hauptprogramm einbinde??? Es ist ja so, dass Microsoft seine dot Net-Entwicklung ja mit so vielen Erleichterungen angepriesen hat. Nun kann man ja im Solutionexplorer eine neue Referenz hinzufügen. Diese bindet ja dann automatisch eine neue DLL mit ein. Funktioniert bis dahin auch alles super. Wie lautet denn dann die Syntax um Funktionen aus der DLL aufzurufen? Scheint unter .NET irgendwie anders zu funktionieren.
naja machst du ein normales C++ Programm? Dann ist das genauso wie vorher, wenn du ein Managed C++ benutzt (also mit .NET-Framework, ists anders, genauso wenn du ein C#-Programm machst)
Beim ersten kommts eben drauf an ob du die DLL manuell laden willst oder ob du sie statisch anbinden (an-!) willst.
wobei ich da immer die dazugehörige Header Datei benutzten würde, wenn es eine fremd dll ist, anstatt das selbst zu machen. es muss ja nicht unbedingt __declspec sein.
Habe mir nun eine kleine DLL erstellt, die nur eine Funktion besitzt. Dann ein neues "Windows Forms Application.NET" Projekt erzeugt, indem eine Oberfläche nur mit einem Button für den Funktionsaufruf vorhanden ist. Dann habe ich mit "Reference hinzufügen" im "Solutionexplorer" die andere DLL geladen. Die Funktion kann ich mir dann im neuen Projekt ansehen. (Muß wohl irgendie LoadLibrary und so ersetzen)
Sie wird auch beim Funktionsaufruf vorgegeben. Beispiel:
private: System::Void Function_Click(System::Object * sender, System::EventArgs * e) { dll_function::FUNCTION(); //dll_ function ist die implementierte DLL }
Bekomme aber dann folgende Medlung vom Kompiler:
d...\TEST.h(81): error C3257: 'dll_function::FUNCTION::FUNCTION' : cannot create a temporary object of a managed type.
Die MSDN hilfe sagt mir: ....This temporary object is created on the stack because there is no call to new.
Aber wie??? Mit "int __declspec(dllimport) FUNCTION();" habe ich auch Ergebnisse. Und die Funktion kennt er ja auch nun.