私のmakefileをコンパイルしているプロジェクトはほとんどありません。これらの make ファイルは、Windows 32 および Visual Studio 2005 で正常に動作します。Windows 64 の移植には、Visual Studio 2008 を使用しています。make ファイルでは、/d “_WIN64” を定義して、64 ビットのインクルードなどを設定しました。1 つのファイルには、windows.h ヘッダーが含まれています。しかし、プリプロセッサWIN32を宣言しているように。その後、ODBC のエラーが発生します。最初に次のようにこれをテストしました:
#ifdef WIN32
in sds;
#endif
include windows.h>
ここでは、in および sds のエラーは発生していません。
2番:
include windows.h>
#ifdef WIN32
in sds;
#endif
ここでは、in と sds のエラーが発生しています。これは、windows.h が WIN32 を宣言していることを示しています。関数 SQLBindCol で得られるエラーは次のとおりです。
エラー C2664: 'SQLBindCol' : パラメーター 6 を 'SQLINTEGER *' から 'SQLLEN *' に変換できません 1> 指す型は無関係です。変換には 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