C als Interface für ander Programmiersprache -> Linkerproblem bei DLL-Aufrufen
-
Hallo,
folgendes Problem:
Ich habe eine DLL die nur mit C kompatible ist (da in der verwendeten Sprache Datentypen wie pointer, long, etc. nicht verfügbar sind).
Allerdings gibt es dort eine C-API, mit deren Hilfe man auf C-Code zugreifen kann.Aus beiden Programmstücken werden dann Objektdateien erstellt. Diese müssten dann gelinkt werden.
Gelinkt wird mit dem C-Compiler (VC++6).Im C-Programm öffne und behandle ich die DLL mit FreeLibrary(), GetProcAdress(), LoadLibraray()
Wenn ich das reine C-Programm compiliere und linke funktioniert alles wie gewünscht.
(Linker: link /out:CAPI.exe C_API.obj
Compilerbatch: cl /c /MD /I D:\read\include\ "%1" )Füge ich jetzt das Programm aus der anderen Sprache beim linken hinzu (Linkoptionen : link /out:test.exe /Entry:_xppStartup /SUBSYSTEM:CONSOLE C_API.obj Xbase.obj Xpprt0.lib )
werden auf einmal die die Funktionen FreeLibrary(), GetProcAdress(), LoadLibraray() nicht mehr gefunden.Fehlermeldung:
C_API.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__FreeLibrary@4
C_API.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__GetProcAddress@8
C_API.obj : error LNK2001: Nichtaufgeloestes externes Symbol __imp__LoadLibraryA@4
MSVCRT.lib(bsku.obj) : error LNK2001: Nichtaufgeloestes externes Symbol __imp__GetUserDefaultLangID@0
test.exe : fatal error LNK1120: 4 unaufgeloeste externe VerweiseMuss ich vielleicht noch eine lib beim linken angeben? Ich hoffe es kann jemand helfen...
-
Dieser Thread wurde von Moderator/in Shade Of Mine aus dem Forum ANSI C 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.