[C++-sig] boost python in visual c++ 2008

Haoyu Bai divinekid at gmail.com
Mon Apr 20 09:20:32 CEST 2009


On Mon, Apr 20, 2009 at 1:53 PM, glok_twen <glok_twen at yahoo.com> wrote:
>
> hi.
>
> i have used boost python to create the sample from the doc within visual
> studio. a dll has resulted. but when i copy that dll to any of numerous
> places on my path, and run a python shell, i keep getting:
>
> ImportError: no module named hello
>
> Here is the code, it's contained in 2 modules within visual c++ (maybe that
> part of the problem?):
>
> ***** first module *****
>
> // boost_pyth_01.cpp : Defines the exported functions for the DLL
> application.
> //
>
> #include <boost/python.hpp>
> using namespace boost::python;
>
>
> //#include "stdafx.h"
>
> __declspec(dllexport) struct World
> {
>    void set(std::string msg) { this->msg = msg; }
>    std::string greet() { return msg; }
>    std::string msg;
> };
>
>
> BOOST_PYTHON_MODULE(hello)
> {
>    class_<World>("World")
>        .def("greet", &World::greet)
>        .def("set", &World::set)
>    ;
> }
>
> ***** and, second module *****
>
> // dllmain.cpp : Defines the entry point for the DLL application.
> #include "stdafx.h"
>
> BOOL APIENTRY DllMain( HMODULE hModule,
>                       DWORD  ul_reason_for_call,
>                       LPVOID lpReserved
>                                         )
> {
>        switch (ul_reason_for_call)
>        {
>        case DLL_PROCESS_ATTACH:
>        case DLL_THREAD_ATTACH:
>        case DLL_THREAD_DETACH:
>        case DLL_PROCESS_DETACH:
>                break;
>        }
>        return TRUE;
> }
>
>
> it does build a dll, named after my project name in the first module. i
> copied this dll to numerous places on my path. still get the error above in
> the python shell.
>
> also i get this warning during the link:
>
> 1>d:\cpp_testing\boost_pyth_01\boost_pyth_01.cpp(15) : warning C4091:
> '__declspec(dllexport)' : ignored on left of 'World' when no variable is
> declared
>
> --
> View this message in context: http://www.nabble.com/boost-python-in-visual-c%2B%2B-2008-tp23130743p23130743.html
> Sent from the Python - c++-sig mailing list archive at Nabble.com.
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig at python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>

Hi,

Are you compiled your module to a file with '.dll' extension? Accord
to Python document, the '.dll' extension will not be recognized by
Python after version 2.5.
(http://docs.python.org/extending/windows.html) You should change the
extension name to '.pyd'.

-- Haoyu Bai


More information about the Cplusplus-sig mailing list