繁体   English   中英

复制到程序文件(x86)时无法执行我的DLL

[英]Cannot execute my DLL when copied to Program Files (x86)

我有一个有趣的问题:

我编写的程序使用DL​​L。 安装后,程序exe和DLL都位于c:\\ Program Files(x86)\\ MyProduct下

通常,加载的DLL是第三方驱动程序 出于测试目的,我将其替换为自己的实现。 当我在程序文件文件夹中用自己的第三者DLL覆盖我的程序EXE无法启动DLL时,LoadLibraray返回0,GetLastError返回-529697949。 现在,当我将整个MyProduct文件夹复制到时,假设c:\\ temp并启动程序EXE,则可以加载DLL。

所以我想我的问题与Windows安全性有关。 我的DLL程序和我的版本都是用C ++编写的。 我的用户权限具有管理员访问权限,我是否以管理员身份执行程序似乎并不重要。 有人知道是否有Windows保护机制可能阻止DLL加载吗?

谢谢

更新资料

我认为问题与我的DLL试图写入DLL初始化函数中的执行目录有关。 在“程序文件”目录中执行时,Windows不允许这样做。

是的,我终于开始运行了。 问题是我的DLL试图在DLL初始化期间写入exe文件夹。 Windows似乎检测到此问题,并且LoadLibrary调用失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM