Delphi Tokyo 10.2.2 - Win XP 运行时不加载包
Delphi Tokyo 10.2.2 - Packages do not load at runtime in Win XP
我正在使用新的 Delphi Tokyo 10.2.2,在我的例子中,我使用了在 运行 时间加载的包。
即使做一个简单的例子并请求 EXE 仅加载 RTL 单元也会发生 运行 时间错误,仅在 Windows XP 操作系统:
The procedure entry point inet_ntop could not be located in the dynamic link library WS2_32.dll.
使用 Delphi Tokyo 10.2.1 问题没有发生。
有什么想法吗?
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。
全部,
我能够通过创建一个嵌入了所有必要单元的包来解决问题。
然后是引用这个新包的可执行文件和其他 BPL(模块)。
它在 win XP 中再次运行!
感谢大家的支持
我有一个新的项目代理函数,用于原始 Windows XP WS2_32.dll 的所有导出函数,包括 Windows XP WS2_32.dll 中缺少的 inet_pton
.
欺骗Windows XP应用进程认为inet_pton
可用,不提示任何错误。
我正在使用新的 Delphi Tokyo 10.2.2,在我的例子中,我使用了在 运行 时间加载的包。
即使做一个简单的例子并请求 EXE 仅加载 RTL 单元也会发生 运行 时间错误,仅在 Windows XP 操作系统:
The procedure entry point inet_ntop could not be located in the dynamic link library WS2_32.dll.
使用 Delphi Tokyo 10.2.1 问题没有发生。
有什么想法吗?
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。
全部,
我能够通过创建一个嵌入了所有必要单元的包来解决问题。
然后是引用这个新包的可执行文件和其他 BPL(模块)。
它在 win XP 中再次运行!
感谢大家的支持
我有一个新的项目代理函数,用于原始 Windows XP WS2_32.dll 的所有导出函数,包括 Windows XP WS2_32.dll 中缺少的 inet_pton
.
欺骗Windows XP应用进程认为inet_pton
可用,不提示任何错误。