【问题标题】:Run Fortran DLL with Visual Studio使用 Visual Studio 运行 Fortran DLL
【发布时间】:2012-05-10 00:54:37
【问题描述】:

我使用 Visual Studio 2010 开发了一个网站。我想运行一个 Fortran DLL。我使用 Intel Visual Fortran 创建了一个 .dll 并测试了如何使用它。我的代码是:

      SUBROUTINE SIMPSON (N,H,I)

     !DEC$ ATTRIBUTES DLLEXPORT, DECORATE, ALIAS : "SIMPSON" :: SIMPSON
     !DEC$ ATTRIBUTES REFERENCE::N
     !DEC$ ATTRIBUTES REFERENCE::H
     !DEC$ ATTRIBUTES REFERENCE::I
      INTEGER N,H,I

      I=N+H

      RETURN
      END

实际上需要两个整数,将它们相加并返回结果。现在我有了 .dll,我不知道如何使用 Visual Studio 运行它。哪位知道的可以给我步骤吗?

【问题讨论】:

    标签: visual-studio-2010 dll fortran dllimport intel-fortran


    【解决方案1】:

    您可以在 dll 属性页中使用 Post-Build 事件:

    • 在解决方案资源管理器中右键单击 DLL 项目
    • 转到构建事件 - 构建后事件
    • 命令行copy/y "$(OutDir)\$(ProjectName).dll" "$(SolutionDir)\bin\debug\" 每次构建 DLL 或解决方案时都会复制 DLL。 目标位置可能不同。

    【讨论】:

      【解决方案2】:

      我一直这样做。我所做的是在调用项目中(C#VB.NET)我将.dll 输出作为现有项目添加到项目中,并带有Add as Link 选项。然后我将它设置为在项目树中更新时复制。

      最后,当您将其编译到 bin/Debugbin/Release 文件夹中时,它会跟随二进制文件。

      有了C#,你就可以像这样使用[DllImport()] attrbiute:

      [DllImport("trex_pc.dll")]
      static extern Simpson(ref int N, ref int H, ref int I);
      

      更多详情请看this我的回答。

      【讨论】:

      • 当我将它用于 Web 应用程序时,它工作正常,但是当我将它用于网站时,它说找不到 dll。知道为什么吗?
      • 当您发布网站时,.dll 是否复制?我真的完全不知道 Web 开发如何处理二进制文件。
      • 不,它没有。我添加了包含 .dll 的文件夹的链接。谢谢您的回答
      【解决方案3】:

      您可以简单地在 IVF 中创建一个控制台项目并链接到您的 DLL 中。这可能需要生成一个包含对您的 DLL 的引用的 .lib 文件。我不是 100% 确定如何做到这一点,尽管它可能是为您自动创建的。

      链接库后,您只需 call simpson 即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        • 2011-08-18
        • 2015-11-04
        • 2011-11-14
        • 1970-01-01
        相关资源
        最近更新 更多