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