2017-09-22 64 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位平台上都是正确的大小。