32 + 64 bit dll

14/09/2009 - 13:01 von Jürgen Schildmann | Report spam
Hallo,
ich habe eine C++ 32 und 64 bit dll.
Ich möchte mein C# Projekt als AnyCPU erstellen, muss aber per
DllImport die Funktionen der C## dll nutzen. Den dll-Namen gebe ich im
Wrapper mit

private const string FreeImageLibrary = "FreeImage";

an.
Die 64-bit dll heißt "FreeImage64".
Wie kann man sowas handeln ?

Gruß,
Jürgen
 

Lesen sie die antworten

#1 Kerem Gümrükcü
14/09/2009 - 13:37 | Warnen spam
Hallo Jürgen,

Wie kann man sowas handeln ?



nun, ich gehe mal davon aus, dass die exportierten Funktionsnamen
sowohl in der 32-Bit- als auch in der 64-Bit Variante gleich sind. Ich
persönlich bevorzuge folgende Methode (wird auch z.B. vom
Process Explorer und anderen Sysinternals Tools verwendet!) so
das ich beim Programstart überprüfe, auf was für einem System
ich gerade laufe und dann demenstprechend die passende
Library entpacke/downloade oder anderweitig bereistelle .
Die Library hat dann auch nur einen Namen wie z.B. FreeImage,
sowohl auf einem 32-Bit -als auch 64-Bit System,...

Andererseits kannst Du ja auch zur Laufzeit ermitteln, ob Du 32 oder
64 bittig bist und dann eingac hinter den Namen der Konstanten vor
der benutzung eine "64" drannhàngen, dann hast Du das Problem
auch gelöst,...

Grüße

Kerem

Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.pro-it-education.de/soft...iceremover
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen