- 积分
- 0
- 注册时间
- 2008-7-23
- 仿真币
-
- 最后登录
- 1970-1-1
|
环境为xp系统下:VC++6.0 matlab6.5
在matlab中写了如下代码:
function huatu()
x=-10:0.1:10;
y=sin(x);
plot(x,y);
存储为huatu.m文件。
利用matlab自带comtool进行组件创建;在VC++中新建基于对话框的MFC(exe),并在对话框中添加button控件及其响应函数。
添加包含头文件代码如下:
#include "mwcomtypes.h"
#include "component_idl_i.c"
#include "component_idl.h"
在OnButton1()中添加如下代码:
CoInitialize(NULL);
Ihuatu *pclass=NULL;
HRESULT hr=CoCreateInstance(CLSID_huatu,NULL, CLSCTX_ALL, IID_Ihuatu, (void **)&pclass);
hr=pclass->huatu(); //将此句改为pclass->huatu();后运行也出错误
以上编译可以通过,但是运行出错,调试结果发现 hr 返回值为 -2147221164
component_idl_i.c文件中有如下代码:
const IID IID_Ihuatu = {0x2C04C939,0x4891,0x4F9F,{0x98,0x71,0xAC,0x05,0x59,0x66,0x76,0x56}};
const IID LIBID_component = {0x9531A06B,0x2FA4,0x4320,{0xA5,0x65,0xF8,0xDB,0xB4,0x1D,0x85,0xBF}};
const CLSID CLSID_huatu = {0xDC20D2A4,0x4010,0x4E04,{0xB7,0xF8,0x9F,0x88,0x68,0x91,0x72,0x48}};
查找注册表,可以找到CLSID类里{DC20D2A4-4010-4E04-B7F8-9F8868917248}项,应该是注册过了,请问如何解决?
注:上传了一个cpp文件,如需要其他源文件,请说明。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|