ウィンドウ プロシージャをウィンドウ クラス構造に割り当てたい:
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 にあります 。