2015-04-26 28 views
-1

我要給我寫點功能print()
但是在上述函數中,我將不得不決定是否處理獨立於操作系統的控制檯應用程序。
(大多爲決定是否使用std::cout或相關MessageBox執行OS去。)是否有預處理器宏讓我知道應用程序是控制檯類型還是其他?

如果沒有自動生成的恆定會有那是多平臺兼容其他合適的方式嗎?

我將它包含在一個庫中,這意味着我無法知道哪個編譯器將被使用或哪個IDE。

+1

如果你的意思是像一個預處理宏,那麼我懷疑有這樣的事情。我會這樣做的一種方式是定義一個自定義宏,然後在編譯期間通過-D選項將其傳遞給程序。 – jcxz

+0

@jcxz:如果是用於構建庫,即使在編譯時,也不知道它是由控制檯應用程序還是由GUI使用。在這種情況下,沒有編譯時宏將有任何用處,您將不得不(嘗試)在運行時猜測。 –

+1

@SergeBallesta那麼你仍然可以在庫中定義兩個函數。一個控制檯版本,一個gui版本,並且在每個調用站點中,您都可以調用宏而不是這兩個函數中的一個,並根據編譯器命令行上定義的宏擴展到適當的版本。而OP最初是在詢問某種常量,我認爲他對編譯時解決方案感興趣。 – jcxz

回答

1

有用於確定您的應用程序正在使用的GUI或控制檯沒有獨立於平臺的方法。

在UNIX平臺上,這裏有很多不同的GUI庫,更不用說Wayland vs X11。

相關問題