Sto sviluppando il plug-in per Win32 utilizzando mingw e crosscompilation da Linux. Anche se il mio plugin è stato caricato con successo dall'applicazione e ho anche ottenuto un'interfaccia com dall'app, non posso chiamare le funzioni da lì - l'app è in crash. Penso che ciò sia dovuto ad un errato allineamento vtable dell'implementazione dell'interfaccia in mingw (questo ha funzionato perfettamente con MSVS).Come impostare l'allineamento per le funzioni virtuali?
Qualsiasi aiuto sarà apprezzato, grazie.
COM è anche un ABI, ma forse uno che MinGW non supporta così facilmente. :) (COM si basa sul presupposto (non del tutto vero!) Che tutti i compilatori C++ su una determinata piattaforma utilizzeranno la stessa struttura e layout vtable. Sono sorpreso che MinGW lo renda così difficile come la COM è una parte importante di Win32 Altri compilatori C++ supportano tuttavia COM bene, quindi non è necessario utilizzare C o lo stesso compilatore, solo un discreto compilatore C++ per Windows. Naturalmente, è anche possibile eseguire COM in modo C (il codice generato dal Il compilatore IDL di solito definisce anche un'interfaccia C, se è più semplice. –