Old iostream Library(vc6 ) and 64bit compilation -
04-14-2009
, 11:29 PM
The following program compiles and executes fine in VC6 compiler.
#include "stdafx.h"
#include <iostream.h>
int main(int argc, char* argv[])
{
cout<< "hello world" << endl;
return 0;
}
When I try to compile it in VS2008 the compiler complains about iostream.h
and however I had an workround. Used the header from VC6 installation and
linked to LIBCIMT.lib and LIBCIMTD.lib coming with VC6.Then the program
compiles and executes fine in 32bit environment. My objective is to compile
this program in 64 bit environment.As the program uses VC6 headers the
compilation goes through but the linker fails with following message.
1>Linking...
1>libcimtd.lib(_ios.obj) : fatal error LNK1112: module machine type 'X86'
conflicts with target machine type 'x64'
As the LIBCI***.lib is still 32 bit so is the cause of the linking failure.
After looking at documentation it seems LIBCI***.lib are no more shipped
with VS2008 and correct procedure is to use the new iostream library
#include <iostream> shipped with VS2008.So it involves changing the code
and legacy code base is quite large too. Is there any other work around to
resolve above issue with minimal code change ?
Thanks
Ghanashyam |