[問題] 有類似TerminateProcess這種功能的function?

看板C_and_CPP (C/C++)作者 (神手)時間14年前 (2011/08/17 14:45), 編輯推噓0(0017)
留言17則, 6人參與, 最新討論串1/1
程式語言:C 是這樣的 我用CreateProcess()建立出process 這個process是一個普通的視窗化錄音程式介面 當按下視窗化介面的 右上x(關閉)鍵時會進行存檔 但我不想使用者藉由自己按按鈕來結束這個process 所以我用TerminateProcess()來關閉這個process 又因為TerminateProcess()是強制性的關閉process 不會給process任何時間處理後續 因此也就沒有存到檔 所以我想問的是有沒有類似TerminateProcess()這種功能但會給process處理後續的函式? 感謝解答~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.130.102

08/17 14:47, , 1F
你的功能是想要使用者按結束自動存檔嗎?
08/17 14:47, 1F

08/17 14:48, , 2F
用 atexit() 這樣的 callback 可以做到啊
08/17 14:48, 2F

08/17 14:52, , 3F
他的功能不像是這樣,像是A呼叫B,在B關閉時會執行一些動
08/17 14:52, 3F

08/17 14:53, , 4F
作,但想用類似TerminatProcess,不過較"柔性"方式關閉.
08/17 14:53, 4F

08/17 14:54, , 5F
我的問題是,用 SendMessage/PostMessage 不好使嗎?
08/17 14:54, 5F

08/17 14:59, , 6F
因為這個錄音程式不是我寫的,所以Message的方式暫時放棄
08/17 14:59, 6F

08/17 15:00, , 7F
我比較好奇的是,要怎麼讓錄音程式存檔?
08/17 15:00, 7F

08/17 15:01, , 8F
但是如果送 WM_DESTROY 之類呢 ? hwnd也可以用API找出來
08/17 15:01, 8F

08/17 15:39, , 9F
demo code當被呼叫端 http://codepad.org/dMrcTq92
08/17 15:39, 9F

08/17 15:39, , 10F
呼叫端:http://codepad.org/2qz243M3 ,看來算正常.
08/17 15:39, 10F

08/17 15:40, , 11F
WM_DESTROY,WM_CLOSE,WM_QUIT, 我覺得送WM_CLOSE較合理
08/17 15:40, 11F

08/17 15:48, , 12F
還是這方法不適用原po問題?(有其它原因?)
08/17 15:48, 12F

08/17 16:13, , 13F
感謝t大!!解決了!!也感謝所有回覆的大大們~~
08/17 16:13, 13F

08/17 21:03, , 14F
signal?
08/17 21:03, 14F

08/17 21:22, , 15F
若以 demo code 為範本,請問 signal 該如何完成 ?
08/17 21:22, 15F

08/17 21:58, , 16F
雖然我覺得signal()可以在win運作成功率不高...
08/17 21:58, 16F

08/17 21:59, , 17F
不過大致上是用signal 設定對於某sig而呼叫function
08/17 21:59, 17F
文章代碼(AID): #1EIsE0V5 (C_and_CPP)
文章代碼(AID): #1EIsE0V5 (C_and_CPP)