vc++调用com组件(variant参数传递问题)

das_Auto 2013-06-13 09:16:08
在此先表示感谢!
我做了一个测试程序,主要目的是在vc++中调用matlab的com组件。其中matlab 的com组件中是一个小函数:如下

function []=plot_sin(a)
x=0:0.1:a*pi;
y=sin(x);
plot(x,y);
end

然后,在vc++中调用此函数做成的com组件 具体调用如下:
void CShitDlg::OnBtnSin()
{
// TODO: Add your control notification handler code here
UpdateData();
VARIANT val;
VariantInit(&val);

VariantClear(&val);
val.vt = VT_I4; // 设置类型
val.lVal = m_num1; // 设置变量值

if(FAILED(CoInitialize(NULL)))//COM初始化
{
MessageBox("Error");
}
IFuck *pclass=NULL;
HRESULT hr=CoCreateInstance(CLSID_fuck,NULL,CLSCTX_ALL, IID_IFuck, (void **)&pclass);
if(SUCCEEDED(hr))
{
hr=pclass->plot_sin(val);//函数调用

}
VariantClear(&val);
}
问题出在“hr=pclass->plot_sin(val);//函数调用 ” 这一句。
当我在编辑框中输入一个数据之后,并保存在成员变量m_num1中,然后把m_num1转换成varian类型,作为plot_sin()的实参,传递进去。但是当退出plot_sin()时没有显示应有的图形。但是也没有报错!也许是我的代码写的有问题!
希望老师给予解答,还有希望老师推荐com技术的基础书籍,特别是关于vc++和matlab混合编程的书籍!
在此表示感谢!
...全文
633 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
codenupt 2014-03-05
  • 打赏
  • 举报
回复
楼主问题解决了吗?求解决代码
vicagogo 2013-07-29
  • 打赏
  • 举报
回复
x=0:0.1:a*pi; 这句是什么意思?你打算三目运算符吗? 还是另有含义。
maozhumao 2013-07-20
  • 打赏
  • 举报
回复
com初始化......
chongyang_89 2013-07-13
  • 打赏
  • 举报
回复
同求! 。

7,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧