各位大俠
用VS2008新建一個程式,這個程式呼叫用vc6.0撰寫的dll檔案,進行了如下操作:
1、把dll,lib,h檔案復制到程式目錄和dbug目錄中;
2、在專案-->屬性-->聯結器-->輸入-->附加依賴項中添加對應的lib檔案;
3、在工程中添加對應的h檔案;
執行編譯,結果提示為"無法定位程式輸入點xxx()于元件.dll"問題,
請教各位大俠,我這種操作方法還遺漏了什么?怎么會出現這種問題?
uj5u.com熱心網友回復:
xxx是個函式吧。一種情況就是依賴的dll又依賴了其他的dll
一種就是平臺之間的函式差異。
比如我曾遇到過這種問題。
無法定位程式輸入點_except_handler4_common于元件msvcrt.dll上
最近,多種軟體都出現了一個啟動時的錯誤提示 “無法定位程式輸入點_except_handler4_common于動態鏈接
庫msvcrt.dll上”。
出現這個提示情況是:Windows Xp 系統; 軟體包括:window live writer 2009, windows messenger 2009,
firefox 3.5 等非常新的版本。
這個提示出現后,點擊確定,并不影響程式的使用。這個問題出現的原因,其實微軟自己的問題。可謂是微軟
的Vista 后遺癥吧。
在 Vista 系統里,有個挺酷的功能,就是“程式縮略圖”,有點3D效果,這個功能,呼叫了 dwmapi.dll 這
個庫,而 dwmapi.dll 又參考了 msvcrt.dll 中的 _except_handler4_common 功能。
然而,在XP系統中,系統自帶的 msvcrt.dll 和 Vista 中的 msvcrt.dll 版本不同, 并沒有這個
_except_handler4_common ,結果就出現了啟動程式時,遇到的 “無法定位程式輸入點
_except_handler4_common于元件msvcrt.dll上”的錯誤提示。
解決方法:
將 c:\windows\system32 下的 dwmapi.dll 改名,例如:改為 dwmapi.dll.bak。
uj5u.com熱心網友回復:
用Depends看下你編譯的exe和那個vc6的dll,看是否正確,問題立馬找到uj5u.com熱心網友回復:
還是有dll檔案漏掉了。找不到uj5u.com熱心網友回復:
都復制到工程所在的目錄了啊,還是不行uj5u.com熱心網友回復:
解決了嗎?我也遇到了這種問題。不知道怎么解決uj5u.com熱心網友回復:
有可能.lib 和 DLL 不匹配, 或者缺少依賴DLL等DependsView 查看下DLL 和 EXE 注意紅色部分
uj5u.com熱心網友回復:
是不是在xp上。vs2012就不支持xp了uj5u.com熱心網友回復:
在64位Windows下:64位exe和dll在目錄c:\windows\system32目錄下;
32位exe和dll在目錄c:\windows\syswow64目錄下;
所以要注意:
在win64位系統下注冊32位ocx或dll需要將32位ocx或dll拷貝到c:\windows\syswow64\目錄下。
且注冊要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/128933.html
標籤:進程/線程/DLL
下一篇:USB通訊超時時間的設定
