解决方案 »
- 关于DoModal()函数放在PreTranslateMessage(MSG* pMsg)里调用!!!!!!!!!
- 求代码实现点击工具条某个按钮
- 请问怎样获得当前ListCtrl控件选中了哪一行?
- 寻求http代理的代码
- vc连接sql server数据库需要把数据库文件拷贝到工程目录下吗?新手等待中…
- one SDK ERROR ,help me !! thank you very much.
- win7 detour print api 为什么没有效果?
- 加高分,老问题:有一字符串“abc我aa们dd1你是2jl43y我...”,如何将其拆解成定长为5的几个子字符串?
- 退出程序没有退出调试
- odbc 操作 DBF
- 使用insertAdjacentHTML抛出异常
- 大哥大姐们 帮帮忙吧 颜色识别方面的
在设置了权限属性之后,子进程继承了父进程的句柄表,他们其中所在的内存地址是相同的。也就是说是可以访问的,我觉得可能是这么传值不对书中给出的继承方式有两种:
1、通过启动参数
2、通过环境变量我觉得貌似是指的不对,该弄sprintf赋值?
再一个就是你在父进程的这种给子进程传递参数的方式,要得到pline指向的字符串,在子进程中要使用argv[0]而不是argv[1].你可以试试.
1. char pline[sizeof(HANDLE)];
sprintf(pline," %x",hFile);
这里多了个空格, 缓冲越界了,这样改
sprintf(pline,"%u",hFile);2. 就是上面说的问题,index应该是0, 传入参数是字符串,要转成句柄:
HANDLE hFile = (HANDLE)atoi(argv[0]);//HANDLE hFile = (HANDLE)argv[1];
sprintf(pline," %x",hFile);
多了个空格把空格
2. 然后
char* testr;
HANDLE hFile =(void*)strtol(argv[1],&tertr,16);
就可以用这个继承下来的文件句柄了。祝你成功!