声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1129|回复: 4

[混合编程] matlab与vc通过COM混编的疑问

[复制链接]
发表于 2008-1-8 09:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想用VC做界面,神经网络算法用MATLAB做好,通过COM形式被VC调用。目前在学习这方面的例子,但是按照例子的步骤做,最后程序运行后点击我做的按钮, 老是说 exe运行遇到问题,然后就关闭了。不知道是什么原因。我把写的两个按钮对应的函数贴出来。
  1. void CPlotView::OnButtonStart()
  2. {
  3. // TODO: Add your command handler code here
  4. plot.CreateDispatch(CLSID_plot,NULL);  //创立接口
  5.     COleDispatchDriver();
  6. }
  7. void CPlotView::OnButtonPlot()
  8. {
  9. // TODO: Add your command handler code here
  10. const int N=100; //数组大小
  11. double a[N];  //数组定义
  12. double f=50;  //正弦信号频率
  13. double Ts=0.002; //采样时间

  14. //  赋值
  15. for (int i=0; i<N; i++)
  16. {
  17.   a[i]=sin(2*PI*f*i*Ts);
  18. }
  19.     //任意变量
  20. VARIANT x;
  21. VariantInit(&x);  //初始化

  22. x.vt=VT_ARRAY|VT_R8; //类型(数组,双精度型)
  23. SAFEARRAYBOUND rgsabound[1];  
  24. rgsabound[0].cElements=N;    //数组所含元素数
  25. rgsabound[0].lLbound=0;   //数组上界
  26. //创立数组
  27. x.parray=SafeArrayCreate(VT_R8,1,rgsabound);  //创立一维数组
  28. //锁定数组
  29. SafeArrayLock(x.parray);
  30. //数组传递数据
  31. x.parray->pvData=a;

  32. //调用方法
  33. plot.plot_test(x);
  34. //解锁
  35. SafeArrayUnlock(x.parray);
  36. }
复制代码
回复
分享到:

使用道具 举报

发表于 2008-1-8 09:09 | 显示全部楼层
我对这个也很有兴趣。你能把你的matlab程序和VC工程发给我看看么?
 楼主| 发表于 2008-1-8 09:41 | 显示全部楼层
发表于 2008-1-8 09:47 | 显示全部楼层

回复 #3 sunhmm100 的帖子

可以通过站内短信息
也可以直接发到这个贴里面..
发表于 2008-2-4 23:52 | 显示全部楼层
就我的个人经验来看是你的接口创建有问题,
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-1 13:08 , Processed in 0.083452 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表