lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1523回复:11

ntddk下BUILD只能编译.c文件,C++文件就出错请高手指教?

楼主#
更多 发布于:2002-06-16 18:10
如题

最新喜欢:

prfoneprfone
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-16 21:43

这种问题比较的多。。。。。。。。

是编译时,函数名处理的方式不同引起的。。。。

你在论坛,搜一下。。。。。

有extern \"C\"
{
..............
}

 :)
[color=red]大头鬼! :P[/color]
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-16 21:44

这种问题比较的多。。。。。。。。

是编译时,函数名处理的方式不同引起的。。。。

你在论坛,搜一下。。。。。(详细的)

有extern \"C\"
{
..............
}

 :)
[color=red]大头鬼! :P[/color]
eqinzm
驱动牛犊
驱动牛犊
  • 注册日期2001-10-18
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-06-17 09:32
extern \"C\"
{
#include \"ntddk.h\"
}
就行了
Hi
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-17 14:33
我在.h文件中加入了呀,怎么还不行?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-06-17 14:47
改扩展名。
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-17 16:16
我曾经编译成功过。你的错误提示是什么?
Tom_lyd
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-17 17:20
改扩展名不行我试了。编译错误提示如下:
E:\\ddksrc\\2000ddk>build
BUILD: Object root set to: ==> objchk
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Loading e:\\NTDDK\\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Examining e:\\ddksrc\\2000ddk directory for files to compile.
    e:\\ddksrc\\2000ddk - 1 source files (327 lines)
BUILD: Saving e:\\NTDDK\\build.dat...
BUILD: Compiling e:\\ddksrc\\2000ddk directory
Compiling - hellowdm.cpp for i386
BUILD: Linking e:\\ddksrc\\2000ddk directory
Linking Executable - e:\\ntddk\\lib\\i386\\hellowdm.sys for i386
link() : error LNK2001: unresolved external symbol _DriverEntry@8
e:\\ntddk\\lib\\i386\\hellowdm.sys() : error LNK1120: 1 unresolved externals
BUILD: Done
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2002-06-17 17:27
DriverEntry都不认?
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-17 17:49
改扩展名不行我试了。编译错误提示如下:
E:\\ddksrc\\2000ddk>build
BUILD: Object root set to: ==> objchk
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Loading e:\\NTDDK\\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Examining e:\\ddksrc\\2000ddk directory for files to compile.
    e:\\ddksrc\\2000ddk - 1 source files (327 lines)
BUILD: Saving e:\\NTDDK\\build.dat...
BUILD: Compiling e:\\ddksrc\\2000ddk directory
Compiling - hellowdm.cpp for i386
BUILD: Linking e:\\ddksrc\\2000ddk directory
Linking Executable - e:\\ntddk\\lib\\i386\\hellowdm.sys for i386
link() : error LNK2001: unresolved external symbol _DriverEntry@8
e:\\ntddk\\lib\\i386\\hellowdm.sys() : error LNK1120: 1 unresolved externals
BUILD: Done


绝对是extern \"C\" 的错误,原形声明和函数体定义处都需要加extern \"C\", 如下:
1.原形声明
#ifdef  __cplusplus
{
extern \"C\"
#include \"NTDDK.h\"
#endif
...

#ifdef  __cplusplus
}
#endif
2.函数体定义:
extern \"C\"
NTSATTUS DriverEntry( IN PDRIVER_OBJECT pdo, IN ...)
{
...
}
Tom_lyd
lrx666
驱动太牛
驱动太牛
  • 注册日期2001-08-17
  • 最后登录2010-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望47点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-06-18 08:20
谢谢斑竹,问题解决了!以后我会常来捧场的!
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
11楼#
发布于:2002-06-18 09:11
还是斑竹厉害。 :D
游客

返回顶部