2011-06-16 40 views
0

任何人都可以請舉例如何在C++中使用OnExited事件,請參閱msdn中的鏈接表單msdn。 http://msdn.microsoft.com/en-us/library/system.diagnostics.process.onexited.aspx。我很困惑這個C++/CLI。我試圖在退出進程後刪除文件。我用C#工作,但更喜歡C++,因此可以更容易地被JNI包裝。如何使用.net System.Diagnostics :: Process OnExited C++?

+0

你要加載JVM和CLR進入相同的過程?可怕... – ildjarn 2011-06-16 04:07:12

回答

0

我不是真的確定你想要什麼,所以這裏是你從C#連接到C++/CLI頁面上的代碼的直譯:

using namespace System; 
using namespace System::Diagnostics; 

ref class MyProcess : public Process 
{ 
public: 
    void Stop() 
    { 
     this->CloseMainWindow(); 
     this->Close(); 
     OnExited(); 
    } 
}; 

void myProcess_HasExited(Object^ sender, EventArgs^ e) 
{ 
    Console::WriteLine(L"Process has exited."); 
} 

int main(array<String^>^ args) 
{ 
    MyProcess^ p = gcnew MyProcess(); 
    p->StartInfo->FileName = L"notepad.exe"; 
    p->EnableRaisingEvents = true; 
    p->Exited += gcnew EventHandler(myProcess_HasExited); 
    p->Start(); 
    p->WaitForInputIdle(); 
    p->Stop(); 
} 
+0

這正是我想要的,但我不能得到它complile。出錯。 1> test2.cpp 1> test2.cpp(20):error C2628:'MyProcess'後跟'void'是非法的(你忘了';'?) 1> test2.cpp(30):error C3352 :'myProcess_HasExited':指定的函數不匹配委託類型'void(System :: Object ^,System :: EventArgs ^)' ========== Build:0成功,1失敗,0最新,0跳過========== – chocoloko 2011-06-16 05:24:16

+0

我修好了。非常好,感謝您的幫助。 – chocoloko 2011-06-16 05:31:56