我正在使用新的 Delphi Tokyo 10.2.2 ,在我的情况下,我使用的是在运行时加载的包。
即使是一个简单的示例并且请求EXE仅加载RTL单元也会出现运行时错误,仅在 Windows XP 操作系统上出现:
无法在动态链接库 WS2_32.dll 中找到过程入口点 inet_ntop 。
使用 Delphi Tokyo 10.2.1 ,问题不会发生。
有什么想法吗?
答案 0 :(得分:1)
我有一个新的项目代理函数,用于原始Windows XP的WS2_32.dll的所有导出函数,包括Windows XP的WS2_32.dll中缺少的inet_pton
。
它欺骗Windows XP应用程序进程,认为inet_pton
可用,而不是提示任何错误。
答案 1 :(得分:0)
inet_ntop()
已添加到Windows Vista中的Winsock,它在XP中不存在。
显然,Embarcadero已经在10.2.2中为RTL添加了新代码,静态而不是动态地调用inet_ntop()
。 10.2.1中RTL中不存在的代码。这就是在XP上加载10.2.2的RTL包时发生错误的原因。
你无能为力。如果你必须在XP上运行你的应用程序(Embarcadero在XE3中放弃了支持),那么就不能使用10.2.2 RTL了。
答案 2 :(得分:0)
所有强>
我能够通过创建一个包含所有必要单元的包来解决问题。
然后是可执行文件和其他BPL(模块)引用这个新的包。
它在win XP中再次运作!
谢谢大家的支持