$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Paul (elegant_dice_at_[hidden])
Date: 2005-01-20 01:12:50
I looked deeper into the problem, and hacked up boost a little to find 
out that the problem is the following check:
       if ( (checker == no_check || checker == native) && src.size() >= 2 )
at path_posix_windows.cpp:243
specifically checker==native.
I had constructed path with boost::filesystem::native, but when I hacked 
it up to do the following:
#     ifdef BOOST_WINDOWS
       std::stringstream ss; ss << "checker=" << 
reinterpret_cast<unsigned long>(checker) << std::endl
              << "native=" << reinterpret_cast<unsigned long>(native) << std::endl;
       boost::throw_exception( filesystem_error(
        "boost::filesystem::path",
        ss.str() ));
       if ( (checker == no_check || checker == native) && src.size() >= 2 )
I got the following results from calling the line: 
boost::filesystem::path p(s,boost::filesystem::native);
linking to libboost_filesystem-mgw-d-1_32.lib:
checker=4201048   native=4201048
linking to boost_filesystem-mgw-d-1_32.dll:
checker=4263776   native=1649966248
so, it appears that testing the checker using the address of a function 
is unreliable in a DLL context?  Have I compiled my program/library 
incorrectly?  I am not too familiar with DLL details etc, can someone 
else please shed some light on this?
thanks,
Paul