Estoy tratando de obtener una respuesta definitiva sobre la forma en que COM se comporta en una máquina x64. ¿Usa Windows la convención de llamadas x64 normal cuando envía llamadas a interfaces COM en máquinas x64 (suponiendo que la implementación COM sea de 64 bits)? Específicamente, genero dinámicamente mis entradas vtbl para apuntar a un fragmento de ensamblaje que se carga dinámicamente durante el tiempo de ejecución. Este ensamblaje necesita saber cómo obtener los parámetros correctamente de quien lo llame. Por lo tanto, me gustaría saber si COM establece la llamada a mi ensamblado utilizando la convención de llamadas x64 estándar (casi llamada rápida).Convención de llamada COM en x64
7
A
Respuesta
3
La convención de llamadas COM es lo que definen las macros STDMETHOD/STDMETHODIMP (y sus variantes). En IA-32, es stdcall
para la mayoría de ellos; No sé qué se usa en x86-64 (solo tengo instalado el compilador cruzado de mingw de 32 bits).
Cuestiones relacionadas
- 1. Acceso COM x86 desde x64 .NET
- 2. Serial/Com Port monitor para Windows x64
- 3. Convención de llamada personalizada X86_64 a C llamada a función
- 4. 64 convención de llamada (pila) y varargs
- 5. Windows 7 x64 COM/puerto serie Sniffer/Redirect
- 6. WiX: registrar el componente .NET COM x86 x64
- 7. Llamar a un ensamblaje x64 a través de COM desde una aplicación de 32 bits
- 8. Depurar un error de convención de llamada a DLL incorrecto
- 9. Convención de llamada ARM a C, registros NEON para guardar
- 10. Métodos de llamada C# de C++ sin usar COM
- 11. ¿Algún caso de uso real para usar la llamada a la convención de llamada rápida?
- 12. Usando x64 dll en la aplicación x86
- 13. Cómo ejecuto PartCover en ventanas x64
- 14. IntPtr.ToInt32() y x64 sistemas
- 15. sizeof (int) en x64?
- 16. ¿Puedo instalar Windbg x86/x64 en mi x64 WIN7?
- 17. Rendimiento bajo con DrawText en Win7 x64
- 18. PyPy en Windows 7 x64?
- 19. Diferencia entre "COM" tradicional y COM + (en servicios de componentes)
- 20. Cambio de una convención de llamada de C# delegado a CDECL
- 21. F # convención de nomenclatura
- 22. Convención de Gmail CSS
- 23. Depuración aplicación .NET x86 en Windows x64 en VS2008
- 24. Node.js convención para devolver varios errores a través de devolución de llamada?
- 25. serialVersionUID convención de nomenclatura
- 26. Puntero de función y convención de llamadas
- 27. WMI Enlazador de error en x64
- 28. x86 Servicio de depurador remoto en x64
- 29. com + alternativa en .net?
- 30. WiX plataforma x64 objetivo
stdmethod no se resuelve a nada cuando se compila para amd64. Así que supongo que la convención de llamadas COM en x64 es la convención de llamadas x64 normal, incluso cuando Windows envía la llamada. – Zach
Probablemente sea la convención de llamada al método normal de Windows x86-64 (que podría ser diferente de la convención de llamadas para los no métodos). – CesarB
x64 tiene una forma única de convención de llamadas: [fastcall] (http://blogs.msdn.com/oldnewthing/archive/2004/01/14/58579.aspx) – lsalamon