Jupp, 32 Bit und 64 Bit arbeiten halt nicht zusammen, was schon alleine am Prozessraum (Arbeitsspeicher) liegt, bzw. an den Pointern, welche nicht kompatibel sind.
Egal in welche Richtung.
Es gibt da also nur ein paar Lösungen:
- du brauchst eine 64 Bit-Version der
DLL
- du nutzt eine 32 Bit/64 Bit-Brücke
Das Einzige wo es keinerlei Probleme gibt, ist ein OutOfProcess-Server, denn da kümmert sich Windows um die Datenübergabe,
wobei die
DLL ja wo anders geladen wird und nicht im eigenen Prozess. (der
DLL-Host ist dir eventuell schonmal im Taskmanager aufgefallen)
Du könntest dir notfalls auch selber einen 32 Bit-Host für die
DLL erstellen und stellst dann die Verbindung zu deinem Programm via
IPC her.