我想通过Matlab修改.xml里面的参数,修改完通过打开exe文件来允许的,但是Matlab可以进行参数修改,exe不能正常打开了,具体问题如图。请问这是什么问题呀?
注:我直接通过.xml文本进行参数修改就可以允许exe,为什么Matlab修改完就不行呢?
第 1 步:请确认您电脑的 mingw64 编译器安装目录的 bin 文件夹是否加到了系统环境变量 PATH 中;
第 2 步:在 Windows cmd 中调用 mingw64 gcc 编译源文件并生成 exe 文件。下面以编译 hello.c 生成 hello.exe 为例:
gcc hello.c -o hello
运行 hello.exe,在 cmd 中输入:
.\hello.exe
运行结果如下图所示:
第 2 步主要是确保您的 C++ 程序没有问题。
第 3 步:在 MATLAB 中调用 Windows 系统命令来编译 hello.c,并执行 hello.exe。
需要使用 MATLAB 提供的 dos 或 system 函数,前者只能用于 Windows 操作系统,后者可以支持跨平台使用,MATLAB 帮助文件提示:
注意:对于依赖于操作系统平台的代码,请使用 system 命令。
system 命令的调用格式是:[status, cmdout] = system(command)。其中 status 是返回运行状态,如果返回 0 ,则代表成功运行命令;否则返回非零整数,代表命令运行失败。cmdout 显示操作系统运行命令后的输出。
在开始利用 MATLAB 执行编译 hello.c、运行 hello.exe 命令之前,我们先准备一个 C 语言 Hello World 示例程序 hello.c :
下面在 MATLAB Live Script 中进行测试,编写如下测试
运行结果如下图所示:
在上面的代码中,我们查看 status1, status2 变量信息,发现它们的类型都是 double,这是因为 在 MATLAB 中默认数据类型就是 double,hello.c main 函数返回的 int 型 0,在读入 MATLAB Workspace 之后被强制转换成了 double 型
编码问题吧?你用对比工具对比文本修改和matlab修改后的字符串和16进制不同
根据您描述的问题,使用matlab修改xml文件不行,但是手动修改可以的话,那有可能是因为你使用matlab修改后的编码问题所引起的,你可以检查下在打开或者保存文件,以及写入的内容的编码设置。
不行那就初始化
有可能是因为Matlab写入的参数有误,不符合.xml的格式规范,导致exe无法正常打开。也可能是Matlab在写入参数时发生错误,导致参数没有写入正确。我建议您检查代码,确保参数写入正确,或者对比手动修改的.xml文件和Matlab写入的.xml文件以找出差异。
很难说没有看到问题图和代码,但是通常情况下,修改XML文件时需要注意遵循XML格式和语法规则,并且保证文件编码正确,否则可能导致读取错误或文件损坏。请确保使用Matlab代码正确修改XML文件并保存为正确的编码。