2012-04-30 101 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都會被複制。 目標位置可能不同。
相關問題