我正在尝试编译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?
任何帮助都会很棒
由于
答案 0 :(得分:1)
原来问题是,不包括BaseTsd.h(不能相信这是可能的)
但作为简短的修复我只是手动包含了BaseTsd.h ...如果我找到更好的解决方案,我会评论这个答案
答案 1 :(得分:0)
使用
#include <windows.h>
它包含BaseTsd.h
和其他相关的Windows特定定义。