1

C#2005で作成されたMouseTrackingプロジェクトをVS2003でコンパイルしようとしています。1行を除いて修正しました。

    proc = HookCallback;

これによりエラーが発生します    Method 'MouseTracking.MouseTracker.HookCallback(int, System.IntPtr, System.IntPtr)' referenced without parentheses

HookCallbackに括弧を追加すると、次のようになります。    No overload for method 'HookCallback' takes '0' arguments

関数の引数を型、変数名、およびその両方として追加しようとしましたが、どれも機能しないようです。

関連する定義は次のとおりです。

    private LowLevelMouseProc proc;
    private delegate IntPtr LowLevelMouseProc (int nCode, IntPtr wParam, IntPtr lParam);
    private          IntPtr HookCallback      (int nCode, IntPtr wParam, IntPtr lParam) {…}

これをコンパイルする方法はありますか?私は本当にいくつかのことを追加して微調整したいと思います。

どうもありがとう。

4

2 に答える 2

4
prot = new LowLevelMouseProc(HookCallBack);
于 2009-07-20T16:27:20.593 に答える
3

HookCallbackをデリゲートとして使用しているようです。C#1では、デリゲートコンストラクターを使用してデリゲートを作成する必要があります。メソッド名だけを使用することはできません(C#2+の場合のように)。

のタイプを確認しproc、それを使用して次のように新しいデリゲートを作成します。

proc = new LowLevelMouseProc(HookCallBack);
于 2009-07-20T16:30:29.777 に答える