1
HRESULT WINAPI RegisterDeviceWithManagement(
_In_ LPCWSTR ppszMDMServiceUri,
_In_ LPCWSTR pszUPN,
_In_ LPCWSTR ppzsAccessToken
);
我想將其轉換爲Dllimport c#簽名。 任何幫助,將不勝感激P/Invoke:將此簽名轉換爲託管c#
HRESULT WINAPI RegisterDeviceWithManagement(
_In_ LPCWSTR ppszMDMServiceUri,
_In_ LPCWSTR pszUPN,
_In_ LPCWSTR ppzsAccessToken
);
我想將其轉換爲Dllimport c#簽名。 任何幫助,將不勝感激P/Invoke:將此簽名轉換爲託管c#
這很簡單,只要它涉及:
HRESULT
類型是無符號32位整數,所以uint
。您可以使用int
,因爲簽名類型更容易在託管代碼中使用。但是,由於您不可能在HRESULT
上執行算術運算,因此我認爲您可以使用uint
。WINAPI
宏擴展爲stdcall
調用約定,這恰好是默認的,所以我們可以省略調用約定。如果您更願意明確說明,請包括CallingConvention = CallingConvention.Stdcall
。CharSet.Unicode
。所以翻譯:
[DllImport(dllname, CharSet = CharSet.Unicode)]
static extern uint RegisterDeviceWithManagement(
string ppszMDMServiceUri,
string pszUPN,
string ppzsAccessToken
);
顯然,你需要填寫的DLL的名稱。
非常感謝 – CodeR