porting Windows C++ to D, a few questions
BLS
nanali at nospam-wanadoo.fr
Mon Sep 17 12:15:17 PDT 2007
BLS schrieb:
> Hi,
>
> I have/would like to translate a Windows C++ source into D and I have
> questions regarding
> Class pointer, casting, and CALLBACK
>
> Okay, here a C++ fragment.
> class CWin : public CMsg
> {
>
> WNDCLASSEX wcex;
> wcex.hbrBackground= (HBRUSH) (COLOR_BTNFACE+1);
> // How to translate this into D ?
> // I guess :
>
> //wcex.hbrBackground = cast(HBRUSH) (COLOR_BTNFACE+1);
> // Is this correct ????
>
>
> //Later :
> static LRESULT CALLBACK WndProc(HWND hWnd, UINT uID, WPARAM wParam,
> LPARAM lParam)
> // Actually I have no idea how to convert this construct into D...
> {
>
> CWin* pWnd=NULL;
> // I think in D using a pointer to a class is not nessesary.
> // Do you agree ? However the next pb. I have is here :
>
> pWnd =
> reinterpret_cast<CWin*>((long)((LPCREATESTRUCT)lParam)->lpCreateParams);
>
> // Now it seems to become difficult. In case that I define
> CWin pWind; // instead off CWin* pWnd;
> //then casting is impossible. So what can I do ?
> }
> }
> Bjoern
The LPCREATESTRUCT from WinUser.d
struct CREATESTRUCTA {
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCSTR lpszName;
LPCSTR lpszClass;
DWORD dwExStyle;
}
alias CREATESTRUCTA* LPCREATESTRUCTA;
More information about the Digitalmars-d-learn
mailing list