簡體   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