0

WinAPI でウィンドウを作成するクラスが欲しいです。wndproc 関数は、そのクラスのメソッドである必要があります。そのため、その方法を見つけましたが (以下のコードを参照)、残念ながら VS2013 ではコンパイルできません。
このコードは、エラーや警告なしで VS2010 でコンパイルされました。

私の .h ファイルで:

typedef long(__stdcall* WNDPROC)(void*,unsigned int,unsigned int,long);

class LWindow
{
private:
    //...

    static LRESULT CALLBACK wndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam);


public:
    LWindow(int width, int height, bool framed);
    ~LWindow();

    //...
};


私の .cpp ファイルで:

LWindow::LWindow(int width, int height, bool framed)
{
    //...
    WNDCLASS wc = {0};
    wc.lpfnWndProc = wndProc;
    //...
}


エラーメッセージは

1>l:\opt\microsoft visual studio 12.0\vc\include\xrefwrap(283): error C2064: term does not evaluate to a function taking 0 arguments
4

1 に答える 1

0

良い。このコードを 1 時間近くいじり、行をいじった後static LRESULT CALLBACK wndProc...、明確な行番号が得られなかったため、問題を引き起こす非常に古いファイルがいくつか含まれていることがわかりました。
ありがとう、@edtheprogrammerguy、これは私が必要としていたヒントでした!

于 2013-11-09T18:15:09.013 に答える