在modelica中找不到library.dll
我编写了一个Fortran代码,并将其设置为TestDLL.dll和TestDLL.lib文件。我想在OpenModelica中使用它。但是Modelica说 在以下任一位置找不到库TestDLL:~~~ 我将.dll和.lib文件放入在modelica中找不到library.dll,dll,fortran,modelica,dynamic-links,Dll,Fortran,Modelica,Dynamic Links,我编写了一个Fortran代码,并将其设置为TestDLL.dll和TestDLL.lib文件。我想在OpenModelica中使用它。但是Modelica说 在以下任一位置找不到库TestDLL:~~~ 我将.dll和.lib文件放入E:\modelicaxem(我的modelica工作空间)或E:\modelicaxem\MyPackage\resources,但它不起作用 我阅读了ModelicaSpec34文档(12.9.4),其中描述了“注释”,但我确实混淆了什么是“modelica:
E:\modelicaxem
(我的modelica工作空间)或E:\modelicaxem\MyPackage\resources
,但它不起作用
我阅读了ModelicaSpec34文档(12.9.4),其中描述了“注释”,但我确实混淆了什么是“modelica://”
所以我有两个问题:
function SUB(a,b)
!DEC$ ATTRIBUTES DLLEXPORT::SUB
implicit none
real :: a,b
real :: SUB
SUB = a+b
return
end
modelica部分
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://”是指文件所在的文件夹。已找到mo文件 谢谢你的回答。我已经解决了这个问题。Fortran自动将变量转换为大写形式。在modelica中使用此函数时,必须使用大写形式调用该函数。“modelica://”是指文件所在的文件夹。已找到mo文件 规范对注释有何规定?您尝试的不是Fortran,它无法编译。你是如何制作dll的?您是否收到任何错误消息?规范说明注释(LibraryDirectory=)modelica://LibraryName/Resources/Library),但我不知道“modelica://”代表什么。我在IVF 2013中编译的Fortran代码已经在另一个Fortran代码中试用过,并且运行良好。这是modelicaspec34文档OpenModelica使用GCC,因此您需要使用gfortran将代码编译为libTestDLL.a或.dll。Extension.lib不起作用。你不能自己引用文档中的内容,这样其他人就不必引用了吗?毕竟,您是在寻求帮助。规范对注释有何规定?您尝试的不是Fortran,它无法编译。你是如何制作dll的?您是否收到任何错误消息?规范说明注释(LibraryDirectory=)modelica://LibraryName/Resources/Library),但我不知道“modelica://”代表什么。我在IVF 2013中编译的Fortran代码已经在另一个Fortran代码中试用过,并且运行良好。这是modelicaspec34文档OpenModelica使用GCC,因此您需要使用gfortran将代码编译为libTestDLL.a或.dll。Extension.lib不起作用。你不能自己引用文档中的内容,这样其他人就不必引用了吗?毕竟,你是在寻求帮助。