Как преобразовать строку в символ * - PullRequest
0 голосов
/ 18 марта 2020

У меня есть метод C ++, как показано ниже,

STDMETHODIMP ClassName::FuncName(CHAR* inFile, CHAR **OutFile)
{
    ......
}

Эта функция доступна, как показано ниже,

interface ICPC : IDispatch
{
    .....
    [id(1), helpstring("")] HRESULT FuncName([in] CHAR* inFile, [out] CHAR** outFile);
}

Однако в моем. NET проекте, когда я пытаюсь вызвать эта функция ожидает ref sbyte для первого параметра и IntPtr для второго параметра.

void ICPC.FuncName(ref sbyte inFile, IntPtr OutFile)

Первый параметр, который у меня есть, является входной переменной String. Как передать это как inFile и как прочитать параметр OutFile out?

1 Ответ

0 голосов
/ 18 марта 2020

После многих экспериментов кажется, что не существует простого способа преобразовать строку в символ * (строка в ref sbyte, а также выходной файл в IntPtr). Так изменил idl до BSTR и BSTR *. Так что я могу напрямую передать строку в функцию.

...