我想使用WxWidgets,SDL等使用的相同的#ifdef
方法。唯一的問題是我不知道如何使用它。如何使用預處理器來創建跨平臺庫?
說我想創建一個繪製矩形的類。我希望它在Win32平臺上使用時,在X11平臺(即Linux版)和GDI開羅:
class graphics
{
void drawRect(int x, int y, int w, int h)
{
/*if on win32*/
HDC myHdc = ::BeginPaint(myHwnd,&mypstr);
::Rectangle(myHdc,x,y,w,h);
::EndPaint(myHwnd,&mypstr);
/*if on x11*/
cairo_surface_t* s = cairo_xlib_surface_create(/* args */);
cairo_t* c = cairo_create(s);
cairo_rectangle(c,x,y,w,h);
// etc. etc.
}
};
我將如何使用#ifdef
或別的東西來做到這一點?
請不要WxWidgets和SDL提供您正在尋找的預處理器示例? –
(+1)問題標題所代表的概念值得讚賞。沒有答案,閱讀其他開發人員的答案... – umlcat