如果我加另外一个函数
fun2(int a)
则在CB.cpp以及CB.h里能看到开发环境生成的这个函数定义
fun2(int a)
则在CB.cpp以及CB.h里能看到开发环境生成的这个函数定义
解决方案 »
- LButtonUp()绘图后,遮盖窗口或最小化窗口后,图像(文本、图像)消失了
- postmessage()中的消息映射方法为什么没有执行
- 控件发生变化时,我没有调用UpdateData();但与控件关联的变量却已经获得了值了,这是怎么回事啊?
- API程序内存出错
- 怎样识别硬盘是IDE的还是SCSI?
- 大家来看看,分不够另开帖送分,切换视图,在线等…………
- 高分求教VC开发数据库的问题,回复都有分!
- 如何枚举一个局域网中的SQL server 服务器
- 毕设做一个OBJ文件读取工具 OPENGL 跪求
- 有人玩soui界面库吗?
- 急急急!!!请热心人帮忙!
- 《com原理及应用》第四章代理存根dll的问题
2.再这项目里再new一个simple object Name为B,给IB接口add一个方法CallA_fun([in] IA* pIA)现在的疑问是:
在第一步时,在CA.cpp里面,wizard能帮你生成 STDMETHODIMP CA::fun(){return S_OK }
而第二步完后而做完第二步时,wizard确没有帮我在CB.cpp里add我想要代码 STDMETHODIMP CA::fun(IA *pIA){return S_OK;} 请问为什么
由于idispatch方法中只支持automation数据类型.所以用用户自定义的数据类型或者一些特殊的c++的数据类型酒会出现这种问题.
解决的方法:
1.把IB改为继承自iunknown
2.CallA_fun([in] Idisptach* pIA)
3.CallA_fun([in] variant pIA) 然后取pIa.pdispatch的值
4,如果你非要用idispatch实现CallA_fun([in] IA* pIA)的话,可以加一个接口ic(继承自iunknown),然后加入CallA_fun([in] IA* pIA),在ib中实现Ic接口.
以上几种方法因该是可行的.但是没有具体试过.写的很匆忙,如果有说的不对的地方,请给位高手指出.:)
有个偷懒的办法值得一试,我经常这样偷懒,把
CYouClass :
......
pulic IB //!!!!!
{
BEGIN_COM_MAP(CESHEWord2Html)
......
COM_INTERFACE_ENTRY(IB) //!!!!!!
......
END_COM_MAP()
};
把作上标记的两行删除掉,然后选 Implement Interface 选上 IB ,呵呵,就行了。
是的,向导并没有帮我生成那段代码,后来我自在h和cpp中加的那段定义
但你有没觉得 tonkeycn说的有道理,我觉得有^_^,欢迎继续讨论