首页 > C语言 > error C2059: syntax error : ‘string’

error C2059: syntax error : ‘string’

今天在编译驱动代码的时候出现了一个错误,error C2059: syntax error : ‘string’,有点让人误解。网上搜了一下,发现是使用了extern “C”造成的。自己挤出不好吧。只有当在C++里面的时候,引用外部函数才需要extern “C”来声明,否则直接声明函数即可。另外,我们可以方便的通过判断是否定义__cplusplus来使得代码的可移植性更好,可以按照下面的方法来声明函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifdef __cplusplus
extern "C"
{
#endif
//NativeAPI声明
NTSTATUS ObReferenceObjectByName(
			IN PUNICODE_STRING ObjectPath,
			IN ULONG Attributes,
			IN PACCESS_STATE PassedAccessState OPTIONAL,
			IN ACCESS_MASK DesiredAccess OPTIONAL,
			IN POBJECT_TYPE ObjectType,
			IN KPROCESSOR_MODE AccessMode,
			IN OUT PVOID ParseContext OPTIONAL,
			OUT PVOID *ObjectPtr
			);
POBJECT_TYPE *IoDeviceObjectType;
#ifdef __cplusplus
}
#endif

声明的格式如下:

1
2
3
4
5
6
7
8
9
10
#ifdef __cplusplus
extern "C"
{
#endif
////////////////////////
//函数声明
////////////////////////
#ifdef __cplusplus
}
#endif

觉得文章还不错?点击此处对作者进行打赏!


本文地址: 程序人生 >> error C2059: syntax error : ‘string’
作者:代码疯子(Wins0n) 本站内容如无声明均属原创,转载请保留作者信息与原文链接,谢谢!


更多



分类: C语言 标签: , , ,
  1. 2010年12月28日22:56 | #1

    嗯,关于你这里的PRE标签问题,我看了你的CSS,发现你的这个CSS文件对PRE做了格式化,你只要在此CSS文件里去掉这个PRE标记就可以了
    /themes/inove/style.css

    [回复]

  2. 2010年12月28日22:57 | #2

    嗯,关于你这里的PRE标签问题,我看了你的CSS,发现你的这个CSS文件对PRE做了格式化,你只要在此CSS文件里去掉这个PRE标记就可以了

    /themes/inove/style.css

    第78行

    [回复]

  3. 2010年12月28日23:00 | #3

    @Winson
    谢谢了 我用wp-syntax。我觉得这个看起来舒服一点 呵呵

    [回复]

  4. 2010年12月28日23:01 | #4

    @Winson
    可以搭配wp-syntax button用

    [回复]

  5. 2010年12月28日23:09 | #5

    呵,没事,不过你可以留意一下,你现在用这个其实也添加了pre标记的,只是wp-syntax插件对此标记有专门的CSS格式,所以你主题的CSS影响不到它,呵呵

    [回复]

  6. 2010年12月28日23:10 | #6

    @Winson
    恩 懂了 呵呵

    [回复]