我有一些64位问题。这里的瓢:在64位Windows机器上调用COM服务器DLL
我有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
像这样的机器上这个应用程序:
- 我放在
C:/Windows/SysWOW64
- 我
C:/Windows/SysWow64/regsvr32.exe
注册它的dll,但我只能够获得注册通过运行regsvr32
成功“以管理员身份运行”上下文菜单选项。
现在,当我尝试运行我的exe文件时,除了使用“以管理员身份运行”选项启动我的exe时,无法调用dll。不是很好。一个用户不应该被要求成为一个管理员来运行一个简单的应用程序。
有没有人知道我如何得到这个工作,而不需要“以管理员身份运行”选项?
谢谢!
-Ken
+1。 ProcMon是找出为什么这些东西不起作用的唯一可靠方法。 – sharptooth 2010-08-26 05:20:37
+1。谢谢,汉斯!我能够使用ProcMon追踪这个问题。长话短说,DLL试图用写权限来创建和访问SysWow64目录中的文件,这是只有管理员才能做到的。 纠正了这个问题,我现在很好! -Ken – Ken 2010-08-26 19:46:46