2013-07-28 19 views
7

ho provato:Non è possibile importare User32.dll in Visual Studio

  • Per aggiungere user32.dll da Reference Manager, e importati da Windows \ System32 \ user32.dll, Ho ricevuto messaggio di errore:

    Non è stato possibile aggiungere un riferimento a "C: \ Windows \ System32 \ user32.dll. Assicurati che il file sia accessibile e che sia un assembly valido o un componente COM.

  • using System.Runtime.InteropServices; [DllImport("user32")]

  • Per avviare Visual Studio come amministratore

Niente funziona ... si va sui nervi sto cercando 2 ore per importare questo maledetto dll ...

+1

Qual è il vostro obiettivo reale di aggiungendo che DLL? Hai menzionato 'DllImport' che chiaramente non ha bisogno di aggiungere DLL nativa come riferimento ... –

+0

@RohitVats: Quella domanda riguarda DLL .NET o COM, non semplici DLL Win32 come' user32.dll'. – RichieHindle

risposta

7

Non è necessario aggiungere un riferimento a User32.dll. Fa parte di Windows e può essere importato nel tuo codice senza aggiungere un riferimento. Lo fai usando P/Invoke.

[System.Runtime.InteropServices.DllImport("user32.dll")] 
public static extern void SetWindowText(int hWnd, String text); 

private void button3_Click(object sender, EventArgs e) 
{ 
    IntPtr wHnd = this.Handle;//assuming you are in a C# form application 
    SetWindowText(wHnd.ToInt32(), "New Window Title"); 
} 

Vedere anche:

+0

Grazie! Non avevo capito/so che il metodo dovrebbe essere definito (public static extern void SetWindowText (int hWnd, String text);) – jovanMeshkov

+0

Beh, non è proprio questo il metodo che deve essere definito. Ogni metodo di riferimento da 'user32.dll' deve essere presente in tale formato: ' [System.Runtime.InteropServices.DllImport ("user32.dll")] ' ' vuoto statico pubblico esterno (); ' – jrbeverly

1

Non è una DLL .NET. Non si "aggiunge riferimento" nello stesso modo in cui si utilizzano le DLL .NET. Invece devi aggiungere il codice P/Invoke alla tua app per invocare le funzioni che desideri. Ecco una buona risorsa per l'apprendimento di pinvoke: http://pinvoke.net/

Problemi correlati