Я написал простую функцию добавления и сделал из нее DLL в Visual Studio 2015. Не обращайте внимания на возвращение 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;
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;
Ошибка говорит: сбой процесса. Выход с кодом -1073741515.
DLL и Lib помещаются в папку GSE по указанному выше пути. Я также попытался включить папку win64 между ними, но она выдавала ту же ошибку.
Единственный способ, которым симуляция работает, если я помещаю DLL и lib в рабочий каталог. Я не могу сделать это по другим причинам. Как я могу решить эту проблему?
Заранее спасибо.