我试图通过Firemonkey框架使用Delphi XE2制作一个插件系统。问题是我收到错误GetProcAddress是未声明的标识符。当我尝试在VCL项目中使用GetProcAddress时,一切正常,那么在谈论GetProcAddress以及如何在Firemonkey应用程序中使用它时,VCL和Firemonkey之间的区别是什么。
由于
答案 0 :(得分:4)
编译Windows应用程序时,请使用Winapi.Windows.GetProcAddress。如果没有,请使用System.SysUtils.GetProcAddress。在这种情况下,uses子句应如下所示:
uses
{$IFDEF MSWINDOWS}
Winapi.Windows,
{$ENDIF}
System.SysUtils;
答案 1 :(得分:3)
GetProcAddress
是Windows API系统调用
因此,它在跨平台FMX应用程序中没有地位。
如果您只希望应用程序在Windows上运行,则可以将定义GetProcAddress
的单位添加到uses子句中。
来自:http://docwiki.embarcadero.com/RADStudio/en/Libraries_and_Packages
将Windows
添加到uses子句中。
在谈论GetProcAddress
时,VCL和Firemonkey之间有什么区别
VCL专门针对Windows,Firemonkey(又称FMX)是跨平台的,因此不会将windows
添加到其默认使用子句中。
答案 2 :(得分:0)
在OS X上,sysutils中都没有定义Loadlibray和GetProcaddress函数-这两个函数都专门包含在POSIX定义中。