Wenn die Oracle-DLL Objekte wie std::string
empfängt und/oder weitergibt oder jedes andere Objekt, das entweder:
- Manipuliert den Heap in irgendeiner Weise, oder
- Die Objekte können unterschiedliche Interna zwischen App und DLL haben,
dann haben Sie keine andere Wahl, als die richtige Bibliothek zum Verknüpfen zu verwenden. Andernfalls landen Sie damit, dass Binär- oder Heap-inkompatible Objekte übergeben werden, was zu dem führt, was Sie jetzt sehen.
Siehe hier:http://docs.oracle. com/cd/E11882_01/appdev.112/e10764/install.htm#CBHGBBJI
Der obige Link erwähnt sowohl die Debug-Importbibliothek als auch die Debug-Version der DLL. Auch dies ist unter dem Link angegeben:
Applications that link to MSVCRTD.DLL, a debug version of Microsoft C-Runtime, /MDd compiler flag, should link with these specific OCCI libraries: oraocci11d.lib and oraocci11d.dll.