找不到库.dll在模型中



我写了一个Fortran代码,并把它变成了TestDLL.dll和TestDLL.lib文件。我想在OpenModelica中使用它。但莫迪卡说

在以下任一中都找不到库 TestDLL:~~~

我将.dll和.lib文件放在E:MODELICAEXAM(我的模型工作空间(或E:MODELICAEXAMMyPackageResouces中,但它不起作用。

我阅读了ModelicaSpec34文档(12.9.4(,其中描述了"注释",但我真的很困惑什么是"modelica://"。

所以我有两个问题:

  1. 我可以在Modelica中使用Fortran DLL吗?
  2. 如果第一个问题没问题,我应该把我的 lib 和 dll 文件放在哪里才能让 modelica 找到这些文件? 还是我误解了这个问题?

代码如下

function SUB(a,b)
!DEC$ ATTRIBUTES DLLEXPORT::SUB
implicit none
real :: a,b
real :: SUB
SUB = a+b
return
end

模型部分

model test
function sub
input Real a;
input Real b;
output Real Result;
external "C" Result = sub(a, b);
annotation(
Library = "TestDLL",
LibraryDirectory = 
"modelica://MyPackage/Resouces");
end sub;
Real result;
parameter Real a = 1;
parameter Real b = 2;
equation
result = sub(a, b);
end test;!

感谢您的回答。 我已经解决了这个问题。 Fortran 使变量自动转换为资本形式。 当我在modelica中使用这个函数时,我必须使用大写形式来调用这个函数。 "modelica://"是指其中的文件夹。莫文件找到。

相关内容

最新更新