1、在电脑桌面上打开MATLAB。
2、当你没有把你编辑好的子函数放入正确的文件夹时,不管你输入的程序是否有错,当你执行时,系统都会提示“没有定义”,这个时候就是没有子函数文件放到主函数库文件夹中。
3、首先,输入“edit conv”这个“conv”是我准备编辑的子函数的主函数名,每个人所需的主函数名都不一样,这里可以不要那么在意。然后就可以打开相应的主函数,这是可以看到主函数所在文件夹位置。如图所示,※记住这个位置。
4、然后进行子函数的编辑,首先新建一个新的m文件,然后在编辑框中输入所要的子函数,例如我就是输入了convnem的函数,这是conv的子函数。然后点击保存。
5、接下来,在“conv”所在文件位置,将位置记录下来,将子函数的文件保存到主函数所在的文件夹即可,然后在重新的将你所需的程序(含有子函数的)输入并且执行,这时你会发现原来提示的错误没有了,那么这时调用自己添加的子函数成功了。以后有相应的子函数都可以通过这样的方法进行添加子函数。
先把键盘输入的放到一个通用寄存器然后用 JE 判断这个通用寄存器的值是不是你的期望值,是的话就调用子程序,不是就……
好久没看汇编,自己也忘的差不多了~。~!
希望能帮上一点小忙从main主函数开始运行,运行至fun函数处,fun函数先把实参a(值为1)传递给形参p,但是在函数fun内,p被赋值2,(d在做完这个运算后自增了1,假如这里printf变量是d的话,d就是3了)之后,p被printf函数调用,屏幕上出现2;返回主函数main,a的值没有改变,所以最终结果是21(之间无空格)。
1、打开Microsoft Visual Studio 2010,选择文件->新建->项目。
2、在新建项目窗口中选择其他语言->Visual C#->类库,设置名称:MathDLL,设置解决方案名:MathDLL。
3、单击确定完成项目创建
4、将类Class1重命名为”MathTest“
5、为类MathTest添加以下代码:
[csharp] view plain copy
using System;
using SystemCollectionsGeneric;
using SystemLinq;
using SystemText;
namespace MathDLL
{
public class MathTest
{
public int demoAdd(int x, int y)
{
int sum;
sum = x + y;
return sum;
}
}
}
C++客户端程序创建
1、打开Microsoft Visual Studio 2010,选择文件->新建->项目。
2、在新建项目窗口中选择其他语言->Visual C++->Win 32控制台应用程序,设置名称:MathCon,设置解决方案名:MathCon。
3、单击确定,在出现的Win32 应用程序向导的概述对话框中点击下一步。
4、在应用程序设置中,选择应用程序类型下的控制台应用程序,勾选附加选项下的”预编译头“。5、单击完成创建项目
6、将C#编写的DLL文件放置在C++的可执行程序目录
7、使用#using引用C#编写的DLL文件MathDLLdll,具体代码如下:
[cpp] view plain copy
#include "stdafxh"
#using "/debug/MathDLLdll"
using namespace MathDLL;
int _tmain(int argc, _TCHAR argv[])
{
int sum,x,y;
x=10;
y=22;
MathTest ^a = gcnew MathTest();
sum=a->demoAdd(x,y);
sum=x+y;
[cpp] view plain copy
printf("计算结果:%d",sum);
return 0;
}
8、配置C++项目MathCon的属性配置:添加公共语言运行支持。
9、运行结果如下:
注意:
1、使用#using引用C#编写的DLL,而不是#include
2、引用C#的DLL后,还需要添加该DLL的命名空间using namespace MathDLL
3、使用C++/clr语法,采用正确的方式访问托管对象,即:使用帽子“^”,而不是“”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)