c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(544) : error C2061: 语法错误 : 标识符“__out_data_source”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(546) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(546) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(557) : error C2061: 语法错误 : 标识符“__out_data_source”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(559) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(559) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(740) : error C2061: 语法错误 : 标识符“__out_data_source”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(742) : error C2059: 语法错误 : “)”
1>c:\program files\microsoft sdks\windows\v6.0a\include\winreg.h(742) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
...................................以及:
1>c:\program files\microsoft sdks\windows\v6.0a\include\propidl.h(559) : error C2061: 语法错误 : 标识符“__RPC__in_ecount_full”
1>c:\program files\microsoft sdks\windows\v6.0a\include\propidl.h(560) : error C2059: 语法错误 : “)”
...................................等等;
如上面两种的错误;
如何解决呢?各位高帅富各抒己见呀!
14 个解决方案
#1
winreg.h是什么东东
#2
winreg.h好像是VC自带的系统文件,可能与注册表有关
#3
你把这个winreg.h头文件注释掉,加上include "windows.h"试试
#4
也可能是文件包含的顺序造成的
#5
在winreg.h之前包含specstrings.h
#6
这个不行呀,已经包含windows.h了,而且我的这个项目中没有显示的声明包含winreg.h这个头文件,但是编译的时候就是会出错呀
#7
可是顺序该如何调呢?头文件的顺序放置应该是有一定的规则的,但这些规则是什么呢?请4楼学长知道的话,不吝赐教呀!
#8
5楼的学长实为正解呀,太感激了,麻烦说说原因吧,为什么只要先包含了specstrings.h,就可以解决winreg.h的错误呢?
winreg.h的问题已经解决了,但是propidl.h中的问题仍然存在,该如何办呢?各位学长不吝赐教呀!
#9
你这里的问题其实就是解决__out_data_source定义的问题
关于propidl.h在其前包含rpcsal.h
关于propidl.h在其前包含rpcsal.h
#10
错误多到不正常的好多都是头文件包含的问题
#11
学长,包含rpcsal.h,没有解决问题,我的项目中没有显式的包含propidl.h,所以也可能是我把rpcsal.h放错地方了,我是把它放在预编译头文件stdafx.h中的,因为我发现所有的.cpp文件都包含它,所以我把它放在那里的,这样对吗?我解决winreg.h中的问题也是把specstrings.h放在stdafx.h中的。
而且,各个头文件的放置顺序有什么讲究呢?请xianglitian学长解答一下呀!
#12
看看propidl.h是被谁包含的
把rpcsal.h包含在那个文件前面
头文件顺序就是要把定义的东西放到前面
否则就会出现你这里的无定义的问题
把rpcsal.h包含在那个文件前面
头文件顺序就是要把定义的东西放到前面
否则就会出现你这里的无定义的问题
#13
跨度太大,真不如重写。。。
#14
谢谢 xianglitian 大哥,也非常的感谢各位学长的热心帮助,问题终于解决了,我把rpcsal.h再放到propidl.h之前就解决了,可是我一直都搞不明白为什么在VC6下的代码一放到VS2008下就出现这样的问题,那个代码如下:
#include"rpcsal.h"
#include"specstrings.h"
#include <windows.h>
而VC6中前两句都是不需要的呀!求解惑呀!谢谢各位学长、学姐!
是不是以后所有开发win32项目一旦需要包含windows.h文件都要首先包含前两个文件呀?谢谢
#include"rpcsal.h"
#include"specstrings.h"
#include <windows.h>
而VC6中前两句都是不需要的呀!求解惑呀!谢谢各位学长、学姐!
是不是以后所有开发win32项目一旦需要包含windows.h文件都要首先包含前两个文件呀?谢谢
#1
winreg.h是什么东东
#2
winreg.h好像是VC自带的系统文件,可能与注册表有关
#3
你把这个winreg.h头文件注释掉,加上include "windows.h"试试
#4
也可能是文件包含的顺序造成的
#5
在winreg.h之前包含specstrings.h
#6
这个不行呀,已经包含windows.h了,而且我的这个项目中没有显示的声明包含winreg.h这个头文件,但是编译的时候就是会出错呀
#7
可是顺序该如何调呢?头文件的顺序放置应该是有一定的规则的,但这些规则是什么呢?请4楼学长知道的话,不吝赐教呀!
#8
5楼的学长实为正解呀,太感激了,麻烦说说原因吧,为什么只要先包含了specstrings.h,就可以解决winreg.h的错误呢?
winreg.h的问题已经解决了,但是propidl.h中的问题仍然存在,该如何办呢?各位学长不吝赐教呀!
#9
你这里的问题其实就是解决__out_data_source定义的问题
关于propidl.h在其前包含rpcsal.h
关于propidl.h在其前包含rpcsal.h
#10
错误多到不正常的好多都是头文件包含的问题
#11
学长,包含rpcsal.h,没有解决问题,我的项目中没有显式的包含propidl.h,所以也可能是我把rpcsal.h放错地方了,我是把它放在预编译头文件stdafx.h中的,因为我发现所有的.cpp文件都包含它,所以我把它放在那里的,这样对吗?我解决winreg.h中的问题也是把specstrings.h放在stdafx.h中的。
而且,各个头文件的放置顺序有什么讲究呢?请xianglitian学长解答一下呀!
#12
看看propidl.h是被谁包含的
把rpcsal.h包含在那个文件前面
头文件顺序就是要把定义的东西放到前面
否则就会出现你这里的无定义的问题
把rpcsal.h包含在那个文件前面
头文件顺序就是要把定义的东西放到前面
否则就会出现你这里的无定义的问题
#13
跨度太大,真不如重写。。。
#14
谢谢 xianglitian 大哥,也非常的感谢各位学长的热心帮助,问题终于解决了,我把rpcsal.h再放到propidl.h之前就解决了,可是我一直都搞不明白为什么在VC6下的代码一放到VS2008下就出现这样的问题,那个代码如下:
#include"rpcsal.h"
#include"specstrings.h"
#include <windows.h>
而VC6中前两句都是不需要的呀!求解惑呀!谢谢各位学长、学姐!
是不是以后所有开发win32项目一旦需要包含windows.h文件都要首先包含前两个文件呀?谢谢
#include"rpcsal.h"
#include"specstrings.h"
#include <windows.h>
而VC6中前两句都是不需要的呀!求解惑呀!谢谢各位学长、学姐!
是不是以后所有开发win32项目一旦需要包含windows.h文件都要首先包含前两个文件呀?谢谢