Добрый день! Может кто сталкивался с такой проблемой - необходимо перевисти введенную строку (строка около 50 символов) из AnsiString в CHAR для отправки по почте - есть 2 варианта:
1й вариант
char Q[] = "mailto:test@mail.ru?subject=TEMA&body=";
sprintf(Q,"mailto:test@mail.ru?subject=TEMA&body=%s",Edit5->Text);
ShellExecute(0,NULL,Q,NULL,NULL,SW_SHOWNORMAL);
2й вариант
AnsiString S1 = Edit->Text;
char* ch1= S1.c_str();
char S[]= "mailto:test@mail.ru?subject=TEMA&body=";
strcat(S,ch1);
ShellExecute(0,NULL,S,NULL,NULL,SW_SHOWNORMAL);
И в обоих вариантах - все номально - программа компилится, почта открывается, данные в письмо заносятся, а потом билдер начинает ругаться, программа вылетает
В Call Stack пишет:
7c90378b ntdll.RtlConvertUlongToLargeDispatcher +0x46
7c90eafa ntdll.KiUserExceptionDispatcher +0xe
МОЖЕТ КТО ЗНАЕТ КАК С ЭТИМ МОЖНО БОРОТЬСЯ И В ЧЕМ ПРИЧИНА???
Всем откликнувшимся - большое спасибо!!!!
C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
-
Drongo
Re: C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
vetal_dnepr, Не совсем по теме, но если не будет трудно, оформляй текст тегом
Код: Выделить всё
. Выделяешь код, и жмёшь кнопочку над полем ввода. Вот эту [img]http://i029.radikal.ru/0804/39/282bf40e9a18.jpg[/img]-
Drongo
Re: C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
vetal_dnepr, Вот, тут попробовал, вроде всё нормально, запускается для почты Outlook Express 6. Компилится нормально Borland C++ Builder 6. Но когда в Edit2 ввожу текст:
Код:
Тоесть добавляю вначале строку (Edit2), то компилится нормально, а когда жму кнопку Отправить с текстом вылетает в ошибку, и открывает дебаггер, но тем не менее почтовую программу запускает и все строки, что введены заносит в тело. Может вперемешку с англ нельзя писать русскими? Не знаю. Проэкт, который я делал по вашему коду, прилагаю, и то что у меня получилось. Может кто из более опытных подскажет больше... Но откомпиленная программа уже работает хорошо без ошибок.
Код:
Код:
Код: Выделить всё
(Edit2) Текст сообщения отправляется в почтовую программу.Тоесть добавляю вначале строку (Edit2), то компилится нормально, а когда жму кнопку Отправить с текстом вылетает в ошибку, и открывает дебаггер, но тем не менее почтовую программу запускает и все строки, что введены заносит в тело. Может вперемешку с англ нельзя писать русскими? Не знаю. Проэкт, который я делал по вашему коду, прилагаю, и то что у меня получилось. Может кто из более опытных подскажет больше... Но откомпиленная программа уже работает хорошо без ошибок.
Код:
Код: Выделить всё
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString S1 = Edit1->Text;
char* ch1= S1.c_str();
char S[]= "mailto:test@mail.ru?subject=TEMA&body=";
strcat(S,ch1);
ShellExecute(0,NULL,S,NULL,NULL,SW_SHOWNORMAL);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString S1 = Edit2->Text;
char* ch1= S1.c_str();
char S[]= "mailto:test@mail.ru?subject=TEMA&body=";
strcat(S,ch1);
ShellExecute(0,NULL,S,NULL,NULL,SW_SHOWNORMAL);
}
//----------------------------------------------------------------------------
pva
Re: C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
Код:
память обрабатывается на стороне вызывающего, засоров не должно быть
Код: Выделить всё
AnsiString str("mailto:test@mail.ru?subject=TEMA&body=");
str += Edit5->Text;
ShellExecute(0, 0, str.c_str(), 0, 0,SW_SHOWNORMAL);память обрабатывается на стороне вызывающего, засоров не должно быть
-
vetal_dnepr
Re: C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
pva, спасибо большое!!! пока проверить возможности нет, но уверен все будет работать!!!
Drongo, Обязательно учту! (я про выдерение кода)!!!
Drongo, Обязательно учту! (я про выдерение кода)!!!
-
vetal_dnepr
Re: C/C++ - [решено] Проблема с перекодировкой AnsiString in CHAR
pva, Еще раз спасибо!!! Все отлично работает!!! 
