2014-06-29 26 views
5

我建立在C#中的小型應用程序,它可以創建在Windows XP,Windows7的和Windows 8的用戶配置文件,使用Windows的API如何使用CreateUserProfileEx在C#

對於Windows 7和8,方法CreateProfile完美地工作。

但是,當試圖在Windows XP上使用CreateUserProfileEx時,它不起作用,它返回了一個錯誤,通知該方法在「UserEnv.dll」中找不到,稍後再閱讀一點的API,我意識到我需要使用LoadLibraryGetProcAddress鏈接到Userenv.dll。

我搜索了一些與此相關的示例,但我找不到可以給我一個好主意或解釋如何做到這一點的東西。

如果有人可以在C#中添加一些示例或指向我可以查看的地方,我會非常感激。

+0

有一些這樣的例子,對於不同的API,但對於所有的Win32 APIs,這裏是[SO]:http://stackoverflow.com/questions/3754264/c-sharp-getprocaddress-收益爲零 – Richard

回答

5

在閱讀了一些API之後,我意識到我需要使用LoadLibrary和GetProcAddress來鏈接到Userenv.dll。

Read a little bit more

此功能未在軟件開發工具包(SDK)頭聲明,也沒有相關的導入庫。您必須使用LoadLibrary和GetProcAddress函數來鏈接到Userenv.dll。該函數的ANSI版本,CreateUserProfileExA從Userenv.dll引用爲序153. Unicode版本,CreateUserProfileExW被標記爲序154

Google a little bit

此外,在Windows中可以綁定通過它們的序號值導出DLL函數。如果需要這樣做,EntryPoint值(例如「#1」或「#129」)表示DLL中非託管函數的序號值,而不是函數名稱。