VC下MFC,调用Com类型库遇到的问题的解决
来源:互联网 发布:笔袋淘宝 编辑:程序博客网 时间:2024/05/24 03:29
VC建立一个对话框程序,引入Com类型库。Vs2010环境。首先,选项目打开类向导。
选择“添加类”后的下拉小三角,里面有添加类型库里的MFC类,选择相应的Com类型库就生成了对应的MFC类,
在对话框类中直接调用生成的类。
CComLib Com1;
Com1.XXX();
Com1.XXX();
调用后发现根本没有任何反映,什么原因呢后来发现原来需要实例化一下。
需要先调用Com1.CreateDispatch(Guid_Test);
DEFINE_GUID( GUID_BUS_TYPE_PCMCIA, 0x09343630L, 0xaf9f, 0x11d0, ...)
CComLib Com1;
if ( Com1.CreateDispatch(GUID_BUS_TYPE_PCMCIA))
{
Com1.XXX();
Com1.XXX();
}
结果又遇到一下错误:
LNK2001 unresolved external" by using DEFINE_GUID
干脆直接定义GUID
GUID _myGuid;
_myGuid.data1=0x1234123;
_myGuid.data2=0x1234123;
_myGuid.data3=0x1234123;
_myGuid.data4[0]=0x1234123;
....
....
if (Com1.CreateDispatch(_myGuid)
{
}
终于完成调用通过, 测试也通过。
然后移到对话框类外,在App::InitInstance()中调用,又发现Com异常。
原来需要初始化Com环境。而对话框类自动初始化了。所以还要加上Com初始化函数
::CoInitialize(NULL);
结束时
::CoUninitialize();
结果调用有发现异常。以为Com必须要有个主窗口句柄才能使用。后经调试发现,原来调用时输入的数据参数有问题,Com组件自身扔出异常,加
了
try
{
CComLib Com1;
if ( Com1.CreateDispatch(GUID_BUS_TYPE_PCMCIA))
{
Com1.XXX();
Com1.XXX();
}
else{
return "加载相应的com类型库失败";
}
}catch{...}
{
return false;
}
一切OK了。
- VC下MFC,调用Com类型库遇到的问题的解决
- 【Android】图片剪裁类库,解决com.android.camera.action.CROP在4.4版本以上遇到的intent类型问题
- 我遇到的VC问题及解决
- MFC用COM方式调用ActiveX类型的DLL
- VC调用Delphi的DLL时遇到的问题及解决
- VC调用Delphi的DLL时遇到的问题及解决
- VC++ 的MFC,ATL,COM
- 解决在visualstudio2012调用exiv2库遇到的问题
- 学习VC、MFC中遇到的各种问题及解决办法
- VC下MFC程序调用console程序-存储文档的路径问题
- MFC 遇到的问题
- com c#与vc 调用的问题 参数传递
- mfc调用Qt遇到的问题及解决办法
- Linux下动态链接库调用时遇到的问题
- vc#.net2005开发中遇到的小问题及解决
- VC,COM,MFC更全面的资料
- VC++ 的MFC,ATL,COM 是什么?
- VC++ 的MFC,ATL,COM 是什么?
- linux I/O函数集及windows C语言I/O函数集
- 使用Eclipse开发Android源码
- Spring框架学习笔记(6)
- hibernate注解
- Fragment in Android3.0
- VC下MFC,调用Com类型库遇到的问题的解决
- flex导航条MenuBar
- Android Service 两种编写及应用
- “我们必须咬紧牙关,全力以赴去做一件事情;否则,我们将一事无成。”
- Struts 2中加载全局资源文件
- Servlet页面跳转实现方法的区别
- Imagic应用
- 点击弹出层,并且背景变暗
- 2011-7-29-14-20