Как в Маршалл LPCWSTR для Строкового представления в C#?

Я пытаюсь определить подпись P/Invoke для следующего метода (определенный в propsys.h)

PSSTDAPI PSRegisterPropertySchema(
    __in PCWSTR pszPath);

Я видел на WinNT.h это PCWSTR псевдоним к LPCWSTR как

typedef __nullterminated CONST WCHAR *LPCWSTR, *PCWSTR;

И PSSTDAPI псевдоним для HRESULT

Таким образом, как должна быть подпись P/Invoke для PSRegisterPropertySchema метод?

5
задан Henk Holterman 3 June 2010 в 21:02
поделиться

1 ответ

После установки значения CharSet на CharSet.Unicode все заработало.

[DllImport("Propsys.dll", CharSet=CharSet.Unicode)]
static internal extern int PSRegisterPropertySchema(String pszPath);

Без указания CharSet функция возвращала 0x80070057 , то есть E_INVALIDARG .

8
ответ дан 14 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: