在 64 位 Windows 计算机上调用 COM 服务器 DLL

在 64 位 Windows 计算机上调用 COM 服务器 DLL

我最初发布于堆栈溢出但是我认为 ServerFault 可能更适合这个群体:

我有一个 32 位 COM exe(用 FoxPro 编写)。此 exe 调用一个 32 位 COM dll(也是用 FoxPro 编写)。在 32 位 Windows 世界中,dll 放在C:/Windows/System32目录中,注册后C:/Windows/System32/regsvr32.exe一切正常。exe 可以启动,并且任何需要 dll 的进程都可以正常运行。

在 64 位世界中情况就不同了。我尝试在运行Windows 7 x64如下程序的机器上安装此应用程序:

  • 我将 dll 放在C:/Windows/SysWOW64
  • 我用 它注册了它,但只有通过使用“以管理员身份运行”上下文菜单选项C:/Windows/SysWow64/regsvr32.exe才能使注册成功。regsvr32

现在,当我尝试运行我的 exe 时,它​​无法调用 dll,除非使用“以管理员身份运行”选项启动我的 exe。这不好。用户不应该被要求成为管理员才能运行一个简单的应用程序。

有人知道我怎样才能让它工作而不需要“以管理员身份运行”选项吗?

谢谢你!

-肯

答案1

问题已解决。请参阅堆栈溢出以获得完整答案。

-肯

相关内容