找回密码
 注册
Simdroid-非首页
查看: 82|回复: 5

感谢论坛上各位朋友的帮助,另外还有一个关于字符串传递的问题

[复制链接]
发表于 2009-10-14 21:39:02 | 显示全部楼层 |阅读模式 来自 重庆沙坪坝区
本帖最后由 tiantian0 于 2009-10-14 22:04 编辑

我定义了一个CString类型的filename变量来保存了我所要的文件名比如“e:\shuju\01.asc”,现在我想调用我用matlab编写的m文件来加载这个文件,m文件代码如(举例):
function  data=jiazai(filename)
data=load(filename);
end

但是我清楚vc++中调用matlab时字符串是如何定义并传递的,请大家指点,最好给点代码,我试了很多次总是出现数据类型转换问题,导致调用出错。
版本:vc++6.0、matlab2007b。
发表于 2009-10-14 21:44:23 | 显示全部楼层 来自 广西贵港
Simdroid开发平台
将CString转换为char *
将char* 转换为mwArray或者直接调用
具体看你的MATLAB编译后的函数原型
学混编之前,花点时间看MATLAB 的API文档,做点准备工作
比如,mwArray和C,C++的数据转换工作,可以专门写个类完成上述转换

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-14 22:03:56 | 显示全部楼层 来自 重庆沙坪坝区
谢谢,主要是因为现在时间比较紧,等这个问题解决了我会系统的进行学习。
函数原型是这个吧
extern LIB_libmyadd2_CPP_API void MW_CALL_CONV myadd2(int nargout, mwArray& y
                                                      , mwArray& z
                                                      , const mwArray& a
                                                      , const mwArray& b
                                                      , const mwArray& c
                                                      , const mwArray& filename);

其中的 const mwArray& filename);就是。
能用char*  类型来直接调用吗?
回复 不支持

使用道具 举报

发表于 2009-10-14 22:14:40 | 显示全部楼层 来自 广西贵港
mwArray(char *)这样应该可以
即将char* 转换为mwArray
阅读extern\include\mclcppclass.h的mwArray类
回复 不支持

使用道具 举报

发表于 2009-10-14 22:15:55 | 显示全部楼层 来自 广西贵港
完成我2楼的建议,磨刀绝对不误砍柴工
回复 不支持

使用道具 举报

 楼主| 发表于 2009-10-14 22:19:19 | 显示全部楼层 来自 重庆沙坪坝区
根据shunfly的提示
CString   szFileName   =   Dlg.GetNextPathName(pos);
char *name;
  name=(LPSTR)(LPCTSTR)szFileName;

似乎解决了这个问题,在这里对shunfly表示感谢!

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 05:25 , Processed in 0.036338 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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