使用32位到64位的getprocaddress重新编译Fortran函数

时间:2017-09-22 09:29:02

标签: fortran 32bit-64bit

我在函数中使用GetProcAddress。 我在32bits时编译。 我搬到了64bits,现在我在编译时遇到了这个错误:

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

我该如何解决这个问题? 我需要打电话给另一个图书馆吗? (我使用DFWINDFLIB

1 个答案:

答案 0 :(得分:0)

GetProcAddress是一个Windows API函数。第一个参数是"模块的句柄" - 通常从LoadLibrary返回。如果您已将handle参数声明为INTEGER或INTEGER * 4,那么在64位平台上它将是错误的大小,并且您将收到您看到的错误。

修复方法是将句柄变量声明为:

INTEGER(HANDLE)

其中HANDLE是Fortran Windows API模块声明的常量。这将确保在32位或64位平台上的大小正确。