我们有几个项目正在编译我的 makefile。这些 make 文件在 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> 指向的类型不相关;转换需要 reinterpret_cast、C-style cast 或 function-style cast
有什么办法摆脱它吗?
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