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