两个简单的COM IDL语法问题:是否有方法指定线程模型,以及是否需要void来表示;没有争论;?
两个简单的COM IDL文件问题,即使搜索MSDN和通用互联网,我似乎也找不到答案:两个简单的COM IDL语法问题:是否有方法指定线程模型,以及是否需要void来表示;没有争论;?,com,idl,midl,Com,Idl,Midl,两个简单的COM IDL文件问题,即使搜索MSDN和通用互联网,我似乎也找不到答案: 是否有一个接口属性可以让我指定我的接口仅由STA对象实现,或者这只是我的文档的一个细节?我已经有了[object,local],我认为这对于非远程(进程中)COM对象是正确的 我是否需要在方法声明(如C中)的括号中void,以不指定任何参数?MSDN对此不一致;头文件也是如此。我个人对这个接口的实现将使用C语言 谢谢。您正在谈论要为COM组件指定的线程模型。不,你不能把它放在IDL中,它太重要了。客户端不必使用
[object,local]
,我认为这对于非远程(进程中)COM对象是正确的void
,以不指定任何参数?MSDN对此不一致;头文件也是如此。我个人对这个接口的实现将使用C语言IDL中不需要
HRESULT方法(void)
,使用HRESULT方法()
就足够了。Midl.exe不在乎你使用什么语言。COM充满了未指定的东西,因为在COM的早期,常见的做法是这样的。。。我认为使用void
没有什么害处,我也不知道接口属性能实现什么。(如果其他人想要实现您的界面,那么这对他们来说很好)。支持的线程模型是类的属性,而不是特定的接口。啊,“类的属性”是有意义的。谢谢你的两个答案!在我使用的设置中,线程模型是在一个.cpp文件中指定的(实际上是类似ATL的基的构造函数参数),并且自注册码引用它。我猜MSVC也做了类似的事情。