Estoy desarrollando plug-in para Win32 usando mingw y crosscompilation de linux. A pesar de que mi complemento se cargó satisfactoriamente con la aplicación e incluso obtuve una interfaz de interfaz de la aplicación, no puedo llamar a las funciones desde allí: la aplicación se ha bloqueado. Creo que esto se debe a la alineación de vtable incorrecta de la implementación de la interfaz en mingw (esto funcionó perfectamente con MSVS).¿Cómo establecer la alineación para funciones virtuales?
Cualquier ayuda será apreciada, gracias.
COM también es un ABI, pero quizás uno que MinGW no admite tan fácilmente. :) (COM se basa en el supuesto (¡no del todo cierto!) De que todos los compiladores de C++ en una plataforma determinada usarán la misma estructura y diseño de vtable. Me sorprende que MinGW lo haga tan difícil ya que COM es una parte importante de Win32 Sin embargo, otros compiladores de C++ son compatibles con COM, por lo que no necesita usar C o el mismo compilador, solo un compilador decente de C++ para Windows. Por supuesto, también puede hacer COM en línea recta C (el código generado por el El compilador IDL normalmente también define una interfaz C) si es más fácil. –