首页
社区
课程
招聘
extern "C" 和内核函数申请
发表于: 2011-8-7 22:45 4888

extern "C" 和内核函数申请

2011-8-7 22:45
4888
EXTERN_C typedef NTSTATUS (__stdcall MYNTOPENPROCESS)
(
__out     PHANDLE ProcessHandle,
__in      ACCESS_MASK DesiredAccess,
__in      POBJECT_ATTRIBUTES ObjectAttributes,
__in_opt  PCLIENT_ID ClientId
){return STATUS_ACCESS_DENIED;}

这样定义一个自己的NYOPENPROCESS函数有错么?哪里错了?我的一直报错,用extern "C"在VS2010下编译总是出现语法错误:字符串
而改用了EXTERN_C又出现另外一个错误,指定了一个以上的存储类?是什么原因?
还有可以解释一下这里为什么要用extern "C" 和typedef么?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你这么写是要定义函数指针类型么?你是这个意思吧 。。。你用的C++么?和C函数调用需要用extern c 来声明编译符号的不同。

#ifdef __cplusplus
extern "C" {
#endif

NTSTATUS __stdcall MYNTOPENPROCESS
(
__out     PHANDLE ProcessHandle,
__in      ACCESS_MASK DesiredAccess,
__in      POBJECT_ATTRIBUTES ObjectAttributes,
__in_opt  PCLIENT_ID ClientId
)
{return STATUS_ACCESS_DENIED;}

#ifdef __cplusplus
}
#endif
2011-8-8 09:18
0
雪    币: 793
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼上的写法很正确,你懂的啦 张帆--windows 驱动开发技术详解
2011-8-8 10:34
0
雪    币: 27
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
能不能说下这个格式是什么意思啊
#ifdef __cplusplus
extern "C" {
#endif
...............
#ifdef __cplusplus
}
#endif
这个如果可以加分我给再加20kx
2011-8-8 20:34
0
游客
登录 | 注册 方可回帖
返回