vc++中怎么创建一个新进程

voidCMonitorServerDlg::OnBTListening(){//m_pStatueCollector=newCStatueCollector;//m_p... void CMonitorServerDlg::OnBTListening()
{
// m_pStatueCollector = new CStatueCollector;
// m_pServerSocket = new CServerSocket(m_pStatueCollector);

m_pServerSocket->Init(700);
m_pServerSocket->SetAutoService();
m_pServerSocket->BeginListening();

//怎么创建一个新进程调用下面的Go函数 谢谢

GetDlgItem(IDC_BT_Listening)->EnableWindow(true);
GetDlgItem(IDC_BT_Listening)->EnableWindow(false);
}
void Go(CMonitorServerDlg* pDlg)
{
..............................
}
括号里这些参数怎么弄啊? 哪个管调用函数的
展开
 我来答
tattackor
推荐于2016-10-25 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:885万
展开全部

1、CreateProcess();创建进程
WIN32API函数CreateProcess用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。

2、例程:

#include<stdio.h>
#include<windows.h>
intmain(intargc,char*argv[])
{
charszCommandLine[]="notepad";
STARTUPINFOsi={sizeof(si)};
PROCESS_INFORMATIONpi;
si.dwFlags=STARTF_USESHOWWINDOW;//指定wShowWindow成员有效
si.wShowWindow=TRUE;//此成员设为TRUE的话则显示新建进程的主窗口
BOOLbRet=CreateProcess(
NULL,//不在此指定可执行文件的文件名
szCommandLine,//命令行参数
NULL,//默认进程安全性
NULL,//默认进程安全性
FALSE,//指定当前进程内句柄不可以被子进程继承
CREATE_NEW_CONSOLE,//为新进程创建一个新的控制台窗口
NULL,//使用本进程的环境变量
NULL,//使用本进程的驱动器和目录
&si,
&pi);
if(bRet)
{
//不使用的句柄最好关掉
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
printf("新进程的ID号:%d\n",pi.dwProcessId);
printf("新进程的主线程ID号:%d\n",pi.dwThreadId);
}
return0;
}
百度网友82b03a4
2007-12-19 · TA获得超过1420个赞
知道小有建树答主
回答量:378
采纳率:0%
帮助的人:407万
展开全部
进程还是线程?
如果是进程的话就是另外一个程序了,而Go也要写在那个程序里;

创建进程使用CreateProcess.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
推荐于2016-02-24 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1665万
展开全部
这是我以前做的
//------------------------------------------
DWORD threadId;
readhThrd=CreateThread(NULL, 0,Procread, (LPVOID)1, 0, &threadId );
//启动监控进程
//-------------------------------------------
DWORD WINAPI Procread(LPVOID param)//监控进程
{
....
}
-------------------------------
全问别人多没意思啊,自己用msdn或者百度找找
像函数用法这些基本上都能找到的
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
6908270270
2007-12-19 · TA获得超过3427个赞
知道小有建树答主
回答量:1988
采纳率:0%
帮助的人:703万
展开全部
DWORD threadId;
readhThrd=CreateThread(NULL, 0,Procread, (LPVOID)this, 0, &threadId );

void Go(LPVOID* p) //要是全局函数
{
CMonitorServerDlg* pDlg=(CMonitorServerDlg* pDlg)p;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狈让炮bpd96
2007-12-19 · TA获得超过4971个赞
知道大有可为答主
回答量:2451
采纳率:0%
帮助的人:2698万
展开全部
你可以看看这个资料,说点挺全面的

参考资料: http://hi.baidu.com/hustwu/blog/item/73a735d1550b43d0562c844d.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式