求助 VC++中使用OCX
VC++中执行外部程序,将一个.exe外部程序的扩展名改为.ocx后,在VC++中执行这个.ocx程序
[解决办法]
创建进程就完了呗
[解决办法]
SECURITY_ATTRIBUTES sa;
HANDLE hRead, hWrite;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
if (!CreatePipe(&hRead,&hWrite,&sa,0))
{
return FALSE;
}
STARTUPINFOA si;
PROCESS_INFORMATION pi;
si.cb = sizeof(STARTUPINFOA);
GetStartupInfoA(&si);
si.hStdError= hWrite;
si.hStdOutput= hWrite;
si.wShowWindow= SW_HIDE;
si.dwFlags= STARTF_USESHOWWINDOW
[解决办法]
STARTF_USESTDHANDLES;
//关键步骤,CreateProcess函数参数意义请查阅MSDN
char *CommandLine = "start C:\\My.ocx";//使用DOS命令行启动一个程序
if (!CreateProcessA(NULL, CommandLine, NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi))
{
return FALSE;
}
CloseHandle(hWrite);
CloseHandle(hRead);
::WaitForSingleObject(pi.hProcess, INFINITE);