user-0 提问: VC 编译器的问题？？？

回复:
user: user-0
content: 引用 15 楼 zhao4zhong1 的回复:[quote=引用 14 楼 zhao4zhong1 的回复:] [quote=引用 楼主 N_sev7 的回复:] d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) : error C2632: 'long' followed by 'long' is illegal   据说和<windows.h>这个头文件包含的位置有关？？？ 试试修改#include的顺序。[/quote] 或者修改 工具、选择、目录、对话框中include files路径 的上下顺序。[/quote]  貌似就是#include顺序的问题，后来解决别的问题的时候，改变了很多头文件包含的顺序与位置，结果就好了...

user: user-0
content: 引用 7 楼 richyhuang 的回复:把那个a.h贴出来看看嘛 头文件内容如下   #ifndef RP_LP_HEADERALL_H__ #define RP_LP_HEADERALL_H__  #pragma warning( disable : 4786 )  #include	<windows.h> #include	<tchar.h> #include	<assert.h> #include    <math.h> #include	<vector> #include	<string> #include	<map> #include	<algorithm> #include	<iostream> using namespace std;  #include	"CrtDbg.h" #include    <sqltypes.h>

user: user-1
content: 引用 14 楼 zhao4zhong1 的回复:[quote=引用 楼主 N_sev7 的回复:] d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) : error C2632: 'long' followed by 'long' is illegal   据说和<windows.h>这个头文件包含的位置有关？？？ 试试修改#include的顺序。[/quote] 或者修改 工具、选择、目录、对话框中include files路径 的上下顺序。

user: user-1
content: 引用 楼主 N_sev7 的回复:d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) : error C2632: 'long' followed by 'long' is illegal   据说和<windows.h>这个头文件包含的位置有关？？？ 试试修改#include的顺序。

user: user-1
content: 偶遇到类似问题都是用 “每次用/*...*/注释掉不同部分再重新编译，直到定位到具体语法出错的位置。” 的方法解决的。

user: user-0
content: [code=csharp]      [/code]

user: user-0
content: 引用 10 楼 zhao4zhong1 的回复:替换所有的long long为__int64  /* SQL portable types for C */ typedef unsigned char           UCHAR; typedef signed char             SCHAR; typedef SCHAR                   SQLSCHAR; typedef long int                SDWORD; typedef short int               SWORD; typedef unsigned long int       UDWORD; typedef unsigned short int      UWORD; typedef UDWORD                  SQLUINTEGER;   这是d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) 文件的内容

user: user-1
content: 替换所有的long long为__int64

user: user-2
content: 原因在于VC6中所使用的编译器是基于C89的，而long long 型是在C99引入的，故无法实现编译。 将long long 用 _int64 进行替换，就可以解决了。

user: user-3
content: 把那个a.h贴出来看看嘛

user: user-0
content: 引用 4 楼 zjq9931 的回复:在编写数据库的程序？这方面没有怎么搞过。。。。   主要这个整个工程中有跟数据库操作有关的东西，就包含了这个头文件，注掉会有其他问题...

user: user-0
content: 引用 3 楼 sholber 的回复:各种错误，各种你没帖出来的东西，各种奇怪。 在一个MFC的工程中链接一个DLL，这个DLL工程中有个头文件a.h  包含了sqltypes.h这个头文件，我要用DLL中的函数，肯定要包含a.h这个头文件吧，问题就成这样了   .....

user: user-2
content: 各种错误，各种你没帖出来的东西，各种奇怪。

user: user-4
content: 在编写数据库的程序？这方面没有怎么搞过。。。。

user: user-0
content: 引用 1 楼 zjq9931 的回复:long long 这个类型是不对的。。。 可以用 __int 64 d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) : error C2632: 'long' followed by 'long' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(91) : error C2632: 'long' followed by 'int' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(92) : error C2632: 'short' followed by 'short' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(92) : error C2632: 'short' followed by 'int' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(93) : error C2632: 'long' followed by 'long' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(93) : error C2632: 'long' followed by 'int' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(94) : error C2632: 'short' followed by 'short' is illegal d:\program files\microsoft visual studio\vc98\include\sqltypes.h(94) : error C2632: 'short' followed by 'int' is illegal  各种错误

user: user-4
content: long long 这个类型是不对的。。。 可以用 __int 64