1

我有一个 COM 对象,最初是在 32 位的 Delphi 2007 下编译的。现在我已经使用 64 位编译器移植到 Delphi XE3。它使用新的 64 位 DLL 成功编译,但我无法注册它。

我正在使用管理员注册 DLL,它适用于 32 位 DLL,但不适用于 64 位。

它一直说“对内存位置的访问无效”

这里有什么提示吗?

PS:我使用的命令很简单%systemroot%\System32\regsvr32.exe test.dll

在 Windows 7 64 位中注册时,它显示“对内存位置的访问无效”;在 Windows 8 64 位中注册时,它显示“动态链接库初始化例程失败”。

4

1 回答 1

0

是的,我找到了原因。在其中一个单元的初始化部分,它仍然使用第三方的 32 位浮点运算。删除代码后,它成功注册了 DLL。

在 win7 上,错误消息令人困惑,但在 win8 上,它显示“'动态链接库初始化例程失败',这给出了更清楚的原因。

于 2013-03-21T13:41:54.663 回答