请问一个以IE为当前进程来createProcess的问题

XiaoG602 2010-07-25 02:52:59
我在IE上面写了个BHO插件
我需要用这个BHO打开一个本地程序
ps:不是搞流氓软件,也不是病毒。是在做一个SSO

其中有一段代码是这样的,用的是匿名管道,重定向了标准输出与标准错误输出:
	SECURITY_ATTRIBUTES sa;
HANDLE hRead,hWrite;
sa.nLength=sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor=NULL;
sa.bInheritHandle=TRUE;
if(!CreatePipe(&hRead,&hWrite,&sa,0))
{
MessageBox(NULL,L"Error! Pipe",NULL,0);
return -1;
}

STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb=sizeof(STARTUPINFO);
GetStartupInfo(&si);
si.hStdError=hWrite;
si.hStdOutput=hWrite;
si.wShowWindow=SW_SHOWNORMAL;
si.dwFlags=STARTF_USESHOWWINDOW|STARTF_USESTDHANDLES;
if(!CreateProcess(NULL,L"D:\\My Documents\\Visual Studio 2008\\Projects\\test2\\Debug\\test2.exe",NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
{
MessageBox(NULL,L"Error!",NULL,0);
return -1;
}
CloseHandle(hWrite);

char buffer[4096]={0};
DWORD bytesRead;
while(true)
{
if(ReadFile(hRead,buffer,100,&bytesRead,NULL)==NULL)
break;
//printf("%s ",buffer);
//UpdateData(false);
Sleep(200);
}

在我单独写的测试代码中,是能正常打开子进程的
但是把这一段代码移植到BHO上就出错了
他说:内存读写错误

我想请问一下为什么?这个问题怎么解决?谢谢
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
XiaoG602 2010-07-27
  • 打赏
  • 举报
回复
先结贴给分吧
XiaoG602 2010-07-27
  • 打赏
  • 举报
回复
是unicode的吧 - -!
其实我也不是很确定

我主要负责 那个本地程序的
我同学写的BHO,其实也只是从codeproject上照搬的

请问这之间的联系与区别是什么?
wjpaaa 2010-07-27
  • 打赏
  • 举报
回复
样成良好的编程习惯还是好啊!
MoXiaoRab 2010-07-27
  • 打赏
  • 举报
回复
你工程是Unicode还是MBCS的?
XiaoG602 2010-07-27
  • 打赏
  • 举报
回复
谢谢4L,改成这样就可以用了。
不过我还知道一下为什么会这样?
谢谢
Eleven 2010-07-26
  • 打赏
  • 举报
回复
if(!CreateProcess(NULL,L"D:\\My Documents\\Visual Studio 2008\\Projects\\test2\\Debug\\test2.exe",NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
{
MessageBox(NULL,L"Error!",NULL,0);
return -1;
}
-->
改成这样试试:
TCHAR szApp[MAX_PATH] = _T("D:\\My Documents\\Visual Studio 2008\\Projects\\test2\\Debug\\test2.exe");
if(!CreateProcess(NULL, szApp, ....))
{
...
}
zhanshen2891 2010-07-26
  • 打赏
  • 举报
回复
调试一下看看你要启动的进程起来了么?

偶像罗斯福 2010-07-26
  • 打赏
  • 举报
回复
调试一下,看看调用堆栈在哪行出的错,看了代码没看出来那行错了;
XiaoG602 2010-07-26
  • 打赏
  • 举报
回复
顶一下,别沉啊

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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