DLL mit GCC bauen und mit vc++ verwenden
-
Geht das? Frisst der Microsoft Compiler GCC objekt-files? Unter welchen Umständen sind Objekt-Files von unterschiedlichen Compilern überhaupt kompatibel?
Gruss
Stefan
-
wenn du ne dll hast geht das afaik immer, egal in welcher sprache/mit welchem compiler die gebaut wurde...
-
Ok, danke.
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Jetzt fällt mir noch eine Frage ein: Wenn ich eine DLL in C++ verwenden möchte, muss ich ja dazu das passende Headerfile haben. Was macht man denn, wenn die DLL z.B. in Java erstellt wurde?
-
du brauchst kein headerfile.. du kannst direkt die funktionen der dll nutzen...
-
Machine schrieb:
du brauchst kein headerfile.. du kannst direkt die funktionen der dll nutzen...
-
Machine schrieb:
du brauchst kein headerfile.. du kannst direkt die funktionen der dll nutzen...
Das trifft aber nur aufs Binding zu, was du auch dynamisch auflösen kannst. Für einen Aufruf brauchst du immer noch die Signatur, welche normalerweise im Header hinterlegt ist.
-
@__Stefan__:
DLLs unterschiedlicher Compiler mixen geht nur wenn die Compiler entweder dasselbe ABI verwenden, oder wenn man sich auf ein einfaches C-Interface beschränkt.Eine DLL mit C++ Interface von einem Compiler auf einem anderen verwenden geht meist schief.
Was andere Sprachen angeht sieht die Sache im Prinzip ähnlich aus: wenn man sich auf ein reines C-Interface beschränkt dann kann man auch z.B. aus C++ eine DLL verwenden die in Pascal oder sowas geschrieben ist bzw. umgekehrt.
@groovemaster:
Was meinst du mit "Bindings"???
-
Laufzeitbindung. Diese kann man auch dynamisch auflösen (zB unter WinAPI mittels LoadLibrary und GetProcAddress) und so direkt Zugriff, also ohne entsprechende Objektdateien, auf die Funktionen der Bibliothek erhalten. Aber wie gesagt, das nutzt einem nicht viel. Für einen Aufruf benötigt man immer noch die Signatur.