Page 1 of 1

wxAny to wxString

Posted: Wed Aug 30, 2017 7:43 pm
by cutecode
Есть ли универсальная функция для преобразования wxAny в строку?

этот код ни всегда устраивает

Code: Select all

	szRezult = any.As<wxString>();
например, для типов bool она возвращает "true"/"false" всместо 1/0.
А для wxDateTime возвращает пустую строку

Re: wxAny to wxString

Posted: Wed Aug 30, 2017 8:49 pm
by ONEEYEMAN
Dobrogo vremeni sutok,
cutecode wrote: Есть ли универсальная функция для преобразования wxAny в строку?

этот код ни всегда устраивает

Code: Select all

	szRezult = any.As<wxString>();
например, для типов bool она возвращает "true"/"false" всместо 1/0.
I chto? Eto standartnye bulevskie znachenija. Ochen udobno - srazu zapisyvaetsja v "if()".
cutecode wrote: А для wxDateTime возвращает пустую строку
A kakoe wxDateTime imeet otnoshenie k wxString?
I esli vozvraschaet pustuju stroku to eto bug. "Test suite" zapuskat probovali? Kakaja OS/versija? Kakaja versija biblioteki? Kakoj kompiljator?

Sudja po dokumentacii drugoj variant otsutstvuet.
Mogno pravda poprobovat tak:

Code: Select all

bool res = any.GetAs( szResult );
if( res )
// success
else
// conversion failed
Spasibo.

Re: wxAny to wxString

Posted: Wed Aug 30, 2017 9:32 pm
by cutecode
wx 3.1.1
работаю в винде, пробовал и в mingw и в VS2013

Code: Select all

_ttol("true") и _ttol("false") - всегда возвращают 0

Code: Select all

any.GetAs( szResult ); - Синтаксическа ошибка


я работаю с COM-Объектом,

Code: Select all

wxAutomationObject::GetProperty()
возвращает wxAny

а там может быть все что угодно, и мне все это надо представить в виде строки.

Re: wxAny to wxString

Posted: Wed Aug 30, 2017 10:12 pm
by ONEEYEMAN
Добрый день/вечер,
cutecode wrote: wx 3.1.1
работаю в винде, пробовал и в mingw и в VS2013

Code: Select all

_ttol("true") и _ttol("false") - всегда возвращают 0
0/1 и true/false взаимозаменяемы.
cutecode wrote:

Code: Select all

any.GetAs( szResult ); - Синтаксическа ошибка
Интересно.
Судя по http://docs.wxwidgets.org/3.1.0/classwx ... 12316454d8 фуекция сузествует.
Какая ошибка?
cutecode wrote: я работаю с COM-Объектом,

Code: Select all

wxAutomationObject::GetProperty()
возвращает wxAny

а там может быть все что угодно, и мне все это надо представить в виде строки.
Если может быть все что угодно может проще проверить через http://docs.wxwidgets.org/3.1.0/classwx ... 05d6c5e1da.

Спасибо.

Re: wxAny to wxString

Posted: Wed Aug 30, 2017 10:47 pm
by cutecode
Thanks for a hint. I've found a solution

Code: Select all

	wxVariant v;
	if (value.GetAs(&v))
	 szRezult1 = v.GetString();
	else
	{
		write_message(wxString::Format(L"Неизвестный тип данных wxAny"));
		wxASSERT(0);
	}

Re: wxAny to wxString

Posted: Wed Aug 30, 2017 11:24 pm
by ONEEYEMAN
Hi,
cutecode wrote: Thanks for a hint. I've found a solution

Code: Select all

	wxVariant v;
	if (value.GetAs(&v))
	 szRezult1 = v.GetString();
	else
	{
		write_message(wxString::Format(L"Неизвестный тип данных wxAny"));
		wxASSERT(0);
	}
wxAny should be a straight replacement for wxVariant.
So I'm curious - how cone one works and the other doesn't.

Can you run the test suite and see if there is any failure?

Thank you.