2012-04-30 61 views
1

我使用Visual Studio 2010开发网站。我想运行Fortran DLL。我使用英特尔Visual Fortran创建一个.dll并测试如何使用它。我的代码是:使用Visual Studio运行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运行它。任何人都知道请给我步骤遵循?

回答

0

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

库链接后,你可以简单地call simpson它应该工作。

2

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

Add Item

Add As Link

Copy If Newer

到底它遵循,当你把它编译成的bin/Debugbin/Release文件夹中的二进制文件。

随着C#你再使用[DllImport()] attrbiute这样的:

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

欲了解更多详细看从我this答案。

+0

非常感谢你的回答。它工作的很好! – Nick

+0

当我使用它的Web应用程序它工作正常,但是当我使用它的网站它说,DLL没有found.any想法为什么? – Nick

+0

当您发布网站时,“.dll”是否会复制?我真的不知道Web开发如何处理二进制文件。 – ja72

0

您可以使用该dll属性页生成后事件:

  • 在Solution Explorer中右键DLL的项目点击
  • 转到生成事件 - 后生成事件
  • 命令copy/y "$(OutDir)\$(ProjectName).dll" "$(SolutionDir)\bin\debug\"行 每次构建DLL或解决方案时,DLL都会被复制。 目标位置可能不同。
相关问题