开发者

boost.python "DLL load failed" on WinXP, VisualStudio 2005

I have problems importing a boost-python module on WinXP-32. I'm using python 2.6.6, boost.python 1.41 precompiled libs by boostpro and VC++8 (VisualStudio 2005).

After compiling the piece of code below, I tried to import the resulting pyHELLO.pyd from the python command line and always get:

"ImportError: DLL load failed: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem."

I re-installed python and tried other boost versions. But none of it helped.

I have the corresponding boost dlls in the directory where I tried to import the module.

The same code works with VC++9 under Win7.

Here's the code:

int sayHello() {
    cout << "Hello  !" <<开发者_C百科 endl; 
}


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

Any help highly appreciated.


Resolved:

The correct version of the MSVC80CRT dll on which the boost.python dll depends was missing on my machine. I downloaded the corresponding redist package from MS and installed it. Now it works.

The dependencywalker did not show a missing dependency for this dll. After reading about manifests and SxS I found out that the correct dll version is stated in the manifest which itself is embedded in the dll header.

If you open a dll in Visual Studio you can read the information. Then you check if the dll version is present in the c:\windows\winsxs folder. If not you can retrieve the missing dll by downloading a corresponding "redist" package from MS. Just search for the dll version.

Thanks to David for giving the hint on manifests.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜