2010-11-10 161 views
0

我们有很少的项目正在编译我的生成文件。这些使得文件在Windows 32和Visual Studio 2005上正常工作。 对于Windows 64移植,我们使用Visual Studio 2008.在make文件中,我们定义了/ d“_WIN64”来设置64位包含和其他东西。在一个文件中,我们包含了windows.h头文件。但正如其宣称的预处理器WIN32。所以在那之后,我们得到了ODBC的错误。我测试了如下 第一:Windows 64位移植问题

#ifdef WIN32 
in sds; 
#endif 
include windows.h> 

在这里,我们不是在和SDS收到错误。

二:

include windows.h> 

#ifdef WIN32 
in sds; 
#endif 

在这里我们得到错误的和SDS。其中显示windows.h声明WIN32。 的ERRO我们得到用于功能SQLBindCol如下:

错误C2664: 'SQLBindCol':不能转换参数6从 'SQLINTEGER *' 到 'SQLLEN *' 1>指向的类型无关;转换需要reinterpret_cast,C风格演员阵容或功能风格演员阵容

任何想法摆脱它?

生成文件条目是:

CPP_PROJ=/nologo /MT /W3 /GR /EHsc /O2 /I "..\..\include" /I"$(VC_ROOT)\include" /I"$(WINSDKDIR)" /D "_WIN64" /D "NDEBUG" /D_CRT_SECURE_NO_WARNINGS /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 

回答

1

在Win32#定义(一个或多个)64编译代码时应该存在以及为Win64的一个(或多个)。

在此上下文中将Win64视为Win32的超集。