在定义一个com接口的时候是不是一定要使用extern "C"
就是说是不是说一定要把一个接口定义在
extern "C"中
我在写一个使用完全使用c++写的com时,建立一个IUnknown的接口,但是有这样的提示error
error C2011: 'IUnknown' : 'struct' type redefinition
是不是这个文件是在什么地方定义的???
是什么库定义的它
这个库不使用行吗???????
就是说是不是说一定要把一个接口定义在
extern "C"中
我在写一个使用完全使用c++写的com时,建立一个IUnknown的接口,但是有这样的提示error
error C2011: 'IUnknown' : 'struct' type redefinition
是不是这个文件是在什么地方定义的???
是什么库定义的它
这个库不使用行吗???????
解决方案 »
- VC线程中关闭串口
- 向父窗口发送消息的问题
- VC++6.0和VC++2005的区别,有分送哈!
- 求iphlpapi.lib和iphlpapi.h
- 请问我用Splitter分割的各个View里面可不可以放入工具条,怎么放?
- 调试时如何去掉output窗口中的waring
- SkinMagic ToolKit 1.8
- 我在研究三维鼠标的sdk,编译错误:ERROR: an OS type must be defined -- e.g. OS_WIN32,如何解决
- 打印机仿真?
- 请教关于IOCP模型中如何设置Socket的Send Buffer?
- 怎样才能在windows启动后,让我的程序最先运行?也就是我的程序先于其他程序运行 .
- ((IUnknown*)*ppv );有什么区别
你别在VC下,看它还认识IUnknown吗?
贴你代码
建议先别学com 把c++ 学精 虽然com和语言无关,但c++是写com组件的最好的语言而且绝大多数讲com书都是以c++作为例子开发语言的
除非你自己创造一个语言,开发一个编译器,你把IUnknown定义成啥都行,否则就得按c++的规矩走
接口定义解决了c++的name mangling问题,就不用extern "C"
同时解决了二进制的继承问题。
那是用com语言(应该说语法是类似于c的)来实现的,它独立于编译器。