阅读:1424回复:2
一个小问题,对我很急的!!!!
为什么我写了一个dynamic 的vxd,用win32汇编写的程序
可以用CreateFile(.....,FILE_FLAG_DELETE_ON_CLOSE,..), 把它加载,可是用sdk和mfc写的程序用同样的方法却不能够 把它加载(我用了DeviceIoControl函数,可是没有反应,用 win32汇编写的windows程序却可以)!!! 实现方法是一样的,为什么不行啊????? 程序在附件中,请仔细看一下!!!! 发e-mail告诉我,谢谢了!!!! yuqiang0304@163.net yuqiang3@263.net |
|
沙发#
发布于:2001-09-30 13:04
将CreateFile("\\shellmsg.vxd",0,0,NULL,0,
FILE_FLAG_DELETE_ON_CLOSE,NULL); 改为 CreateFile("\\\\.\\shellmsg.vxd",0,0,NULL,0, FILE_FLAG_DELETE_ON_CLOSE,NULL); 应该就没有问题了 |
|
板凳#
发布于:2001-09-30 13:10
我的一段源码:
…… hDevice=CreateFile("\\\\.\\tpl.vxd",0,0,0,CREATE_NEW,FILE_FLAG_DELETE_ON_CLOSE,0); //FILE_ATTRIBUTE_READONLY if(hDevice==INVALID_HANDLE_VALUE) { ::AfxMessageBox("Open VXD error"); exit(1); } …… // Map the allocated buffer in the vxd mbargs.m_address = AppBuffer; mbargs.m_size = APP_BUFFER_SIZE; DevIoStatus =DeviceIoControl( hDevice, SHAREMEM_MAP_BUFFER, &mbargs, sizeof(mbargs), &MappedAddress, sizeof(MappedAddress), &nReturned, NULL ); if ( ! DevIoStatus ) { fprintf(stderr, "Failed to map buffer\n"); exit(1); } |
|
|