Domanda

Sto cercando di compilare in VS2003 che MouseTracking progetto che è stato fatto in C # 2005. Ce l'ho sistemato ad eccezione di una sola riga:

    proc = HookCallback;

In questo modo il Method 'MouseTracking.MouseTracker.HookCallback(int, System.IntPtr, System.IntPtr)' referenced without parentheses errore

Se aggiungo parantheses a HookCallback, ottengo No overload for method 'HookCallback' takes '0' arguments

Ho provato ad aggiungere gli argomenti della funzione come tipi, nomi di variabili, ed entrambi, ma nessuno sembra funzionare.

Ecco le pertinenti definizioni:

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

Qualsiasi idea di come ottenere questo per compilare? Mi piacerebbe molto aggiungere e modificare un paio di cose.

Grazie mille.

È stato utile?

Soluzione

Sembra che sta utilizzando HookCallback come delegato. In C # 1 è necessario creare i delegati utilizzando un costruttore delegato, non si può semplicemente utilizzare il nome del metodo ( come è possibile in C # 2+ ).

Date un'occhiata al tipo di proc, e l'uso che per creare un nuovo delegato, in questo modo:

proc = new LowLevelMouseProc(HookCallBack);

Altri suggerimenti

prot = new LowLevelMouseProc(HookCallBack);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top