在modelica中找不到DLL(使用VS 2015构建)
我已经在Visual studio 2015中编写了一个简单的add函数并从中生成了一个DLL。忽略int返回,这不是必需的,我只是在尝试一些东西在modelica中找不到DLL(使用VS 2015构建),modelica,dllexport,openmodelica,Modelica,Dllexport,Openmodelica,我已经在Visual studio 2015中编写了一个简单的add函数并从中生成了一个DLL。忽略int返回,这不是必需的,我只是在尝试一些东西 # define CLINKAGE extern "C" # define STDCALL __stdcall # define DLLFUNC __declspec(dllexport) CLINKAGE DLLFUNC int STDCALL ADD(int a, int b, int *c) { *c = a + b; r
# define CLINKAGE extern "C"
# define STDCALL __stdcall
# define DLLFUNC __declspec(dllexport)
CLINKAGE
DLLFUNC int STDCALL ADD(int a, int b, int *c)
{
*c = a + b;
return *c;
}
当我在modelica中访问如下相同的函数时,它会编译,但在运行时抛出一个错误
function ADD
input Integer a;
input Integer b;
output Integer c;
external "C" ADD(a,b,c) annotation (
Library = "GSE",
Include = {"#include \"GSE\\GSE.h\"", "#include <stdlib.h>"},
IncludeDirectory = "modelica://CrtVehicle/Resources/Include/GSE",
LibraryDirectory = "modelica://CrtVehicle/Resources/Library/GSE");
end ADD;
函数添加
输入整数a;
输入整数b;
输出整数c;
外部“C”添加(a、b、C)注释(
Library=“GSE”,
Include={“#Include\'GSE\\GSE.h\”,“#Include”},
IncludeDirectory=”modelica://CrtVehicle/Resources/Include/GSE",
LibraryDirectory=”modelica://CrtVehicle/Resources/Library/GSE");
结束添加;
错误显示:
进程崩溃
模拟过程失败。已退出,代码为-1073741515
DLL和Lib放在上面显示的路径中的GSE文件夹中。我还尝试在两者之间包含一个win64文件夹,但它给出了相同的错误
如果我将DLL和lib放在工作目录中,模拟工作的唯一方式就是。因为其他原因,我不能那样做。我如何解决这个问题
提前感谢。LibraryDirectory上的Modelica规范只讨论链接器,而不是运行可执行文件时要做什么:我想这需要澄清,现在您可以将LibraryDirectory放在运行模拟可执行文件的路径中。LibraryDirectory上的Modelica规范只讨论链接器,不是运行可执行文件时要做什么:我想这需要澄清,现在您可以将LibraryDirectory放在运行模拟可执行文件的路径中。