阅读:3273回复:10
驱动里面使用fopen(),fclose()出现的问题!
我在一个驱动里面使用fopen(),fclose(),
已经include \"stdio.h\" 编译是没有错误的,但link就有错了如下: ice.obj() : error LNK2001: unresolved external symbol __imp__fclose ice.obj() : error LNK2001: unresolved external symbol __imp__fgets ice.obj() : error LNK2001: unresolved external symbol __imp__fopen objchk\\i386\\ice.sys() : error LNK1120: 3 unresolved externals 能不能解决? 还是驱动里面不能用fopen()...这些函数? ddk里面除了zwreadfile,zwwritefile,还有没有什么函数可以对文件进行读写 [编辑 - 12/14/02 by linpin] |
|
沙发#
发布于:2002-12-14 16:25
多看看书和帖子。搞清楚什么是内核,以及内核和应用程序的区别,你就不会疑问了。
|
|
|
板凳#
发布于:2002-12-14 16:35
多看看书和帖子。搞清楚什么是内核,以及内核和应用程序的区别,你就不会疑问了。 我是不懂,你懂你就说啊!不要说风凉话! :mad: :mad: :mad: |
|
地板#
发布于:2002-12-14 22:19
不懂还不谦虚! |
|
地下室#
发布于:2002-12-15 09:56
[quote]多看看书和帖子。搞清楚什么是内核,以及内核和应用程序的区别,你就不会疑问了。 我是不懂,你懂你就说啊!不要说风凉话! :mad: :mad: :mad: [/quote] 呵呵,这不是风凉话 你发到“ABC初学者”吧 |
|
5楼#
发布于:2002-12-16 09:23
这位老兄,C/C++的运行时库里大多数函数都不能在内核里使用。如果你想在驱动里打开一个文件的话,调参看DDK文档中IoCreateFile和ZwCreateFile相关内容。
|
|
|
6楼#
发布于:2002-12-16 09:35
[quote]多看看书和帖子。搞清楚什么是内核,以及内核和应用程序的区别,你就不会疑问了。 我是不懂,你懂你就说啊!不要说风凉话! :mad: :mad: :mad: [/quote] 这哪里是风凉话话了?其实我已经告诉你为什么不能使用fopen之类的函数的原因了,那就是内核和用户层处于不同的运行环境啊。再往深层说就不是一两句话可以说的清楚了。所以我叫你看书和帖子。 |
|
|
7楼#
发布于:2002-12-16 23:04
IoCreateFile??什么东东??文档里没有啊!!
明天去查一下内存 |
|
8楼#
发布于:2002-12-17 09:43
fopen(),fclose() 等函数实在 rand3 上运行的,
而 WDM 是在 rand0 上运行的,在驱动中我们操作文件 必须用 RAND0 上提供的函数 IoCreateFile 等, 这些函数在DDK中提供。 |
|
9楼#
发布于:2005-02-01 14:26
:P
|
|
|
10楼#
发布于:2005-02-01 15:08
我在一个驱动里面使用fopen(),fclose(), 它们属于C Runtime library 中的东西,由于很多厂家分别有自己的实现方法,而且很多并不是线程安全的,所以微软在内核中实现了另一套。声明都在ntddk.h中 |
|
|