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

zhurui1979 2006-02-19 12:52:15
小弟刚刚学习驱动开发,采用VC++6.0,winDDK XP,可是总是出现如标题的错误,编译的是一个.cpp 的文件。是不是我的DDK的设置有问题?可是我能编译DDK自带的例子passthru。我怀疑是不是编译.cpp文件时需要对DDK进行特别的设置。
请各位高手赐教。
...全文
159 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的名字是改过的,自然就找不到了

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧