Wsutil.exe (собственный компилятор веб-служб): WCHAR* против LPCWSTR для типа xsd:string

Есть ли хорошая причина для компилятора нативных веб-сервисов генерировать WCHAR * для xsd:string против const wchar_t* (или LPCWSTR вкратце)?

Причина, по которой я задаю этот вопрос, заключается в том, что наше приложение является родным с ++, которое имеет std::wstringвсплывает в коде, который необходимо передать в службу WCF. Чтобы использовать функции C, сгенерированные нативным компилятором веб-сервисов, он заставляет меня что-то делать, например:

MyCppFunc(const std::wstring& inputString ,…)
{
… 
    HRESULT hr = BasicHttpBinding_BlahService(const_cast<<WCHAR*>WCHAR*>(inputString.c_str()), ….); 
}

Как видно из вышеизложенного, я вынужден покончить с const по указателю, моя проблема здесь в том, чтобы явно иметь WCHAR* тип, данные указателя должны обрабатываться самим webservices.lib в любом случае?

Alternatively I could end up copying over the contents of the string to a WCHAR* but for the fact that our c++ app runs as a service and we have heap fragmentation concerns over the frequent allocations/de-allocations.

Thanks., Raghu

0 ответов

Другие вопросы по тегам