首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

高分!跨语言调用COM组件发生错误

2013-06-26 
高分求助!跨语言调用COM组件发生异常COM组件是用Delphi开发的,EXE用Qt开发我最终要实现的目的是用Exe调用D

高分求助!跨语言调用COM组件发生异常
COM组件是用Delphi开发的,EXE用Qt开发
我最终要实现的目的是用Exe调用DLL中导出的COM接口

COM DLL

一个COM Object



异常发生在DLL导出函数"GetCom1"中,创建COM Object那一句


function GetCom1: ICOM1 stdcall;
begin
  OutputDebugString('111111');   // 代码只走到这里
  Result := CoCOM1.Create;       // 对Result进行赋值,崩溃了
  OutputDebugString('222222');
end;


如果把对Result的赋值代码去掉,则函数是可以正常运行的。。。

来个大牛帮帮忙吧!
[解决办法]
感谢分享解决办法,以前接触COM的时候还是用dshow做视频采集的时候,现在都忘光咯
[解决办法]
谢谢分享,虽然还没要用过这个。
[解决办法]
GETCOM1 getCom1 = (GETCOM1)lib.resolve("GetCom1");似乎没有正确返回函数操作句柄吧?第一,对返回值做适当的判断是良好的习惯,第二,QT的resolve要去库函数的导出必须遵循C格式,即导出申明需要使用 extern "C" ,你可以用VC的Depends查看下接口函数"GetCom1"是否为C格式。
[解决办法]
两年前写过一个,调用一个某券商的证券交易客户端接口,也是delphi写的COM。你不说还真的忘记了

热点排行