阅读:1781回复:8
about open vxd
我是一个vxd出学者,在win98下用98ddk写了一个CS1.VXD,产生了一个CS1.VXD,然后用delphi写了一个加载程序,如下:
hDevice:=CreateFile(pchar('\\.\CS1.VXD'),0,0,nil,0,FILE_FLAG_DELETE_ON_CLOSE,0); 总是错误,用GetLastError()取得为2,msdn解释为2 The system cannot find the file specified. 但我的vxd和exe确是在同一个目录下,请问有没有可能是vxd文件编写的问题呢?已经折腾了2个星期了,真搞不懂烦人的vxd,还望指点迷团。 还有一个问题,如何在vxd中显示一个对话框呢或让他有点反应呢,我现在写的只是一个架子? |
|
|
沙发#
发布于:2001-09-24 09:08
把 .vxd 去掉,
hDevice:=CreateFile(pchar('\\.\CS1'),0,0,nil,0,FILE_FLAG_DELETE_ON_CLOSE,0); |
|
|
板凳#
发布于:2001-09-24 23:35
返回错误代码2,是文件打开错误,并不一定是找不到文件。
在load你的vxd过程中,初始化出错就会出现这个问题,所以你应该仔细检查你的初始化函数,看看在什么地方失败了。 delphi我没有用过,难道它不支持debug跟踪进你的代码吗? |
|
地板#
发布于:2001-09-27 10:26
估计就是asm386说的那种情况,去掉.vxd就应该可以了 |
|
|
地下室#
发布于:2001-09-27 17:44
谢谢大家的回复,但我的还是不成,
如果您愿意,请到http://vcshcn.yeah.net/ 可以查看我的vxd source. |
|
|
5楼#
发布于:2001-09-28 09:12
去掉那个 可恶的 pchar!看来您对delphi还是不透 啊!
|
|
|
6楼#
发布于:2001-09-29 19:27
谢谢您,其实我已经尝试了许多方法,包括去掉pchar(),结果还是返回错误2,而且根据api帮助文件,CreateFile()参数第一个为LPCTSTR lpFileName,也应该是对应pchar类型.
不过非常感谢您,盼望您出提更多的方案,好让我再试试。 |
|
|
7楼#
发布于:2001-09-30 15:55
但不管如何,pchar是可不要的,因为他已经是pchar 了.您也可 如此:
在ring3 下试一下调用别的vxd,即采用替换法. |
|
|
8楼#
发布于:2001-10-02 01:00
我以前曾经打开过ipman的vpacket.vxd成功了。
到我写的vxd却不成,所以我怀疑是vxd编写问题。 vxd 源码: <a href="http://vcshcn.yeah.net/faq/">http://vcshcn.yeah.net/</a> 非常感谢。 [vcshcn 编辑于 2001-10-02 01:02] [vcshcn 编辑于 2001-10-02 01:03] [vcshcn 编辑于 2001-10-21 02:14] |
|
|