2010-08-17 41 views
2

我是一名建模人員...我永遠不會稱自己爲程序員,但我在C#和FORTRAN中編程。我有一個FORTRAN模型,我通過一個dll連接到一些C#代碼。我發現我必須有一個公共塊才能將變量保存在dll的內存中。我也發現,我不能使用多個包含語句....我的公共變量的包含文件都是未標記的。 Chapman(2008)「科學家和工程師FORTRAN 95/2003」指出:「永遠不要使用未貼標籤的COMMON語句......」。公共塊,FORTRAN和DLL

如何確保我的公用文件中沒有損壞的內存?我想我可以嘗試一下,但我希望對此有一些合理的建議。我在Microsoft Visual Studio 2008中使用Lahey-F ver 7.2

任何人,任何想法?

回答

0

作爲一名程序員,他模擬我想知道的正是爲什麼Chapman聲明不應該使用未標記的COMMON。從我記得的空白/未命名的公共塊是全局性的,必須在主程序中定義。

確保這一點的唯一方法可能是製作一個簡單的Fortan DLL,然後對其進行反彙編,以查看它在哪些位置放置了公用塊。

此外它會很有用,如果你可以粘貼錯誤的例子等,當你嘗試使用命名的公共。一旦我們明確知道哪些工作沒有成功,可能會有更好的解決方案。

+0

謝謝,我會研究它。 – DavidAS 2010-08-17 15:02:44

+0

感謝發佈。是的,我同意使用模塊;我的程序是圍繞模塊構建的。但是,在dll中使用模塊(具有本地和全局(公共)變量)不會留在內存中。至少,我還沒有證明這一點。如果有人知道如何將私人和公共變量保存在dll的活動內存中,請告訴我如何。根據我的發現,文件沒有證明這一點。 – DavidAS 2010-08-17 18:47:00

+0

@ M.S.B謝謝 - 這就是我通常記得Fortan 7/IV的原因,除了我們通常使用的是COMMON/DATAPOOL /。 @David我的經驗和對DLL的理解讓我相信決定這一點的唯一方法是生成一個小的示例DLL並將其與源一起發佈,以便我可以查看反彙編。 – 2010-08-18 13:05:25