在我的一个项目中,我使用了一个Delphi应用程序,它可以动态地加载一个包装DLL(导出C样式函数),这个DLL又是静态链接到一堆第三方DLL的。地狱图书馆(又名DLL地狱)
它可以在我的测试机器上正常工作,但在我的客户计算机上,它未能初始化出现错误消息,例如“无法在TMYlibrary.dll中找到入口点_somefunction @ 4AKKZ”。经过对sysinternal的进程监视器的一些调查后,我意识到Windows会首先在Windows/sytem32中查找fror DLL,因此如果在system32中存在一个类似于我的 DLL的DLL,Windows会选择该DLL并尝试找到我的功能入口点 - 这将失败。
您是否知道可以更改Windows'DLL的搜索行为?
其他信息
- [更新] .exe文件位于应用程序的文件夹树的顶层。
- 包装和第三方的dll ARê均设在我的应用程序文件夹
- 开发平台的子文件夹/ bin目录窗口XP/7,使用VS2008为源DLL1和Delphi 2010的应用程序
哪里EXE文件在什么位置?还在\ bin文件夹中? – 2010-07-22 14:19:17