📄 msvc++6 中使用c math library和mcc生成的文件.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0113)http://bbs.sjtu.edu.cn/cgi-bin/bbsanc?path=/groups/GROUP_4/MathTools/DA6B7A1FF/D9BB618C8/D7EB33D16/M.1031218855.A -->
<HTML><HEAD><TITLE>SJTUBBS精华区文章</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type><LINK
href="MSVC++6 中使用c math library和mcc生成的文件.files/bbstyle.css" rel=stylesheet
type=text/css>
<META content="MSHTML 5.00.3315.2870" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<TABLE class=title width="90%">
<TBODY>
<TR>
<TH align=left class=title width="33%">文章阅读</TH>
<TH align=middle class=title width="33%">饮水思源</TH>
<TH align=right class=title width="34%">精华区</TH></TR></TBODY></TABLE>
<HR>
<TABLE class=doc>
<TBODY>
<TR>
<TD class=doc><PRE>发信人: fanfan (泛泛), 信区: MathTools
标 题: MSVC++6 中使用c math library和mcc生成的文件
发信站: 饮水思源 (2002年09月05日17:42:37 星期四), 站内信件
最近在看matlab的c/c++的数学库
本版精华区有一篇文章: VC++中使用MATLAB的C++数学库和MCC生成的程序
我按照其中的方法试了试,感觉挺麻烦的,而且编译时还有错误,我还没有仔细查找原
因
其中用的是c++数学库
我今天做了一个例子,用的是c数学库,写出来希望对各位有所参考
前提条件:
matlab中用mcc -setup和mbuild -setup设置过(可参考matlab帮助,或者本版精华区有
关文章)
m文件:test.m
function [sum, prod] =test(x,y)
sum = x+y;
prod = x*y;
注意这里x和y都是矩阵
然后在matlab中>> mcc -t test.m
生成test。c和test。h,备用
打开mavc++6.0
新建一个win32console application project
工程-》添加-》files
添加一个c文件,名字无所谓,内容如下:
#include <stdio.h>
#include <stdlib.h> /* used for EXIT_SUCCESS */
#include <string.h>
# include "test.h"
#include "matlab.h"
static double data1[] = { 1, 2, 3, 4};
static double data2[] = { 7, 8, 9, 10};
int main()
{
/* Declare two matrices and initialize to NULL */
mxArray *mat0 = NULL;
mxArray *mat1 = NULL;
mxArray *mat2 =NULL;
mxArray *mat3 = NULL;
/* Enable automated memory management */
mlfEnterNewContext(0, 0);
/* Create the matrices and assign data to them */
mlfAssign(&mat0, mlfDoubleMatrix(2, 2, data1, NULL));
mlfAssign(&mat1, mlfDoubleMatrix(2, 2, data2, NULL));
mlfAssign(&mat2, mlfTest(&mat3,mat0,mat1));
/* Print the matrices */
mlfPrintMatrix(mat2);
mlfPrintMatrix(mat3);
/* Free the matrices */
mxDestroyArray(mat0);
mxDestroyArray(mat1);
mxDestroyArray(mat2);
mxDestroyArray(mat3);
/* Disable automated memory management */
mlfRestorePreviousContext(0, 0);
return(EXIT_SUCCESS);
}
提示:mx前缀表示c math library
而 mw前缀表示c++ math library
然后设置vc的环境,
我没有设置什么msvc,mswind那些宏,也没有设置multithresded dll
奇怪,我所见到过的混合编程的文章几乎都要设置这个东东,
include 路径和library路径同精华区那篇文章,好像设置一次,vc就记住了,以后就省
事了
然后:
工程-》添加-》files
找到libmat.lib libmatlb.lib libmex.lib libmmfile.lib libmx.lib
全部加入,路径参考精华区文章
我估计这些文件不一定都必需,以后哪位试试,看看到底最少用哪几个,呵呵
最后:
把刚才生成的test。c和test。h拷贝到vc工程(注意上面程序中包含了test。h)
同时通过 工程-》添加-》files把test。c加入工程
一切搞定,编译执行,执行结果:
8 12
10 14
31 39
46 58
Press any key to continue
--
<B></B><FONT class=col32>讨论数学软件的使用、编程、下载、安装<B></FONT></B>
<B></B><FONT class=col32>迎光临8区<B></FONT></B><FONT class=col35><BLINK>mathtools<B></FONT></BLINK></B><FONT class=col32>板<B></FONT></B>
<B></B><FONT class=col32>Matlab Mathematic Maple...... <B></FONT></B>
<B></B><FONT class=col32>混合编程、神经网络、遗传算法......<B></FONT></B>
<B></B><FONT class=col32>...... <B></FONT></B>
<B><FONT class=col33>※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.10.97]</FONT></B>
</PRE></TR></TBODY></TABLE>
<HR>
<TABLE class=foot>
<TBODY>
<TR>
<TH class=foot><A href="http://bbs.sjtu.edu.cn/">返回首页</A></TH>
<TH class=foot><A
href="http://bbs.sjtu.edu.cn/cgi-bin/bbssec">分类讨论区</A></TH>
<TH class=foot><A
href="http://bbs.sjtu.edu.cn/cgi-bin/bbsall">全部讨论区</A></TH></TR></TBODY></TABLE></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -