Domanda

Sto cercando di ottenere una risposta definitiva riguardo al modo in cui COM si comporta su una macchina x64. Windows utilizza la normale convenzione di chiamata x64 quando si inviano chiamate a interfacce COM su macchine x64 (supponendo che l'implementazione COM sia a 64 bit)? In particolare, generi dinamicamente le mie voci vtbl per puntare a un pezzo di assembly che viene caricato dinamicamente durante il runtime. Questo assembly deve sapere come ottenere correttamente i parametri da chiunque lo chiami. Pertanto, vorrei sapere se COM imposta la chiamata al mio assembly utilizzando la convenzione di chiamata x64 standard (praticamente fastcall).

È stato utile?

Soluzione

La convenzione di chiamata COM è qualunque sia la macro STDMETHOD / STDMETHODIMP (e le loro varianti) che definisce. Su IA-32, è stdcall per la maggior parte di essi; Non so cosa sia usato su x86-64 (ho installato solo il cross-compilatore mingw a 32 bit).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top