|
Boost Users : |
Subject: [Boost-users] Compiling Boost with 4 byte packing...
From: Brian Nantz (brian_at_[hidden])
Date: 2011-03-16 17:13:41
I am trying to get boost asio to work with my code (which is using 4 byte
struct member alignment and _cdecl calling convention). I get the
following error when calling asio::async_write:
Run-Time Check Failure #0 - The value of ESP was not properly saved across a
function call. This is usually a result of calling a function declared with
one calling convention with a function pointer declared with a different
calling convention.
What am I missing? I have read everything on ABI that I can find:
http://www.boost.org/development/separate_compilation.html
I changed boost\config\abi\msvc_prefix.hpp to use #pragma pack(push,4).
I also am using the command line option for bjam:
cxxflags="/Zp4 /Gd"
The Microsoft documentation seems to indicate that the /Zp should override
the #pragma if the #pragma is larger or equal:
http://msdn.microsoft.com/en-us/library/ms253935.aspx
http://msdn.microsoft.com/en-us/library/46t77ak2.aspx
Any help would be greatly appreciated,
Brian
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