簡體   English   中英

WinXP,VisualStudio 2005上的boost.python“DLL加載失敗”

[英]boost.python “DLL load failed” on WinXP, VisualStudio 2005

我在WinXP-32上導入boost-python模塊時遇到問題。 我正在使用python 2.6.6,boost.python 1.41預編譯的libs由boostpro和VC ++ 8(VisualStudio 2005)。

在編譯下面的代碼之后,我嘗試從python命令行導入生成的pyHELLO.pyd,並始終得到:

“ImportError:DLL加載失敗:此應用程序無法啟動,因為應用程序配置不正確。重新安裝應用程序可能會解決此問題。”

我重新安裝了python並嘗試了其他的boost版本。 但它都沒有幫助。

我在嘗試導入模塊的目錄中有相應的boost dll。

在Win7下,相同的代碼適用於VC ++ 9。

這是代碼:

int sayHello() {
    cout << "Hello  !" << endl; 
}


BOOST_PYTHON_MODULE(pyBoostTest)
{
    def("sayHello", sayHello);
}

任何幫助高度贊賞。

解決:

我的機器上缺少boost.python dll所依賴的MSVC80CRT dll的正確版本。 我從MS下載了相應的redist包並安裝了它。 現在它有效。

dependencywalker沒有顯示此dll缺少依賴項。 在閱讀了清單和SxS之后,我發現清單中聲明了正確的dll版本,它本身嵌入了dll頭文件中。

如果在Visual Studio中打開dll,則可以閱讀該信息。 然后檢查c:\\ windows \\ winsxs文件夾中是否存在dll版本。 如果不是,您可以通過從MS下載相應的“redist”軟件包來檢索丟失的dll。 只需搜索dll版本。

感謝大衛對清單的暗示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM