trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1143回复:5

一个很菜的问题

楼主#
更多 发布于:2002-03-05 17:32
请问在VXD文件中的输出语句
dout<<\"hello \"<<endl;
到底输出到哪里了?怎么看?
我不仅要金子,我还要点石成金的手指!
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-05 17:38
估计是你的程序有问题,要么就是drivermonitor设置的channel有问题,
你还是把代码贴出来,大家帮你看一下,确信程序没问题以后再检查你的设置
我就是我,没什么可说的。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-05 21:22
那我就不好意思了 :D
//text.h中
#define DIOC_MY_IO CTL_CODE (FILE_DEVICE_UNKNOWN,1,METHOD_NEITHER,FILE_ANY_ACCESS)

class TextDevice : public VDevice
{
public:
virtual DWORD TEXTDeviceIoControl(PIOCTLPARAMS p);
};
//text.cpp中
DWORD TextDevice::TEXTDeviceIoControl(PIOCTLPARAMS p)
{
  switch (p->dioc_IOCtlCode)
  {
  case DIOC_OPEN:break;
  case DIOC_CLOSEHANDLE: break;
  case DIOC_MY_IO:dout<<\"hello world\"<<endl;


  }
  //dout<<\"hello world\"<<endl;
  return 0;
}

在VC中main函数为:
#include <winioctl.h>
#include\"stdio.h\"

#define DIOC_MY_IO CTL_CODE(FILE_DEVICE_UNKNOWN,1,METHOD_NEITHER,FILE_ANY_ACCESS)

void main()
{
 HANDLE hDevice;
 hDevice=CreateFile(\"D:\\\\vtoolsd\\\\bin\\\\text.vxd\",0,0,0,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE,0);
 if( hDevice==INVALID_HANDLE_VALUE)
 {
printf(\"open VXD errors\\n\");
 exit (1);
 }
 DeviceIoControl(hDevice,DIOC_MY_IO,NULL,0,NULL,0,NULL,NULL);
 CloseHandle(hDevice);

}
 :D :D :D :D :D :D
我不仅要金子,我还要点石成金的手指!
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-06 11:26
你把
virtual DWORD TEXTDeviceIoControl(PIOCTLPARAMS p);
改成
virtual DWORD OnW32DeviceIoControl(PIOCTLPARAMS p);
试一下

我就是我,没什么可说的。
trent
驱动老牛
驱动老牛
  • 注册日期2002-03-01
  • 最后登录2014-09-18
  • 粉丝0
  • 关注0
  • 积分61分
  • 威望185点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-06 12:53
还是不行,用debugview没显示,开了debug monitor也没用。 :(
我不仅要金子,我还要点石成金的手指!
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-06 14:01
你还是用softice看一下程序是否执行到iocontorl了把
而且直接用softice看调试输出很方便

“softice的调试,如果是只想设个断点,或者看个变量这种初级动作,把symbol loader激活,读入你的程序,load了以后,ctl+d激活softice,用file命令调入你的源程序,在你希望的那一行设个断点就行了。要是条件触发或者是其他的用法,说起来挺麻烦的,最权威的是softice的联机文档,或者在QQ上聊。
我就是我,没什么可说的。
游客

返回顶部