我有一个控制问题,我通过使用模型预测控制(MPC)解决了。我已在MATLAB中说明了这个问题,并使用FORCES http://forces.ethz.ch/来解决它。 FORCES是ETHZürich的Web服务,它生成无库的ANSI-C代码。为了测试代码,他们提供了一个脚本来将c代码编译成MATLAB .mex文件。这一切都很有效。
我现在想在我的C#Windows Forms程序中使用此功能。要在C#中使用C代码,我必须将c代码编译为dll,然后使用P / Invoke?或者还有其他方式吗?我怎么编译呢?我可以直接使用代码,还是必须编辑它(添加__declspec或类似的东西)?是否可以直接从MATLAB中编译dll?
.c和.h文件可以在我的主页上找到:http://n.ethz.ch/~rehofman/download/。
我运行64位Windows 7,MATLAB 2013b,Visual Studio 2012。
如果需要,我已经安装了MinGW。
编辑:
好的,这是一个更具体的问题:我有一个用c代码编写的函数(myMPC_solve),我想从c#中调用它。这样做的最佳方法是什么?参数和数据类型都在.h文件中。
答案 0 :(得分:0)
您可以执行以下任一操作:
我确信除此之外还有其他选择。
现在,如果您希望详细了解下一步该做什么的详细说明,我很抱歉让您失望。你问了一个广泛的问题,我已经给你一个相应的答案。接下来你应该做的是选择上面的一个选项,并实现它。遇到困难时,请随时提出更具体的问题。