P/Invoke:将此签名转换为托管c#
我想把它转换成Dllimport c#签名。P/Invoke:将此签名转换为托管c#,c#,pinvoke,unmanaged,managed,C#,Pinvoke,Unmanaged,Managed,我想把它转换成Dllimport c#签名。 任何帮助都将不胜感激这很简单: HRESULT类型是一个无符号32位整数,因此uint。您可以合理地使用int,因为在托管代码中使用有符号类型更容易。但是,由于您不太可能在HRESULT上执行算术,因此我认为您也可以使用uint WINAPI宏扩展为stdcall调用约定,这恰好是默认的,因此我们可以省略调用约定。如果您喜欢显式,请包括CallingConvention=CallingConvention.Stdcall 字符串都是Unicode字
任何帮助都将不胜感激这很简单:
类型是一个无符号32位整数,因此HRESULT
。您可以合理地使用uint
,因为在托管代码中使用有符号类型更容易。但是,由于您不太可能在int
上执行算术,因此我认为您也可以使用HRESULT
uint
宏扩展为WINAPI
调用约定,这恰好是默认的,因此我们可以省略调用约定。如果您喜欢显式,请包括stdcall
李>CallingConvention=CallingConvention.Stdcall
- 字符串都是Unicode字符串,因此我们使用
CharSet.Unicode
HRESULT WINAPI RegisterDeviceWithManagement(
_In_ LPCWSTR ppszMDMServiceUri,
_In_ LPCWSTR pszUPN,
_In_ LPCWSTR ppzsAccessToken
);
显然,您需要填写DLL的名称。这很简单:
类型是一个无符号32位整数,因此HRESULT
。您可以合理地使用uint
,因为在托管代码中使用有符号类型更容易。但是,由于您不太可能在int
上执行算术,因此我认为您也可以使用HRESULT
uint
宏扩展为WINAPI
调用约定,这恰好是默认的,因此我们可以省略调用约定。如果您喜欢显式,请包括stdcall
李>CallingConvention=CallingConvention.Stdcall
- 字符串都是Unicode字符串,因此我们使用
CharSet.Unicode
HRESULT WINAPI RegisterDeviceWithManagement(
_In_ LPCWSTR ppszMDMServiceUri,
_In_ LPCWSTR pszUPN,
_In_ LPCWSTR ppzsAccessToken
);
显然,您需要填写DLL的名称