C++ Simulink和DLL
我需要将.EXE与simulink集成。我想做的是在Simulink中创建一个C++ DLL。此DLL稍后应合并到simulink中的S函数调用中 信息流将是:C++ Simulink和DLL,c++,c,matlab,dll,simulink,C++,C,Matlab,Dll,Simulink,我需要将.EXE与simulink集成。我想做的是在Simulink中创建一个C++ DLL。此DLL稍后应合并到simulink中的S函数调用中 信息流将是: Simulink执行S功能块 此块调用C++ DLL 的方法 C++方法执行exe,并返回结果< /LI> 结果可以追溯到simulink ps:我没有EXE的源代码,它是一个黑盒子。这就是为什么我要创建一个C++包装器,以便从Simulink中执行它。 到目前为止,C++ DLL包装器不工作。代码如下 #ifdef MATHFUNC
到目前为止,C++ DLL包装器不工作。代码如下
#ifdef MATHFUNCSDLL_EXPORTS
#define MATHFUNCSDLL_API __declspec(dllexport)
#else
#define MATHFUNCSDLL_API __declspec(dllimport)
#endif
#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
extern "C" {
#endif
namespace MathFuncs
{
// This class is exported from the MathFuncsDll.dll
class MyMathFuncs
{
public:
// Returns a + b
static __declspec(dllexport) double Add(double a, double b);
};
}
#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */
}
#endif
*.cpp
#包括“stdafx.h”
#包括
#包括“mathfuncsdl.h”
使用名称空间std;
名称空间MathFuncs
{
double MyMathFuncs::Add(双a,双b)
{返回a+b;}
}
请注意,我正在使用(extern“c”)命令来生成一个可以在MatlabC风格中使用的DLL
当我尝试加载DLL时:
- loadlibrary('myDLL','myDLL.h')
- libfuncsdll函数
obs:我不是在解决dll错误,而是您从Simulink运行exe的原始问题
system
命令直接从MATALB代码运行exemsfuntmpl_basic.m
模板开始
您可以完全跳过级别1s函数,它们的存在只是为了向后比较除了C++错误外,DLL层的目的是什么?我会从Matlabs函数(
system
-command)运行exe。那么,有可能吗?我不知道。我将谷歌它。。。无论如何,DLL层将用于将simulink输入“转换”为EXE输入。例如,EXE的所有输入都是文本文件。我必须在每一个模拟步骤中创建新的文本文件,为什么要把它放在一个类中?这难道不让你的生活变得困难吗?
#include "stdafx.h"
#include <stdexcept>
#include "MathFuncsDll.h"
using namespace std;
namespace MathFuncs
{
double MyMathFuncs::Add(double a, double b)
{ return a + b; }
}