4

ウィンドウ プロシージャをウィンドウ クラス構造に割り当てたい:

var wndClass : WNDCLASS;

wndClass.lpszClassName = CLASSNAME;
wndClass.lpfnWndProc   = WndProc;
wndClass.hInstance     = hInstance;

WndProc は宣言されていないため、まだ割り当てることができません。前方宣言を使用する場合 (ここで説明):

proc WndProc(hWnd: HWND; msg: WINUINT; wParam: WPARAM; lParam: LPARAM) : LRESULT

次のエラーが表示されます。

Error: type mismatch: got (None) but expected 'WNDPROC'

私の前方宣言は間違っていますか、それともこの場合最初に関数を書く必要がありますか?

編集:

参考までに、次のコードはグローバル スコープで動作します。

proc Foo : int32;

var bar = Foo();
var baz = Foo;

echo bar;
echo baz();

proc Foo : int32 =
    return 4;

WNDCLASS と WNDPROC の定義は、http://nim-lang.org/windows.html にあります

4

1 に答える 1