sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2375回复:20

很简单的问题,关于ndis.h 50分

楼主#
更多 发布于:2002-05-21 16:54
#include <ndis.h>
#include <stdio.h>

void main()
{
    printf(\"hello,ndis.h\\n\");
}

第一位将上述程序遍译调试通过,并说清原因者得分

chat* hehe

最新喜欢:

flyfoxflyfox
111
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-05-21 16:58
呀~~你这个家伙~~上来就没好事~~
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-21 17:15
怎么又换头了?
这个怎么不是好事?送分哩hehe
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-21 17:16
装了imd,上网感觉是要慢些。
tnnd
111
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
地下室#
发布于:2002-05-21 17:24
我编译通过了,怎么说?
fenger_li
驱动老牛
驱动老牛
  • 注册日期2002-03-26
  • 最后登录2005-04-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-21 17:29
sirroom:
 近来看样心情不错么,工作是不是很有成效。呵呵!
  通过,通过。
有点意思。。。 呵呵!
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
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
附件名称/大小 下载次数 最后更新
2002-05-21_test.zip (1KB)  2
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2002-05-21 17:36
#include <ndis.h>
#include <stdio.h>

void main()
{
    printf(\"hello,ndis.h\\n\");
}

第一位将上述程序遍译调试通过,并说清原因者得分

chat* hehe
 


这么简单的问题而又有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。
不再回忆从前,我已经生活在幸福当中。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
8楼#
发布于:2002-05-21 17:38
编译的时候不就是头文件找不到吗?改下环境变量了,而且你也没有引用里面的任何东西,所以我想不该有什么问题,但是如果你调用了什么函数的话,我看就没有办法跟那个printf一起玩了。
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
9楼#
发布于:2002-05-21 17:41
哈,版主也出手了,我闪。
下次有什么问题,我要攒个3,5百分再来问。
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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
??未能解惑,暂不给分
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-05-21 18:17
再加30分,hehe
最前面再加一个
#include <windows.h>
111
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-05-21 18:29
引用:
////////////////
偶 这里调不通

版主的方法似乎很有效
///////////////
sirroom兄:

这问题可满有意思的。

可到底是调通与否???



 :) :) :)
[color=red]大头鬼! :P[/color]
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-05-21 19:35
这小子~~在搞什么把戏?8层是预处理出问题了,而又不好意思问,所以来拐弯了!直接说是什么问题吧~~~
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
15楼#
发布于:2002-05-21 19:48

#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
 


看起来我的环境变量和你的稍有不同,我给出的代码是在
我的机器上编译运行通过的。

这种编译不过的主要原因就是因为宏定义不一致,
我懒得打开VC帮你找了。

你可以去看看PULONG_PTR在DDK里面的定义。
首先在ntddk.h里面向上search PULONG_PTR,
总能找到这个typedef的,然后上下搜索一下对应的宏。

通常情况下,我总是定义_X86_和
define BINARY_COMPATIBLE 0
不再回忆从前,我已经生活在幸福当中。
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-05-21 19:50
  不是啊,某日发现了这个问题,然后就拿出来问啊,ndis.h好大一堆,然后又包含一堆东东,看着看着不知道怎么回事了。
   当然,最根本的想法是套出版主关于包含ndis.h的一些心得体会,以及一些注意事项,让偶等也好学习学习。
   其实想一想也是哦,那么大一堆东东,又有许多编译选项,也没一个专门的说明,只说某function被declared在xx.h,要included
 xx.h,然后这些头文件之间的关系就不管。
    偶的问题,就是这个啊,要说不好意思,有一点,这么简单的问题还要问,hoho
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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啊?
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-05-21 20:27
我知道是宏定义的问题,但不知道怎么解决,还请版主出招
111
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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

111
上一页
游客

返回顶部