FighterFigger Geschrieben 8. April 2003 Geschrieben 8. April 2003 Hallo - Ich sitze gerade in .net. Mein Versuch eine DLL der Firma Inform GmbH in eine .net-C++-Konsolenanwendung mittels LoadLibrary einzubinden, endet inzwischen im Fehlercode 193. "Die Anwendung oder DLL <<meine DLL-Datei>> ist keine gültige Windows-Datei." Ist das der StandardFehler, wenn ich versuche unter Windows 2000 in einer 32-Bit-Anwendung eine 16-Bit-DLL zu binden? HMODULE hLibrary = LoadLibraryEx("Ftrcu.dll", NULL, DONT_RESOLVE_DLL_REFERENCES); ... oder ... HMODULE hLibrary = LoadLibrary("Ftrcu.dll"); ErrCode: 193 %1 is not a valid Win32 application. ERROR_BAD_EXE_FORMAT Die Datei findet er soweit, und die DLL wurde mir mit proffesioneller Software als Schnittstelle geliefert. Sie ist also dafür da, daß ich mir da Funktionen exportiere und diese nutze.
Klotzkopp Geschrieben 8. April 2003 Geschrieben 8. April 2003 Du kannst eine 16Bit-DLL nicht einfach so laden. Mit einem Vorgang, genannt "Flat Thunking" kannst du aus einer 32Bit-Umgebung auf 16Bit-DLLs zugreifen. Der Nachteil daran scheint zu sein, dass du einen 16Bit-Compiler brauchst. Allerdings wird hier, unter der Überschrift "Using the 16bit cards.dll library", ein alternativer Weg beschrieben.
FighterFigger Geschrieben 8. April 2003 Autor Geschrieben 8. April 2003 Ich bin aufgeregt wie ein kleines Schulmädchen und werde in den nächsten Tagen den Hinweisen aus den Quellcodes nachgehen. Über Gelingen und Versagen werde ich hier berichten. Laß mich dich, Klotzkopp, dennoch jetzt schon als meinen persönlichen C++&Stuff-König krönen! :bimei :OD
FighterFigger Geschrieben 9. April 2003 Autor Geschrieben 9. April 2003 Ich habe nun verschiedene weitere Seiten zum Thema Flat Thunk gelesen. Viele habe da ganz andere Lösungen. Allerdings scheint Flat Thunk nur was für Windows'95 ('98 und me) zu sein. Bei NT soll es nicht funktionieren. Da es bei 2000 auch nicht geht, hier meine Frage - hat 2000 einen anderen Mechanismus 16-BitDLLs einzubinden? Wenn nein, wuß ich das wohl mit den ThunkCompiler machen. Schließlich soll das Produkt am Ende auf beiden Oberflächen laufen ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden