我正在尝试通过 Firemonkey 框架使用 Delphi XE2 来制作一个插件系统。问题是我收到错误 GetProcAddress is undeclared identifier。当我尝试在 VCL 项目中使用 GetProcAddress 时,一切正常,那么在谈论 GetProcAddress 以及如何在 Firemonkey 应用程序中使用它时,VCL 和 Firemonkey 有什么区别。
谢谢
我正在尝试通过 Firemonkey 框架使用 Delphi XE2 来制作一个插件系统。问题是我收到错误 GetProcAddress is undeclared identifier。当我尝试在 VCL 项目中使用 GetProcAddress 时,一切正常,那么在谈论 GetProcAddress 以及如何在 Firemonkey 应用程序中使用它时,VCL 和 Firemonkey 有什么区别。
谢谢
为 Windows 编译应用程序时,请使用 Winapi.Windows.GetProcAddress。如果没有,请使用 System.SysUtils.GetProcAddress。在这种情况下,uses 子句应如下所示:
uses
{$IFDEF MSWINDOWS}
Winapi.Windows,
{$ENDIF}
System.SysUtils;
GetProcAddress
是一个 Windows API 系统调用。
因此,它在跨平台 FMX 应用程序中没有位置。
如果您只希望您的应用程序在 Windows 上运行,您可以将GetProcAddress
定义的单位添加到使用子句中。
来自:http ://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages
添加Windows
到使用条款。
在谈论 GetProcAddress 时,VCL 和 Firemonkey 有什么区别
VCL 专门绑定到 Windows,Firemonkey(又名 FMX)是跨平台的,因此不会添加windows
到其默认使用子句中。
在 OS X 上,Loadlibray 和 GetProcaddress 函数都没有在 sysutils 中定义——这两个函数都专门包含在 POSIX 定义中。