我正在使用的这本书描述了COM的C ++用法,并推荐__stdcall作为说明符,认为更多语言使用这种堆栈清理方法。
但是,我正在考虑未来与C#的互操作性。 C#默认使用stdcall,还是必须指定?
答案 0 :(得分:2)
使用COM互操作,无关紧要。
如果你使用C#调用平台调用服务(P / Invoke),那么stdcall是默认值。 (从技术上讲,它是Winapi,默认为桌面上的Stdcall),但可以在DllImport
规范中覆盖它。
答案 1 :(得分:2)
我建议使用stdcall作为默认说明符,因为它是C#使用的默认值。但是,通过“CallingConvention”属性更改调用约定是微不足道的。
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.callingconvention.aspx