Проблема с MDAC при попытке компиляции в VS2008 с использованием целевой платформы x64 bit - PullRequest
0 голосов
/ 03 июня 2010

Я пытаюсь скомпилировать 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?

Любая помощь будет отличной

Спасибо

Ответы [ 2 ]

1 голос
/ 08 июля 2010

Оказалось, проблема в том, что каким-то образом BaseTsd.h не был включен (не могу поверить, что это возможно)

но в качестве краткого исправления я просто включил BaseTsd.h вручную ... я прокомментирую этот ответ, если найду лучшее решение

0 голосов
/ 04 июля 2017

Используйте

#include <windows.h>

Содержит BaseTsd.h и другие соответствующие определения для Windows.

...