Можно ли передать std :: string через Microsoft RPC? - PullRequest
0 голосов
/ 07 марта 2011

Я попытался передать std :: string через RPC, но я получил следующую ошибку:

MIDL2025: синтаксическая ошибка: ожидание спецификация типа или хранилище спецификатор или спецификатор типа рядом "Строка"

Выписка из кода:

interface TestInterface
{
    unsigned int HelloUser([in] const string user);
}

Возможно ли это?

1 Ответ

1 голос
/ 07 марта 2011

Вы должны использовать BSTR.Также нет const.Определяя аргумент как [in], уже понятно, что вызываемый не будет изменять строку, и даже если она изменилась, он не будет маршалирован обратно вызывающей стороне.

_bstr_t класс поможет с конвертацией.Обратите внимание, что BSTR всегда основан на WCHAR, который является 16-битным.Таким образом, используйте std::wstring.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...