在VC6.0中编辑vxd问题

wlw 2000-07-20 08:46:00
我该如何指定VC6.0编译成VXD格式呢?
...全文
224 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeatul 2000-07-25
  • 打赏
  • 举报
回复
HANDLE hDevice = CreateFile("\\\\.\\pathname",0,0,NULL,0,FILE_FLAG_ DELETE_ON_CLOSE,NULL); ---------------------
是不是在\\\\.\\后面加上全路径,如果不在当前目录或系统目录下,全路径怎么写,是用\\还是\, 如c:\\aa\\aa.vxd

zeatul 2000-07-23
  • 打赏
  • 举报
回复

1.必须把这个VXD做成Win95 only file,因为WIN31的VXD不能动态
加载。你只要别定义WIN31COMPAT就成啦。
2.在你的def文件中加入VXD MYVXD DYNAMIC。对于VTOOLSD,好象需要
DYNAMIC=1。

请问:
1,2 还是必要步骤?
是不是在自己调用vxd的原程序的def文件里加一句: VXD MYVXD DYNAMIC=1


3.在WIN32APP中:
HANDLE hDevice = CreateFile("\\\\.\\pathname",0,0,NULL,0,FILE_FLAG_
DELETE_ON_CLOSE,NULL);
4.你必须在VXD中处理W32_DEVICEIOCONTROL控制消息。因为你的WIN32APP在CreateFile
时调用了它,这个嘛,经常有人忽略,以为把一个WIN31 VXD只做前两步改动
就可以动态加载了。在VXD中做法如下:

wlw 2000-07-22
  • 打赏
  • 举报
回复
hangcom:
我按你的方法做了。在'Build command line'中VC自动加了下面一行:NMAKE /F HELLO.MAK,在'output files'中是HELLO.EXE,我是否要将其该为Hello.vxd,两种方式编译时均提示我"NMAKE : fatal error U1081: 'd:\program' : program not found
Stop.
Error executing NMAKE."。我的VC安装在"d:\program files\microsoft visual studio\vc60\"下,是我的GENERAL项设置有问题还是什么其他问题呢?我查过MSDN,他也说在GENERAL中设置要生成VXD,可GENERAL就那么几项该如何设置呢?能推荐好的编写VXD的站点吗?非常感谢!
hangcom 2000-07-22
  • 打赏
  • 举报
回复
具体情况不是很清楚
wlw 2000-07-22
  • 打赏
  • 举报
回复
错误:
NMAKE : fatal error U1081: 'd:\program' : program not found
Stop.
Error executing NMAKE."
是怎么回事?
hangcom 2000-07-22
  • 打赏
  • 举报
回复
你去程序员客栈看一下,比较好的一个站点
在Win9X中调用VXD可用CreateFile函数,具体方法你可以参阅清华的一本关于VXD开发的书,或者在VToolsD的例子中,你读一下源程序即可看到用法。
我已经说过了,在第7步里改变生成的VxD文件名。
zeatul 2000-07-22
  • 打赏
  • 举报
回复
hangcom:
我按你的方法做了。在'Build command line'中VC自动加了下面一行:NMAKE /F HELLO.MAK,在'output files'中是HELLO.EXE,我是否要将其该为Hello.vxd,
应该改,我就成功了,
但不会调用vxd,用win98的动态调用怎么做啊,要包含那些头文件。VToolSD 的头文件和
vc的很多头文件有冲突。
wlw 2000-07-21
  • 打赏
  • 举报
回复
我是新手,能详细点吗?
RuFeng 2000-07-21
  • 打赏
  • 举报
回复
VXD是用mak文件来编译的,一般情况下只要你的mak文件里面已经设定好是VXD就成了,不用VC里面指定的,就算不进入VC里面,也可以用nmake来编译,看一看DDK98的例子吧!
hangcom 2000-07-21
  • 打赏
  • 举报
回复
VToolsD的工程文件缺省时是用命令行方式编译的,但也可以通过如下步骤实现在Visual C++ 6.0(或者5.0)的集成环境中编译:
1) 使用QuickVxD创建VxD工程文件。该工程文件包含.cpp文件、.h文件和.mak文件。
2) 启动Visual C++ 6.0。
3) 从菜单中选择“Open Workspace”。
4) 选择VxD的 .mak文件,并打开,此时会出现一个消息对话框说明 .mak文件是一个外部文件,按“Yes”按钮。
5) 重新命名 .mak文件。
6) 在“Project”中选择“Add to Project”,选择所有源文件。
7) 在“Project”中选择“Setting”。从“General”表单中设置要生成的VxD文件名。
8) 编译生成VxD。
1,cccode.zip一个监控别人计算机的程序(65KB)2,cihcn.zipCIH病毒1.4版本之文注释(25KB)3,regmonsrc.zip监控win9x下文件的读写(251KB)4,quickprt.zip增强的quickrpt(70KB)5,xxm.zip餐桌管理程序(83KB)6,dfbak.zip电费管理程序(981KB)7,pterm01b.zip终端仿真程序(63KB)8,drivevie.zip查看系统安装的驱动器(34KB)9,findprocess.zip列举所有的进程基类(107KB)10,mfctlist.zip列举操作系统所有的进程,你能够在程序消灭进程。程序由Visual C++ 5.0开发,工作于Windows 95(98),Windows NT 4.0(28KB)11,CServer.ZIP多线程实现客户-服务器结构的一个例子(37KB)12,splasher.zip用线程实现软件的片头(Splash Screen)(62KB)13,getinfo.zip获取系统硬件信息源代码(39KB)14,getfontinfo.zip获取系统所有字体信息源代码(51KB)15,detectos.zip获取操作系统版本信息源代码(42KB)16,gethostip.zip获得主机名和IP地址(34KB)17,shellext.zip用程序启动IE Outlook Explore(30KB)18,autolog.zipWinNT 自动登录源程序(13KB)19,cpuinfo.zip一个取得 CPU 信息的程序源码(164KB)20,apihook.zipAPI钩子APIHOOK 2.0 源代码(91KB)21,registry.zip查询修改注册表源代码(40KB)22,q1.zip程序创建两个线程,第一个线程没有消息队列,主线程尝试给第一个线程发送一个消息,我们可以看到PostThreadMessage()返回FALSE,程序创建的第二个线程有一个消息队列,主线程的PostThreadMessage()返回TRUE,程序由Visual C++ 6.0开发,没有用到MFC(79KB)23,pstat.zip在程序需要进行较长时间工作的时候,总希望能有一个进度条告诉我们当前的进度,这个例子利用线程显示进度条值得一看 COOL(20KB)24,m4kit15.zip简单的环境继承(persistence)库(548KB)25,vxdlib11.zip自动生成虚拟设备驱动(VXD)的C++代码的一个库 COOL!(431KB)26,hklm.zipCHKLM类允许你在注册表的HKEY_LOCAL_MACHINE注册键做写操作(10KB)27,pipe_pro.zip管道类(30KB)28,Storage.zip存储类(9KB)29,dt220.zip日期和时间的扩展类2.2版,需要安装(1149KB)30,dt221.zip日期和时间的扩展类2.2版的更新程序(22KB)31,DllIco.zip得到DLL/EXE文件的资源定义 Cool(85KB)32,stealth.zip这个由Visual C++ 5.0开发的SDI程序演示如何让程序运行时在Window 95或Windows NT 4.0的任务条上不显示出来,程序重载了CMainFrame的PreCreateWindow()函数 COOL(29KB)33,FontsTest.zip列举系统的所有字体(41KB)34,memmap.zip操作内存映像文件,提供的CMemMapFile功能强大(16KB)35,cfile64.zip支持Win32 64位文件系统的一个类

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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