2010-11-10 192 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的超集。