在VC6.0中编辑vxd问题

wlw 2000-07-20 08:46:00
我该如何指定VC6.0编译成VXD格式呢?
...全文
233 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。

16,473

社区成员

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

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

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