|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.01.2007, 18:21 | #11 |
Пользователь
Регистрация: 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);
БОГ ЕСТЬ СОВЕСТЬ...
|
31.05.2007, 12:09 | #12 |
Форумчанин
Регистрация: 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. Как быть? |
31.05.2007, 12:24 | #13 |
Пользователь
Регистрация: 23.05.2007
Сообщений: 24
|
StrCat(Dest: PChar; const Source: PChar): PChar;
Поэтому и не работает. Переведи string в PAnsiChar. См. выше. |
31.05.2007, 12:57 | #14 |
Форумчанин
Регистрация: 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'? |
31.05.2007, 13:16 | #15 |
Пользователь
Регистрация: 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"/>'))); |
31.05.2007, 13:22 | #16 |
Пользователь
Регистрация: 31.05.2007
Сообщений: 10
|
Надо ShellExecute (Handle,nil,'cmd.exe',PChar('/k' + c), nil,SW_NORMAL);
А то в качестве параметра передаёте string+PAnsiChar - а это автоматически преобразуется в string. |
31.05.2007, 13:40 | #17 |
Форумчанин
Регистрация: 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; |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Из 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 |