为什麽总是出现error LNK2001:unresolved external symbol __DriverEntry

zhurui1979 2006-02-19 12:52:15
小弟刚刚学习驱动开发,采用VC++6.0,winDDK XP,可是总是出现如标题的错误,编译的是一个.cpp 的文件。是不是我的DDK的设置有问题?可是我能编译DDK自带的例子passthru。我怀疑是不是编译.cpp文件时需要对DDK进行特别的设置。
请各位高手赐教。
...全文
110 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
deutsch 2006-02-21
或在原程序DriverEntry前加入extern "c"
回复
deutsch 2006-02-21
重点不是文件后缀,在驱动开发时程序的入口就是DriverEntry。在程序的预处理中,c的处理是在改为__DriverEntry,而在c++的设计中,为了重载的设计,在函数的处理中加入了其它的前缀,类型等信息来区别。在连接成驱动程序的时候,需要入口DriverEntry,而通过c++预处理过的就没有导出__DriverEntry的symbols来生成,所以最主要的是在vc中的预处理的设定。
回复
lvzhen1109 2006-02-21
应该不是这样吧,我现在用的都是cpp文件啊,没有这个问题,可能是因为vc的设置问题

打开vc,tools -> options -> Directories,看看ddk的头文件和lib文件,以及src文件有没有加载进去。

回复
deutsch 2006-02-21
你把文件名改改看,后缀改为.c而不是.cpp,在ddk的环境下采用的是c而不是c++,而cpp默认处理采用的是c++,所以在链接时DriverEntry的名字是改过的,自然就找不到了
回复
相关推荐
发帖
驱动开发/核心开发
创建于2007-09-28

2.1w+

社区成员

硬件/嵌入开发 驱动开发/核心开发
申请成为版主
帖子事件
创建了帖子
2006-02-19 12:52
社区公告
暂无公告