Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Как передать компонент в функцию


Автор: Krav 1.6.2011, 22:24
Код

void convert(char a[256],System::EventArgs^ e)
{
pin_ptr<const wchar_t> wch=PtrToStringChars(e->Text);
int sizeInBytes = (e->Text->Length + 1);
char *ch = (char *)malloc(sizeInBytes);             
WideCharToMultiByte(0,0,wch,-1,ch,sizeInBytes,NULL,NULL);
 for ( int i = 0; i<e->Text->Length; i++ )
{
 a[i]=ch[i];
}
delete ch;
}

private: System::Void comboBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {
char nono[256]="";
convert(nono,e);
}

Данный код не работает. Задача - передать comboBox или любой другой компонент в функцию convert.

Автор: RastaDja 2.6.2011, 08:03
Из примера видно, что внутри функции convert компонент не используется, а используется только его поле с текстом (e->Text). Не понятно зачем передавать компонент, если над ним не производить никаких действий. Не кажется вам что лучше передать wchar_t, или char* во второй параметр?  Второе - массив в первом параметре нужно передавать по ссылке, иначе он не изменится.

Автор: bsa 2.6.2011, 09:53
Krav, и вообще, ты разделом ошибся. Это раздел по С++. А C# и C++/CLI это .Net.

Автор: Krav 4.6.2011, 12:58
RastaDja, спасибо за совет, сделал передачу только на поле с текстом - задача выполнена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)