Noman_Khan | 26 Aug 15:20

[filesystem] Boost 1.36 issue on Win64

Hi all
I am trying to use Boost library on 64 bit windows and it is crashing 
whenever i call a boost function. I am using boost 1.36 with VS2008 and i 
have used the bellow line to compile boost's 64 bit version.

bjam debug release threading=multi --toolset=msvc-9.0 architecture=x86 
address-model=64

I am using BOOST_ALL_DYN_LINK preprocessor to link to boost.

It crashes after saying that heap may be corrupted. Also it works fine if 
compiled for 32 bit windows. Here is a sample code that replicates the 
issue:

/********************************************/
#include "boost/filesystem.hpp"

int wmain(int argc, wchar_t* argv[])
{
        wchar_t path[] = L"c:/temp/test";

        if(boost::filesystem::exists(path) )
        {
                printf("Path exists.\n");
        }
        else
        {
                printf("Path does not exists.\n");
        }
        return 0;
(Continue reading)

Re: [filesystem] Boost 1.36 issue on Win64

On Tue, Aug 26, 2008 at 10:22 AM,  <Noman_Khan <at> elixir.com> wrote:
> Hi all

[snip]

> It crashes after saying that heap may be corrupted. Also it works fine if
> compiled for 32 bit windows. Here is a sample code that replicates the
> issue:

Looks like you're using a different runtime version than the compiled boost
library.

[snip]

>
> Best Regards
> M. Noman Khan

--

-- 
Felipe Magno de Almeida
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Noman Khan | 27 Aug 06:28

Re: [filesystem] Boost 1.36 issue on Win64

Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:

> [snip]
> 
> Looks like you're using a different runtime version than the compiled boost
> library.
> 

As i have mentioned i have recompiled the boost code on the same machine and i
am still getting the error. Also the 32 bit version compiled on the same machine
works fine with a 32 bit compile of the sample application.

Best Regards
M. Noman Khan

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Re: [filesystem] Boost 1.36 issue on Win64

On Wed, Aug 27, 2008 at 1:28 AM, Noman Khan <noman_khan <at> elixir.com> wrote:
> Felipe Magno de Almeida <felipe.m.almeida <at> gmail.com> writes:
>
>> [snip]
>>
>> Looks like you're using a different runtime version than the compiled boost
>> library.
>>
>
> As i have mentioned i have recompiled the boost code on the same machine and i
> am still getting the error. Also the 32 bit version compiled on the same machine
> works fine with a 32 bit compile of the sample application.

Sorry if I can't be of more help. But what I see in the call stack
is that the Heap doesn't see the address trying to be deleted
by std::string as being one of its own.
Which means that std::string is being created by other runtime
version.
Maybe you have a problem with VC9 SP1/no-SP1?
If you're using the VC7.1 you might be using a single-threaded
runtime. Or you might just be compiling your code with a static
runtime?

> Best Regards
> M. Noman Khan

HTH,
--

-- 
Felipe Magno de Almeida
_______________________________________________
(Continue reading)


Gmane