Windows 64位移植问题

时间:2010-11-10 12:30:47

标签: sql visual-studio-2008 64-bit odbc windows64

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

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

这里我们没有得到in和sds的错误。

第二

include windows.h>

#ifdef WIN32
in sds;
#endif

这里我们得到in和sds的错误。这表明windows.h正在声明WIN32。 我们为函数SQLBindCol获取的错误如下:

  

错误C2664:'SQLBindCol':无法将参数6从'SQLINTEGER *'转换为'SQLLEN *'   1 GT;指向的类型是无关的;转换需要reinterpret_cast,C风格的转换或函数式转换

有什么想摆脱它吗?

makefile条目如下:

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 个答案:

答案 0 :(得分:1)

在编译x64代码时,Win32 #define应该与Win64一样存在以及

在这种情况下,将Win64视为Win32的超集。