Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2007, 18:21   #11
MaGiCeYe
Пользователь
 
Аватар для MaGiCeYe
 
Регистрация: 29.12.2006
Сообщений: 11
Сообщение

Если у тебя ошибка здесь:
ShellExecute (Handle,nil,'cmd.exe','/k' + c, nil,SW_NORMAL);
то лучше сделай так:
ShellExecute (Handle,nil,PChar('cmd.exe'),Pchar('/k' + c), nil,SW_NORMAL);
БОГ ЕСТЬ СОВЕСТЬ...
MaGiCeYe вне форума Ответить с цитированием
Старый 31.05.2007, 12:09   #12
malor
Форумчанин
 
Регистрация: 23.05.2007
Сообщений: 151
По умолчанию

У меня компилятор Delphi 7 ругается
Incompatible types: 'String' and 'PAnsiChar'
на строку :
stpost:=StrCat(stpost,'XML_Query=<? xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>');

Переменная stpost имеет в проге тип String.
Как быть?
malor вне форума Ответить с цитированием
Старый 31.05.2007, 12:24   #13
2face
Пользователь
 
Регистрация: 23.05.2007
Сообщений: 24
По умолчанию

StrCat(Dest: PChar; const Source: PChar): PChar;
Поэтому и не работает. Переведи string в PAnsiChar. См. выше.
2face вне форума Ответить с цитированием
Старый 31.05.2007, 12:57   #14
malor
Форумчанин
 
Регистрация: 23.05.2007
Сообщений: 151
По умолчанию

Объявив stpost:PAnsiChar и сделав
stpost:=StrCat(stpost,PAnsiChar('XM L_Query=<?xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>')); компилятор не стал ругатся.

Правда программа при своей работе не производила никаких действий, это было не зависание, а просто бездействие. Без
сообщений об ошибках. Начал отладку по F7 делать. Строка подсветки дойдя до stpost:=StrCat(stpost,PAnsiChar
('XML_Query=<?xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>'));
исчезала.
Молча, опять же без каких-либо сообщений. В этой строке происходит первое использование переменной stpost в программе.
На стр. 287 "Delphi 2006 Справочное пособие" написано:"Если инициализация переменной типа PChar при ее объявлении
не было, значение переменной равно nil, т.е. указатель не указывает на какую-то конкретную область памяти. Такую
переменную нельзя использовать, пока ей не присвоено описанными ниже методами какое-то значение - указатель на строковую
константу, на массив символов, или покане выделено динамическое место в памяти функцией GetMem". Не с этим ли связано такое поведение программы?

Кстати, почему в строке компилятора Incompatible types: 'String' and 'PAnsiChar' употреблено слово 'PAnsiChar', а не 'PChar'?
malor вне форума Ответить с цитированием
Старый 31.05.2007, 13:16   #15
2face
Пользователь
 
Регистрация: 23.05.2007
Сообщений: 24
По умолчанию

попробуй оставить stpost string'ом
stpost:=pchar(StrCat(pchar(stpost), PAnsiChar('XML_Query=<?xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>')));
2face вне форума Ответить с цитированием
Старый 31.05.2007, 13:22   #16
mihaild
Пользователь
 
Регистрация: 31.05.2007
Сообщений: 10
По умолчанию

Надо ShellExecute (Handle,nil,'cmd.exe',PChar('/k' + c), nil,SW_NORMAL);
А то в качестве параметра передаёте string+PAnsiChar - а это автоматически преобразуется в string.
mihaild вне форума Ответить с цитированием
Старый 31.05.2007, 13:40   #17
malor
Форумчанин
 
Регистрация: 23.05.2007
Сообщений: 151
По умолчанию

>>попробуй оставить stpost string'ом
У меня эти строки находятся в блоке try...except..., и со строки stpost:=pchar(StrCat(pchar(stpost), PAnsiChar('XML_ Query=<?xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>'))); отладчик переходит на обработку исключения On E: Exception do и т.д.

Аналогично он уходил на обработку исключения если строка выглядела так:stpost:=StrCat(stpost,PAnsiChar('XM L_ Query=<?xml version="1.0" encoding="windows-1251"?><root><auth uid="1" pwd="password" vp="2"/>')); при stpost:PAnsiChar;
malor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из string в integer MAKEDON Помощь студентам 9 29.07.2008 15:38
Проблема со String ilya_cska Общие вопросы C/C++ 2 09.03.2008 13:39
Case из STRING. HELP! Altera Компоненты Delphi 12 24.02.2008 12:17
string medik Помощь студентам 12 29.10.2007 17:33
Как укоротить string UnD)eaD)Snake Общие вопросы Delphi 6 04.09.2007 17:18