2017-09-22 77 views
-1

我在函數中使用GetProcAddress。 編譯時我在32bits。 我搬到64bits現在當我編譯我得到這個錯誤:使用從32位到64位的getprocaddress重新編譯Fortran函數

error #6284: There is no matching specific function for this generic function reference. [GETPROCADDRESS] 

我如何可以解決此問題? 我需要撥打另一個圖書館嗎? (我使用DFWINDFLIB

+0

GetProcAddress從哪裏來?有你創建的通用接口嗎?或者你使用某個模塊的接口?也許來自DFWIN--它是什麼,它從哪裏來的?請顯示相關代碼。參見[mcve]和[問]。 –

+0

請同時學習使用格式。不要在空格前加雙冒號和問號,不要使用問候語,你的名字已經自動放在你的文章下方。但是,你的代碼是最重要的,有些人已經開始降低你的問題,並嘗試做得更好。 –

回答

0

GetProcAddress是一個Windows API函數。第一個參數是「模塊」的句柄 - 通常是LoadLibrary的返回值。如果您已將句柄參數聲明爲INTEGER或INTEGER * 4,那麼在64位平臺上的大小將會是錯誤的,您將看到您看到的錯誤。

解決方法是到手柄變量聲明爲:

INTEGER(HANDLE)

其中HANDLE是由Fortran的Windows API模塊中聲明的常數。這將確保它在32位或64位平臺上都是正確的大小。