2012-10-26 26 views
1

我是C++中的新手,在需要並行處理的模塊上工作。通過在Visual C++中傳遞函數來創建進程

我需要通過將不同的函數(執行某些特定任務)傳遞給在C++中由main(類似於_beginthread)創建的每個進程來創建2或3進程,其中main在創建所有進程後立即退出,創建的新流程將持續到完成。

當我嘗試線程,我的主要應該等到我的所有線程,只要我的主要出口,我的所有孩子的都被殺完成,如果沒有得到。但我不想要這種方法,因爲在多個DLL中有很多主要的方法。我需要在每個DLL中調用每個main,並且這些main(s)將負責創建所需的進程數。

我試圖尋找CreateProcess函數的語法如下。

BOOL WINAPI CreateProcess(
    _In_opt_  LPCTSTR lpApplicationName, 
    _Inout_opt_ LPTSTR lpCommandLine, 
    _In_opt_  LPSECURITY_ATTRIBUTES lpProcessAttributes, 
    _In_opt_  LPSECURITY_ATTRIBUTES lpThreadAttributes, 
    _In_   BOOL bInheritHandles, 
    _In_   DWORD dwCreationFlags, 
    _In_opt_  LPVOID lpEnvironment, 
    _In_opt_  LPCTSTR lpCurrentDirectory, 
    _In_   LPSTARTUPINFO lpStartupInfo, 
    _Out_  LPPROCESS_INFORMATION lpProcessInformation 
); 

基礎上,我才明白什麼都功能,我在我將傳遞給進程(ES)開始說起應作爲獨立的控制檯應用程序來創建(如:exe文件),然後用在這裏。

我的理解是否正確?還是有其他的方法可以在獨立的進程中真正調用一個獨立的函數?

請讓我知道,如果需要

回答

1

是的,你理解正確的話。 當你使用CreateProcess()時,它實際上創建一個與main沒有關係的進程。 你也可以從一個完全獨立的程序創建多個進程。

無需調用功能在單獨的方法,該方法是相互獨立的。

+0

感謝您的回答。所以我不能在單獨的過程中調用一個函數?我需要爲我在函數中執行的任務創建單獨的應用程序,並調用CreateProcess並傳遞我創建的exe。這是對的嗎? – TechyHarry

+0

我想這可能會幫助你.http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/e65a594d-8993-4936-95d2-4752c690e868/ – SRJ

相關問題