阅读:2373回复:20
很简单的问题,关于ndis.h 50分
#include <ndis.h>
#include <stdio.h> void main() { printf(\"hello,ndis.h\\n\"); } 第一位将上述程序遍译调试通过,并说清原因者得分 chat* hehe |
|
最新喜欢:flyfox
|
沙发#
发布于:2002-05-21 16:58
呀~~你这个家伙~~上来就没好事~~
|
|
|
板凳#
发布于:2002-05-21 17:15
怎么又换头了?
这个怎么不是好事?送分哩hehe |
|
|
地板#
发布于:2002-05-21 17:16
装了imd,上网感觉是要慢些。
tnnd |
|
|
地下室#
发布于:2002-05-21 17:24
我编译通过了,怎么说?
|
|
5楼#
发布于:2002-05-21 17:29
sirroom:
近来看样心情不错么,工作是不是很有成效。呵呵! 通过,通过。 |
|
|
6楼#
发布于:2002-05-21 17:30
我给它建了一个makefile和一个sources,然后修改了一下ddk的bin目录下的setenv.bat,将原来为set Include=%BASEDIR%\\inc;%include%改为了set Include=%BASEDIR%\\inc;%BASEDIR%\\inc\\ddk;%include%,然后用ddk的Checked Build Environment,在目录下输入build,编译通过,生成了一个test.exe
|
|
|
7楼#
发布于:2002-05-21 17:36
#include <ndis.h> 这么简单的问题而又有50分,我喜欢。 前面加上#define _X86_ 即可,当然也可以加在VC的PROJECT 的SETTINGS里面。 详细过程: new project->create a new console app ->empty app->add new c++ source file 我的vc的option里面的路径设置和开发driver 的一样,里面多了win32sdk,然后是vc的目录, 然后是ntddk的几个目录。 然后写如下代码: #define _X86_ #include \"ndis.h\" #include \"stdio.h\" int main() { printf(\"hello ndis\"); return 0; } that\'s all。 |
|
|
8楼#
发布于:2002-05-21 17:38
编译的时候不就是头文件找不到吗?改下环境变量了,而且你也没有引用里面的任何东西,所以我想不该有什么问题,但是如果你调用了什么函数的话,我看就没有办法跟那个printf一起玩了。
|
|
9楼#
发布于:2002-05-21 17:41
哈,版主也出手了,我闪。
下次有什么问题,我要攒个3,5百分再来问。 |
|
10楼#
发布于:2002-05-21 18:08
#define _X86_ (偶就是要问这个,到底是什么,偶 这里调不通) #include \"ndis.h\" #include \"stdio.h\" int main() { printf(\"hello ndis\"); return 0; } 版主的方法似乎很有效,也是我想问的关于ndis.h中头文件的一些东东,不过给出的方法 偶这里会 d:\\ntddk\\inc\\ddk\\ntddk.h(370) : error C2061: syntax error : identifier \'PULONG_PTR\' :( 再有,偶说的是遍译调试通过, 并说清原因者(大家都不喜欢讲原因,偶要听的就是原因哦).hehe |
|
|
11楼#
发布于:2002-05-21 18:13
这个 _X86_是在windows.h中define的哦,会有关系么?
#if !defined(_68K_) && !defined(_MPPC_) && !defined(_PPC_) && !defined(_ALPHA_) && !defined(_MIPS_) && !defined(_X86_) && !defined(_IA64_) && defined(_M_IX86) #define _X86_ #endif ??未能解惑,暂不给分 |
|
|
12楼#
发布于:2002-05-21 18:17
再加30分,hehe
最前面再加一个 #include <windows.h> |
|
|
13楼#
发布于:2002-05-21 18:29
引用:
//////////////// 偶 这里调不通 版主的方法似乎很有效 /////////////// sirroom兄: 这问题可满有意思的。 可到底是调通与否??? :) :) :) |
|
|
14楼#
发布于:2002-05-21 19:35
这小子~~在搞什么把戏?8层是预处理出问题了,而又不好意思问,所以来拐弯了!直接说是什么问题吧~~~
|
|
|
15楼#
发布于:2002-05-21 19:48
看起来我的环境变量和你的稍有不同,我给出的代码是在 我的机器上编译运行通过的。 这种编译不过的主要原因就是因为宏定义不一致, 我懒得打开VC帮你找了。 你可以去看看PULONG_PTR在DDK里面的定义。 首先在ntddk.h里面向上search PULONG_PTR, 总能找到这个typedef的,然后上下搜索一下对应的宏。 通常情况下,我总是定义_X86_和 define BINARY_COMPATIBLE 0 |
|
|
16楼#
发布于:2002-05-21 19:50
不是啊,某日发现了这个问题,然后就拿出来问啊,ndis.h好大一堆,然后又包含一堆东东,看着看着不知道怎么回事了。
当然,最根本的想法是套出版主关于包含ndis.h的一些心得体会,以及一些注意事项,让偶等也好学习学习。 其实想一想也是哦,那么大一堆东东,又有许多编译选项,也没一个专门的说明,只说某function被declared在xx.h,要included xx.h,然后这些头文件之间的关系就不管。 偶的问题,就是这个啊,要说不好意思,有一点,这么简单的问题还要问,hoho |
|
|
17楼#
发布于:2002-05-21 20:22
/*++
Copyright (c) 1997-1999 Microsoft Corporation Module Name: basetsd.h Abstract: Type definitions for the basic sized types. Author: Jeff Havens (jhavens) 23-Oct-1997 Revision History: --*/ #ifndef _BASETSD_H_ #define _BASETSD_H_ #if _MSC_VER > 1000 #pragma once #endif #ifdef __cplusplus extern \"C\" { #endif // // The following types are guaranteed to be signed and 32 bits wide. // typedef int LONG32, *PLONG32; typedef int INT32, *PINT32; // // The following types are guaranteed to be unsigned and 32 bits wide. // typedef unsigned int ULONG32, *PULONG32; typedef unsigned int DWORD32, *PDWORD32; typedef unsigned int UINT32, *PUINT32; #if !defined(_W64) #if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 #define _W64 __w64 #else #define _W64 #endif #endif // // The INT_PTR is guaranteed to be the same size as a pointer. Its // size with change with pointer size (32/64). It should be used // anywhere that a pointer is cast to an integer type. UINT_PTR is // the unsigned variation. // // __int3264 is intrinsic to 64b MIDL but not to old MIDL or to C compiler. // #if ( 501 < __midl ) typedef [public] __int3264 INT_PTR, *PINT_PTR; typedef [public] unsigned __int3264 UINT_PTR, *PUINT_PTR; typedef [public] __int3264 LONG_PTR, *PLONG_PTR; typedef [public] unsigned __int3264 ULONG_PTR, *PULONG_PTR; #else // midl64 // old midl and C++ compiler #if defined(_WIN64) typedef __int64 INT_PTR, *PINT_PTR; typedef unsigned __int64 UINT_PTR, *PUINT_PTR; typedef __int64 LONG_PTR, *PLONG_PTR; typedef unsigned __int64 ULONG_PTR, *PULONG_PTR; #define __int3264 __int64 #else typedef _W64 int INT_PTR, *PINT_PTR; typedef _W64 unsigned int UINT_PTR, *PUINT_PTR; typedef _W64 long LONG_PTR, *PLONG_PTR; typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR; #define __int3264 __int32 #endif #endif // midl64 要说这个东东,偶本以为就是在这里,但是看了没有觉得有什么关系啊? ndis.h中包含了basetsd.h啊? |
|
|
18楼#
发布于:2002-05-21 20:27
我知道是宏定义的问题,但不知道怎么解决,还请版主出招
|
|
|
19楼#
发布于:2002-05-21 20:29
vc里的选项如下
include 的path D:\\NTDDK\\INC D:\\NTDDK\\INC\\DDK E:\\Program Files\\Microsoft Visual Studio\\VC98\\INCLUDE E:\\Program Files\\Microsoft Visual Studio\\VC98\\MFC\\INCLUDE E:\\Program Files\\Microsoft Visual Studio\\VC98\\ATL\\INCLUDE predefine WIN32,_DEBUG,_CONSOLE,_MBCS |
|
|
上一页
下一页