我正在尝试将MS Sitelock模板实现到我的一个Active-X控件中。我已经下载了sitelock 1.15 sdk而且我已经陷入了第一步。
包含sitelock.h头文件会导致一堆与sal.h头文件有关的编译错误。在我看来,像sitelock.h想要使用属性sal但是sal.h只定义了declspec sal。我正在使用VS 2005,但是sitelock 1.5文档说支持vs 2005。我需要做些什么才能引用属性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):错误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 _'
答案 0 :(得分:0)
新的SAL.H包含在Windows Server 2008 SDK中,而不是Vista中。
我仍在使用Vista SDK,并且通过将属性sal宏转换为sitelock.h中的declspec sal宏来解决我的编译器错误。
使用以下网址中的注释进行翻译: http://blogs.msdn.com/sdl/archive/2009/06/11/a-declspec-sal-to-attribute-sal-rosetta-stone.aspx