作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在尝试获得一个适用于 Windows 2000
的程序工作 Windows 2003
.到目前为止,我必须做的所有事情才能让程序在 Windows 2003
上运行与不正确的配置有关。现在,这段代码:
chr = pAdapterEnvPtr.CreateInstance(__uuidof(PFADAPTERMNGLib::PFAdapterEnv));
正在返回:
0x8007007E
或者换句话说:
The specified module could not be found.
我有另外两个程序和另一个 .dll,我可以成功地创建这些类的实例。但这似乎失败了。
Procmon
试图找出程序找不到的东西,但是
Procmon
没有显示任何可能表明程序找不到东西的东西。
OleView
,如果我尝试创建类的实例,我会看到下图:
PFComgMng
的实例给我同样的错误。 (
PFAdapterEnv
和
PFCompMng
使用相同的过程,
PFAdapterMng.exe
。)但是,
PFMQMonitor
,
PFSend
, 和
PFTrace
一切正常。 (使用
PFMQListen.exe
、
PFSend.dll
和
PFTraceService.exe
。)
hr = pPFCompMng.CreateInstance(__uuidof(PFADAPTERMNGLib::PFCompMng));
从
PFAdapterMng.exe
调用它时工作得很好.所以看起来像
PFAdapterMng.exe
可以成功找到模块并创建实例,但任何其他尝试创建
PFAdapterMng.exe
中的类实例的任何其他进程找不到模块,导致这个错误。
Procmon
对这种特定情况没有帮助,有谁知道我可以做些什么来弄清楚是什么让其他进程无法找到模块?
Dependency Walker
有分析因为
PFAdapterMng.exe
和
PFTraceService.exe
必须作为服务运行。我试图运行
Dependency Walker
分析时
OleView
并尝试创建
PFAdapterEnv
的实例和
PFCompMng
试图找出我为什么得到
Module not found
消息框。不幸的是,
Dependency Walker
没有表明缺少任何东西。
Procmon
中的某些内容日志,所以我通过在我跳过对
CreateInstance
的调用之前捕获事件创建了一个新日志并在通话后。也许其他人可以看看并告诉我我是否错过了它?我根本找不到任何迹象表明
PFMQListen.exe
找不到东西。。
Procmon
的压缩文件夹的链接。文件,一个
.csv
文件和
.xml
文件。
Dependency Walker
在 Profile 模式下运行以创建
PFAdapterEnv
的实例.
Dependency Walker
没有发现任何遗漏的
.dll
的。
Procmon
不显示任何内容,
Dependency Walker
也不显示.我正在使用
ollydbg
在汇编级别单步执行代码,我注意到错误是在函数
NdrClientCall2
中创建的.我不知道这是否意味着什么。
/RegServer
注册应用程序,它工作。我尝试使用
/RegServer
以前,我只是使用
/UnregServer
取消注册所有内容.这一次,我也从
Component Services
中删除了该组件。我需要它,因为我想运行
PFAdapterMng
在另一个身份下。
/RegServer
上运行时一切正常。并双击应用程序。但是,我希望一切都在不同的配置下运行。
PFAdapterMng.exe
- 注册为
/Service
并通过
services.msc
以另一个身份运行
PFTraceServer.exe
- 注册为
/Service
并通过
services.msc
以另一个身份运行
PFMQListen.exe
- 注册为
/RegServer
将由
PFAdapterMng
开始
PFMQSend.dll
- 注册
Regsvr32
并由
PFAdapterMng
加载
最佳答案
我的猜测是它与可执行文件的某些DLL依赖项的搜索路径有关。
您可以在每个模块上尝试“Dependency Walker”以查看是否所有 DLL 都可用:http://www.dependencywalker.com/
并根据需要更新搜索路径。
关于c++ - CreateInstance 返回 "The specified module could not be found.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6880371/
我是一名优秀的程序员,十分优秀!