Это так же просто, как это происходит:
- Тип
HRESULT
является беззнаковым 32-битное целое, так что uint
. Вы можете быть оправданы при использовании int
, так как подписанные типы, как правило, легче работать с управляемым кодом. Однако, поскольку вы вряд ли выполняете арифметику на HRESULT
, вы также можете использовать uint
, на мой взгляд.
- Макрос
WINAPI
расширяется до stdcall
вызывающего соглашения, которое по умолчанию используется, поэтому мы можем опустить соглашение о вызове. Если вы предпочитаете быть явным, укажите CallingConvention = CallingConvention.Stdcall
.
- Строки все строки Unicode, поэтому мы используем
CharSet.Unicode
.
Итак перевод:
[DllImport(dllname, CharSet = CharSet.Unicode)]
static extern uint RegisterDeviceWithManagement(
string ppszMDMServiceUri,
string pszUPN,
string ppzsAccessToken
);
Очевидно, что вам нужно заполнить имя DLL.
Awesome большое спасибо – CodeR