2009-07-20 22 views
1

に私はC#の2005年に作られたMouseTrackingプロジェクトは、私はそれが1行を除いて、最大の固定持っていることをVS2003でコンパイルしようとしています:翻訳C#のデリゲートC#2003

proc = HookCallback; 

これは私がHookCallbackに括弧を追加した場合、私はタイプ、変数名として、関数の引数を追加しようとしているNo overload for method 'HookCallback' takes '0' arguments

取得し、両方のMethod 'MouseTracking.MouseTracker.HookCallback(int, System.IntPtr, System.IntPtr)' referenced without parentheses

エラーになりますしかし、どれもうまくいかないようです。これはコンパイルするために取得する方法

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

任意のアイデア:ここ

は、関連する定義ですか?私は本当にいくつかのものを加えて微調整したいと思っています。

ありがとうございます。

答えて

3

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

procの種類を見てみましょう、そして新しいデリゲートを作成するためにそれを使用するので、のように:働いたと理にかなっている

proc = new LowLevelMouseProc(HookCallBack); 
+0

どうもありがとう、。 (私はC++からですので、C#ではほとんど行っていません)。 もう一度ありがとうございます。 – Synetech

4
prot = new LowLevelMouseProc(HookCallBack); 
関連する問題