Boost logo

Boost Users :

Subject: [Boost-users] Delay loading boost_python dll in Visual C++
From: David Aldrich (David.Aldrich_at_[hidden])
Date: 2010-07-30 04:47:26


Hi

I wish to 'delay loading' the boost_python dll in my application, built with Microsoft Visual C++ 2008, running on Windows XP. The purpose is so that I can specify at runtime the directory in which the boost_python is stored using SettDllDirectory() (I wish to store the dll in a non-standard location).

I am building in debug mode so I simply set project option Linker>Input>Delay Loaded DLLs equal to boost_python-vc90-mt-gd-1_43.dll.

When I run the code I get an exception in Microsoft file delayhlp.cpp at line 331:

return dli.pfnCur;

No boost_python API has been called until that point by my code, but the stack frame shows that boost method:

  registry_lookup1(type<T>)
  {
      return registry_lookup2((T(*)())0);
  }

has been called, and resulted in the exception.

Does this simply mean that boost_python is not suited to delay loading?

(Note: it has been suggested that I use a manifest file to reference the dll, but that does not work as one cannot specify arbitrary assembly locations under Windows XP).

With best regards

David


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net