我正在尝试将MS Sitelock模板实现到我的一个Active-X控件中。我已经下载了sitelock 1.15SDK,但我在第一步就卡住了。
包含sitelock.h头文件会导致一系列与sal.h头文件有关的编译错误。在我看来,sitelock.h想要使用sal属性,但sal.h只定义了declspec sal。我使用的是VS2005,但是sitelock1.5文档说支持VS2005。是否需要做些什么来引用属性sal?我确实安装了Vista平台sdk。我将sitelock.h包含在active-x对象的头文件中。也许那不是做这件事的地方?
请参阅下面的编译错误:
....\public\sitelock.h(308):错误C2061:语法错误:标识符'_In_opt_count_‘
..\..\public\sitelock.h(605) : see reference to class template instantiation 'CSiteLock<T>' being compiled\public\sitelock.h(308):错误C2059:语法错误:')‘
...\public\sitelock.h(310):错误C2143:语法错误:')‘之前缺少’)‘
...\public\sitelock.h(401):错误C2061:语法错误:标识符'_In_z_‘
..\public\sitelock.h(401):错误C2059:语法错误:')‘
..\public\sitelock.h(402):错误C2143:语法错误:')‘之前缺少’)‘
C2061:语法错误:标识符'_Inout_z_count_‘....\public\sitelock.h(451):error C2059:语法错误:')’
...\public\sitelock.h(452):错误C2143:语法错误:'{‘之前缺少')’
..\public\sitelock.h(520):错误C2061:语法错误:标识符'_In_z_‘
..\public\sitelock.h(520):错误C2059:语法错误:')‘
...\public\sitelock.h(521):错误C2143:语法错误:')‘之前缺少’)‘
...\public\sitelock.h(555):错误C2061:语法错误:标识符'_In_z_‘
发布于 2009-06-17 17:45:02
新的SAL.H包含在Windows server 2008 SDK中,而不是Vista SDK中。
我仍然在使用Vista SDK,并通过将sitelock.h中的sal宏属性转换为declspec宏来克服我的编译器错误。
使用以下url中的注释进行翻译:http://blogs.msdn.com/sdl/archive/2009/06/11/a-declspec-sal-to-attribute-sal-rosetta-stone.aspx
https://stackoverflow.com/questions/1007348
复制相似问题