I wrote a program based on Win32. Now I need to switch it to x64 to be capable to take benefit of x64's computing power. During the switch, there is one thing blocked: some third-part library uses cdecl that cannot be used on x64 anymore. So it cannot compile.
I remember the cdecl is related to calling convention. Please, does anyone know how to fix it so I can run on x64? Thanks!
What compiler do you use ? With Microsoft Visual Studio On Itanium Processor Family (IPF) and x64 processors, __cdecl is accepted and ignored by the compiler;
> If I am right, is it related to the _cdecl in boost::iostreams and system?
Yes.
You need to rebuild all your libraries for a 64 bit platform with the __cdecl removed. And then you need to have the preprocessor defines before you include any header which was written for a 32 bit platform.
Well actually I use an external header which includes some boost libraries. While the conversion of my program to x64, the related boost libraries stop the compilation, as I showed above. My own code is ok when I convert to x64 debug. That is why I think I have to rebuild boost for x64.
Yes, you need to rebuild boost for 64-bit, I was hoping the sarcasm in my previous post would give you a laugh. I guess I shouldn't push my luck with plain-text.
I already have checked about building boost 1.53 for 64bit. I didn't find an clear instruction to build it. There is a installer for win64, but it occupies 8 Go which is huge. I prefer to build it by myself. Any idea about build it for VC11? Building on 32bit is quite simple but there should be some difference between them.