1

我用 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 运行它。有谁知道请给我步骤吗?

4

3 回答 3

2

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

添加项目

添加为链接

如果较新则复制

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

然后和C#你一起使用这样的[DllImport()]属性:

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

有关更多详细信息,请查看我的这个答案。

于 2012-05-01T00:33:24.277 回答
0

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

链接库后,您可以简单地call simpson使用它。

于 2012-04-30T23:10:53.457 回答
0

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

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