引子
最近正在写一个小的应用,使用到了Apache的Log4cxx库,这个库依赖于Apache Portable Runtime库,可是遇到一个问题:使用Visual Studio 2013,在Win32(x86)平台下出现一个链接错误,是底层C库一个函数问题,初步怀疑微软打包Bug。这个问题在x64平台下可以编译通过。
但是这次的开发主要目的有两个:使用开发的便捷工具;锻炼C++11的编程能力。如果再回退到Visual Studio 2012或者更早版本就得不偿失了,所以只好切换到x64平台上了。
但是Win32和x64平台编程,还是有很多区别的。首先一点就要防患于未然,那就是字节对齐问题了。
一个例子
看下面的例子,在Win32下编译,