int vs IntPtr, wenn Sie ein handle?

Zuerst eine hintergrund-Frage:

Im Allgemeinen, was ist der Unterschied zwischen int und IntPtr? Meine Vermutung ist, dass es ein Tatsächliches Objekt, sondern als ein Wert wie ein int oder byte ist. Angenommen, das ist wahr:

Also Sie sind nicht das gleiche. Dennoch sehe ich Griffe vertreten als die beiden.

  1. IntPtr: Control.Handle
  2. int (oder uint): Ein PInvoke kann eingestellt werden, um eine int und es funktioniert Prima:

    [DllImport("coredll.dll", SetLastError = true)]
    public static extern int GetForegroundWindow();
    private string GetActiveWindow()
    {
        const int nChars = 256;
        int handle = 0;
        StringBuilder Buff = new StringBuilder(nChars);
    
        handle = CoreDLL.GetForegroundWindow();
    
        if (CoreDLL.GetWindowText(handle, Buff, nChars) > 0)
        {
            return Buff.ToString();
        }
    
        return "";
    }

So, int vs IntPtr? Spielt es eine Rolle, für die Griffe? Können Sie entweder?

InformationsquelleAutor Vaccano | 2010-11-30
Schreibe einen Kommentar