⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 msvc++6 中使用c math library和mcc生成的文件.htm

📁 VC与Matlab混合编程文章.
💻 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中&gt;&gt; mcc -t test.m
生成test。c和test。h,备用
打开mavc++6.0
新建一个win32console application project
工程-》添加-》files
添加一个c文件,名字无所谓,内容如下:
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;     /* used for EXIT_SUCCESS */
#include &lt;string.h&gt;
# 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(&amp;mat0, mlfDoubleMatrix(2, 2, data1, NULL));
    mlfAssign(&amp;mat1, mlfDoubleMatrix(2, 2, data2, NULL));
    mlfAssign(&amp;mat2, mlfTest(&amp;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 + -