【环境说明】

电脑操作系统:win 7 旗舰版,64位

MATLAB版本:R2013b

VS版本:Microsoft Visual Studio 2010

【操作说明】

1、在原来工程的基础上添加下列内容:

#include "mex.h"

//添加库文件

#pragma comment(lib,"libmx.lib")

#pragma comment(lib,"libmex.lib")

#pragma comment(lib,"libmat.lib")

//下面这个是MATLAB和C进行通信的函数

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

{//注意:nrhs代表的是输入变量的多少,而不是一个变量维数的大小//定义一个double类型的数组

unsigned int *outData;double test_data[223];double test_data_out[512];

unsignedint data_in[223];double *real_data_ptr;double *real_data_ptr_out;intloop_XDZ;

unsignedintback_length_my;

outData=chk_alloc(512, sizeof *outData);//初始化分配内存空间的过程

real_data_ptr_out=mxCalloc(514, sizeof(char)); //申请空间

real_data_ptr=mxGetPr(prhs[0]);

plhs[0] = mxCreateDoubleMatrix(1,512,mxREAL); //让第一个输出参数指向一个1*1的矩阵

real_data_ptr_out=mxGetPr(plhs[0]); //获得矩阵的第一个元素的指针

for (loop_XDZ=0;loop_XDZ<223;loop_XDZ++) //循环获取编码之前的数据源

{

test_data[loop_XDZ]=*real_data_ptr++;

data_in[loop_XDZ]=(unsigned int)test_data[loop_XDZ];

}

back_length_my= DCW_LDPCencode_packaged(data_in,outData,223,0);//最后一个参数是控制加扰与否的选项//下面是需要把数据送到外面去

for (loop_XDZ=0;loop_XDZ<511;loop_XDZ++) //循环获取编码之前的数据源

{

test_data_out[loop_XDZ]=(double)outData[loop_XDZ];*real_data_ptr_out++=test_data_out[loop_XDZ];

}return;

}

在上面的函数中,我调用了工程的顶层模块DCW_LDPCencode_packaged,这个模块实现的主要功能是,输入一定长度的数据,输出一定长度的信息。

2、配置VS工程属性

在常规选项卡中,把文件的扩展名设置为.mexw64;

在VC++目录选项卡当中,更改包含目录为\MATLAB\extern\include文件夹;

在VC++目录选项卡当中,更改库目录为\MATLAB\extern\lib\win64\microsoft;

在链接器-输入选项卡当中,添加附加依赖项libmat.lib、libeng.lib、libmx.lib、libmex.lib;

在下面的模块定义文件中,设置为test.tdf(这个文件需要自己创建);

【特别补充】在链接器->常规 界面上,需要修改输出文件的形式,否则无法正常生成mexw64文件!!!!!!

新建文本文档,更改名称为test.tdf。用文本编辑软件打开文件,更改其中的内容为:

LIBRARY DCW_Packaged_RS_LDPC_encode_decode(这个是工程的名称,不是顶层名称)EXPORTS mexFunction

最后更改配置管理器,将项目改成x64属性,沿用win32的工程配置。

3、MATLAB文件

out_data=DCW_Packaged_RS_LDPC_encode_decode(enc_data,len_sel,scramble_en);

在MATLAB中写上面这一句就可以完成调用的过程。DCW_Packaged_RS_LDPC_encode_decode是工程的名字,也是.mexw64文件的名字。左边是输出的参数,右边是输入的控制参数。

4、编译工程,进行连接

右键点击VS工程的名字,选择 生成。发现工程的x64->Debug文件夹下面会生成一个后缀为.mexw64的文件。

更改MATLAB的工作目录为x64->Debug文件夹(就是.mexw64所在的文件夹)。

在VS中选择 调试 选项卡,选择 附加到进程…… 选项,选择MATLAB.exe,并且在VS中设置断点。

运行MATLAB程序,即可在VS中触发断点进行联合调试。

【参考文献】

值得参考的文献网址:

在64位的系统中,非常实用的参考文章:

c matlab 混合编程 调试,64位MATLAB和C混合编程以及联合调试相关推荐

  1. .net core vs java_VS Code 1.19.3调试.net core 2并始终满足“只能调试64位进程”

    我在笔记本电脑上安装了 .net core 2.0 的x86和x64 sdk(win 7 sp1 x64) . 我不知道为什么vs代码(1.19.3和x64&官方c# extension)总是 ...

  2. matlab 32和64,在32或64位matlab上运行?

    32对64位的问题实际上是一个红色的鲱鱼.如果我理解正确,您需要确定需要哪组已编译的MEX文件,以便您可以适当地设置路径.为此,您可以使用mexext函数: >> help mexext ...

  3. 关于64位MATLAB调用refprop函数时出错的解决方法

    注:本人refprop的安装文件夹为C:\Program Files\REFPROP(如有差异,在自己refprop的安装文件夹中进行操作).电脑系统需为64位. 使用matlabR2021a和REF ...

  4. 64位matlab调用 com组建,64位系统VBS调用32位COM组件

    今天有人问我,为什么他的VBS脚本在64位Windows 7中用VbsEdit可以直接执行,但是直接双击就会出错:ActiveX 部件不能创建对象: 'MSWinsock.Winsock'. 在64位 ...

  5. 图灵奖得主华人高徒发布首款AI芯片!64位RISC-V、高度可编程,低功耗

    李根 发自 凹非寺  量子位 报道 | 公众号 QbitAI 还记得OURS吗? 没错,就是那家简写自Optical Universal RISC Systems,基于RISC-V指令集设计AI芯片的 ...

  6. 64位matlab扩大内存的方法,Matlab增大内存方法外传及性能测试报告

    2011-09-19 12:28:00|  分类: Matlab |  标签:|字号 起因是这样的,上周四上课的时候要画一个正态分布函数,我想都没想直接去了randn(10000),就是一亿个数据,结 ...

  7. java 64位程序,的Java编程的64位JVM

    Few Questions :): How to identify what JVM is currently installed ? (64 bit / 32 bit) Do I need to d ...

  8. matlab调用c++生成dll32位与64位对应关系

    首先强调重要一点,如果你是32位C++程序想要调用matlab生成的dll,那么你的matlab需要是32位版本的(网上有说64位matlab也可以转为32位dll,但是本人没有成功,这里就不进行介绍 ...

  9. matlab6432有什么区别,在同一台机器上使用Matlab 32和64位,如何在不同的地方存储设置?...

    由于各种原因,我需要在64位和32位Matlab中做事. 令我很懊恼--我最近发现32位和64位Matlab的设置都存储在同一个文件夹中: C:\Users\$USERNAME\AppData\Roa ...

最新文章

  1. 为清理助手制作便利工具的技术实现
  2. 1乘到100 python_python每日一练之如何计算你的应发奖金?
  3. 运用UE和Blocks,仅用两周打造一个VR游戏(52VR完整版译文)
  4. Java socket 重要参数
  5. Junit 多线测试 问题
  6. 什么是序列化? 您需要通过示例解释的有关Java序列化的所有知识
  7. 实时事理学习与搜索平台DemoV1.0正式对外发布
  8. Android WiFi 经常掉线出现的几个原因分析!
  9. sql 的 DATE_FORMATE()函数
  10. python 颜色大全 颜色对应 matplotlab plot 颜色对应
  11. 【广东大学生网络攻防大赛-WriteUp(非官方)】Crypto | crypto-xor2
  12. ThreeJS 跨域
  13. 计算机的储存容量1kb等于多少byte,1kb等于多少mb
  14. 北京大学 计算机辅助翻译专业,北京大学计算机辅助翻译专业招生介绍
  15. Arduino+nRF24L01接收端(二)
  16. 已知两点坐标如何快速增加其他坐标_天文坐标系分类
  17. ArrayList常见练习题解析
  18. IntelliJ IDEA查看类层次结构图
  19. STC15L2K32S2芯片介绍与实验板原理图分析
  20. Mybatis从入门到精通二(入门详解)

热门文章

  1. 聊聊 Spring Cloud Config
  2. 网络:301和302
  3. Android --- ListView之高度由 item 的个数决定,wrap_content有效
  4. 数据结构-简单实现二叉树的先序、中序、后序遍历(java)
  5. citrix创建虚拟机服务器,在 ESXi 服务器上安装并配置 Citrix SD-WAN Center
  6. 从本地的win传文件到本地的linux上,pscp.exe实现本地windows下的文件下载(传输)到linux上...
  7. 降低数据中心功耗的 4 大方法
  8. 您对光纤损耗了解多少?知道如何计算吗?
  9. 五一假期将至,机房维护工作要做好
  10. 工商银行:IT新架构及银行IT架构转型思考