2014-06-29 19 views
5

sto costruendo una piccola applicazione in C# che può creare il profilo utente su Windows XP, Windows 7 e Windows 8, utilizzando le APICome utilizzare il CreateUserProfileEx in C#

Windows Per Windows 7 e 8, il metodo CreateProfile ha funzionato perfettamente

Ma, quando si tenta di utilizzare il CreateUserProfileEx su Windows XP, non ha funzionato, mi ha restituito un errore di notifica che il metodo non può essere trovato in "UserEnv.dll", dopo aver letto un po 'di più l'API, mi sono reso conto che avrei bisogno di utilizzare il LoadLibrary e GetProcAddress per il collegamento a Userenv.dll.

Ho cercato un campione relativo a questo, ma non sono riuscito a trovare qualcosa che potesse darmi una buona idea o spiegazione su come farlo.

se qualcuno potesse mettere qualche esempio in C# o indicarmi dove potrei rivedere su questo, lo apprezzerei molto.

+0

Ci sono esempi di questo, per un'API diversa ma il processo è lo stesso per tutte le API Win32, qui su [SO]: http://stackoverflow.com/questions/3754264/c-sharp-getprocaddress- rendimenti zero – Richard

risposta

5

dopo aver letto un po 'di più l'API, mi sono reso conto che avrei bisogno di utilizzare il LoadLibrary e GetProcAddress per collegare Userenv.dll.

Read a little bit more:

Questa funzione non è dichiarato nel kit di sviluppo software (SDK) intestazioni e non ha alcun libreria di importazione associato. È necessario utilizzare le funzioni LoadLibrary e GetProcAddress per collegarsi a Userenv.dll. La versione ANSI della funzione, CreateUserProfileExA viene fatto riferimento da Userenv.dll come ordinale versione 153. L'Unicode, CreateUserProfileExW viene fatto riferimento come ordinale 154.

Google a little bit:

Inoltre, in Windows è possibile associare per esportare le funzioni DLL dai loro valori ordinali. Se è necessario eseguire ciò, un valore EntryPoint come "# 1" o "# 129" indica il valore ordinale della funzione non gestita nella DLL piuttosto che un nome di funzione.