Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在modelica中找不到library.dll_Dll_Fortran_Modelica_Dynamic Links - Fatal编程技术网

在modelica中找不到library.dll

在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:

我编写了一个Fortran代码,并将其设置为TestDLL.dll和TestDLL.lib文件。我想在OpenModelica中使用它。但是Modelica说

在以下任一位置找不到库TestDLL:~~~

我将.dll和.lib文件放入
E:\modelicaxem
(我的modelica工作空间)或
E:\modelicaxem\MyPackage\resources
,但它不起作用

我阅读了ModelicaSpec34文档(12.9.4),其中描述了“注释”,但我确实混淆了什么是“modelica://”

所以我有两个问题:

  • 我可以在modelica中使用fortran dll吗
  • 如果第一个问题没问题,我应该把我的lib和dll文件放在哪里,让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不起作用。你不能自己引用文档中的内容,这样其他人就不必引用了吗?毕竟,你是在寻求帮助。