我有一個應用程序,它使用C#作爲前端,C++ DLL作爲邏輯部分。即使C#GUI存在,我也想從C++ DLL的控制檯屏幕上打印錯誤消息。請讓我知道如何做到這一點。從C++ DLL打印消息到控制檯
謝謝, Rakesh。
我有一個應用程序,它使用C#作爲前端,C++ DLL作爲邏輯部分。即使C#GUI存在,我也想從C++ DLL的控制檯屏幕上打印錯誤消息。請讓我知道如何做到這一點。從C++ DLL打印消息到控制檯
謝謝, Rakesh。
您可以使用AllocConsole()創建控制檯窗口,然後寫入標準輸出。
如果您正在使用C或C++標準I/O功能(而不是直接Win32調用),還有你需要採取與標準輸出的C/C++標準庫的想法新的控制檯關聯的一些額外的步驟。 http://www.halcyon.com/~ast/dload/guicon.htm解釋你必須做什麼以及爲什麼,完整的代碼。
,標準輸入,標準輸出,和標準錯誤甚至不會存在,使用例如任何企圖printf()
將會失敗。要麼打開您自己的控制檯,要麼使用調試機制,比如前面提到的OutputDebugString()
。
如果處理COM/DCOM或任何其他ATL項目的DLL和服務EXE,您也可以使用以下代碼行以MessageBox
窗口的形式打印診斷消息,作爲將消息打印到控制檯的替代方法:
MessageBox(NULL, L"Com Object Function Called", L"COMServer", MB_OK | MB_SETFOREGROUND);
實施例情況下,我已經使用這個包括_tWinmain
功能,以及構造和析構跟蹤實例。
嘿格雷格,請問您可以擴展使用AllocConsole()。任何鏈接供參考? – 2010-03-01 06:37:13
我添加了一個指向AllocConsole()的MSDN文檔的鏈接。這很簡單。只需調用AllocConsole()爲您的應用程序創建一個控制檯窗口,並檢查返回值以確保它不會由於某種原因而失敗。 – 2010-03-01 21:38:19
我用AllocConsole來創建一個控制檯窗口,但是沒有任何東西被打印在屏幕上。任何想法爲什麼發生這種情況? – 2010-03-02 08:58:08