Ich entwickle Plug-in für Win32 mit Mingw und Crosscompilation von Linux. Obwohl mein Plugin erfolgreich von der Anwendung geladen wurde und ich sogar eine COM-Schnittstelle von der App bekam, kann ich Funktionen von dort nicht aufrufen - App ist abgestürzt. Ich denke, dass dies auf falsche vtable Ausrichtung der Schnittstellenimplementierung in Mingw zurückzuführen ist (dies funktionierte perfekt mit MSVS).Wie stelle ich die Ausrichtung für virtuelle Funktionen ein?
Jede Hilfe wird geschätzt, danke.
COM ist auch eine ABI, aber vielleicht eine, die MinGW nicht so einfach unterstützt. :) (COM basiert auf der Annahme, dass alle C++ - Compiler auf einer bestimmten Plattform die gleiche Vtable-Struktur und das gleiche Layout verwenden. Ich bin überrascht, dass MinGW es so schwierig macht, dass COM ein wichtiger Teil von Win32 ist Andere C++ - Compiler unterstützen zwar COM, aber Sie müssen nicht C oder den gleichen Compiler verwenden, sondern einen anständigen C++ - Compiler für Windows. Natürlich können Sie COM auch in C (dem von der IDL-Compiler definiert normalerweise auch eine C-Schnittstelle, wenn es einfacher ist. –