0

32 ビット アプリケーションをコンパイルしようとしています。私はそれに関する問題を認識していますが、それが 64 ビット バージョンでコンパイルされている理由です。

私はこの問題にぶら下がっています。アプリケーションは多くの SQL を使用します。

sqltypes.h ファイル内: (MDAC から提供)

#ifdef _WIN64
typedef INT64           SQLLEN;
typedef UINT64        SQLULEN;
typedef UINT64  SQLSETPOSIROW;
#else
  #define SQLLEN          SQLINTEGER
  #define SQLULEN         SQLUINTEGER
  #define SQLSETPOSIROW   SQLUSMALLINT
#endif
//For Backward compatibility
#ifdef WIN32
  typedef SQLULEN           SQLROWCOUNT;
  typedef SQLULEN           SQLROWSETSIZE;
  typedef SQLULEN           SQLTRANSID;
  typedef SQLLEN            SQLROWOFFSET;
#endif

何らかの理由で、32ビットプラットフォームでコンパイルするとうまく動作しますが、64ビットでビルドしようとすると凶暴になります。

エラー 61 エラー C2146: 構文エラー: ';' がありません 識別子 'SQLLEN' の前..\external\microsoft sdk\include\sqltypes.h 50

INT64、UINT64は認識しません。

64 ビルド プロセスで動作するように有効にする必要があるものはありますか? #include または #define が不足していますか?

どんな助けでも素晴らしいでしょう

ありがとう

4

2 に答える 2

1

問題は、どういうわけか BaseTsd.h が含まれていないことであることが判明しました (これが可能であるとは信じられません)。

しかし、簡単な修正として、BaseTsd.hを手動で含めました...より良い解決策が見つかったら、この回答にコメントします

于 2010-07-08T15:21:32.043 に答える
0

使用する

#include <windows.h>

BaseTsd.hおよびその他の関連する Windows 固有の定義が含まれています。

于 2017-07-04T13:00:29.017 に答える