Question

Je suis en train de compiler dans VS2003 que mouseTracking projet qui a été fait en C # 2005. Je l'ai fixé jusqu'à l'exception d'une ligne:

    proc = HookCallback;

Cela donne à l'Method 'MouseTracking.MouseTracker.HookCallback(int, System.IntPtr, System.IntPtr)' referenced without parentheses d'erreur

Si j'ajoute à parantheses HookCallback, je reçois No overload for method 'HookCallback' takes '0' arguments

Je l'ai essayé d'ajouter les arguments de la fonction comme types, noms de variables, et les deux, mais aucun ne semble fonctionner.

Voici les définitions pertinentes:

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

Toute idée comment obtenir ce pour compiler? Je voudrais vraiment ajouter et modifier quelques petites choses.

Merci beaucoup.

Était-ce utile?

La solution

On dirait qu'il utilise HookCallback en tant que délégué. En C # 1, vous devez créer les délégués à l'aide d'un constructeur de délégué, vous ne pouvez pas utiliser le nom de la méthode ( comme vous pouvez en C # 2+ ).

Jetez un oeil au type de proc, et l'utiliser pour créer un nouveau délégué, comme suit:

proc = new LowLevelMouseProc(HookCallBack);

Autres conseils

prot = new LowLevelMouseProc(HookCallBack);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top