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

我最初发布在StackOverflow上 ,但我认为也许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 ,但我只能通过使用“运行身份pipe理员”上下文菜单选项运行regsvr32注册成功。

现在,当我尝试运行我的exe文件时,无法调用dll,除非使用“以pipe理员身份运行”选项启动我的exe文件。 不是很好。 一个用户不应该被要求成为一个pipe理员只是为了运行一个简单的应用程序。

有没有人知道我可以得到这个工作,而不需要“以pipe理员身份运行”选项?

谢谢!

-Ken

问题解决了。 请参阅StackOverflow获取完整答案。

-Ken