Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Incompatible types, string & WideString 
:(
    Опции темы
aktuba
Дата 9.2.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Вот код основной программы:
Код

procedure Get(const AUrl: WideString; ATimeout: Integer; AProc: TRequestProc); stdcall; external '.\engine\unet.dll';
...
procedure StartRequest(AHandle, AMsg: Cardinal; AData: TDataType); stdcall;
var
  lUrl: WideString;
begin
  FHandle := AHandle;
  FMsg := AMsg;
  FRequest := '';
  FRequestCode := -1;
  lUrl := 'http://www.host.ru/index.do?' + '[I]длинная строка параматров[/I]';
  Get(lUrl, 60, EndRequest);
end;


Вот код dll:
Код

procedure Get(const AUrl: WideString; ATimeout: Integer; AProc: TRequestProc); stdcall;
...
procedure Get(const AUrl: WideString; ATimeout: Integer; AProc: TRequestProc);  stdcall;
var
  lThread: THTTPThread;
begin
  lThread := THTTPThread.Create(True, 'get', AUrl, nil, ATimeout, AProc);
  lThread.FreeOnTerminate := True;
  lThread.Resume;
end;


Почему компиляция программы прерывается ошибкой Incompatible types: "string" and "WideString"?


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Не совпадение типом ты наверное переменной типа WideString пытаешься присвоить String попробуй 
Код

WideString:=PChar(String);

А лучше используй тип PChar
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



ivan219, так я же привел код... Проблема возникает в строке
Код

Get(lUrl, 60, EndRequest);


Не пойму...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



И ещё может эту строку объявить как константу
Код

const
 lUrl = 'http://www.host.ru/index.do?' + '[I]длинная строка параметров[/I]';


Добавлено @ 19:31 
Просто Dll и разные там String не дружат используй PChar

Это сообщение отредактировал(а) ivan219 - 9.2.2007, 19:29
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



ivan219, константа не подходит, т.к параметры строки формируются динамически.
Цитата

Просто Dll и разные там String не дружат используй PChar


Ну, здесь ты не прав =))). Я использую FastShareMem и они прекрасно дружат  smile 


--------------------
user posted image
PM MAIL WWW Skype   Вверх
skyboy
Дата 9.2.2007, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 4
Всего: 260



THTTPThread.Create принимает аргументом widestring или shortstring aka string?
PM MAIL   Вверх
ivan219
Дата 9.2.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Почему динамически я что-то из твоего кода это не вижу smile 

Хотя проблема наверное в другом smile 

Это сообщение отредактировал(а) ivan219 - 9.2.2007, 19:42
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



skyboy, widestring.


ivan219, ты так и не понял!!! как я в const пропишу строку, когда у меня параметров еще нет? И не буду я использовать PChar!


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



FastShareMem если строки длиннее 255 символов то это оправданно а если нет PChar с головой хватит ИМХО.
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



ivan219
Цитата

Почему динамически я что-то из твоего кода это не вижу


Код

lUrl = 'http://www.host.ru/index.do?' + 's1=' + str1 + '&s2=' + s2 + ...


Так понятнее?

Цитата

FastShareMem если строки длиннее 255 символов то это оправданно а если нет PChar с головой хватит ИМХО. 


А почему я по твоему написал длинная строка параметров???? 

Это сообщение отредактировал(а) aktuba - 9.2.2007, 19:46


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Хорошо попробуй везде заделать String может проблема в этом.

Добавлено @ 19:48 
Цитата(aktuba @  9.2.2007,  19:45 Найти цитируемый пост)
Так понятнее?

Цитата(aktuba @  9.2.2007,  19:45 Найти цитируемый пост)
А почему я по твоему написал длинная строка параметров???? 

Другое дело теперь ясно  smile 
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

Хорошо попробуй везде заделать String может проблема в этом.


Вот мне-то как-раз нужно обратное! Мне везде необходимо WideString использовать!


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



А ошибка возникает при компиляции EXE файла smile 
PM MAIL ICQ   Вверх
aktuba
Дата 9.2.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата

А ошибка возникает при компиляции EXE файла


Да.


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ivan219
Дата 9.2.2007, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



А попробуй вот так что будет smile 
Код

Get('http://www.host.ru/index.do?' + '[I]длинная строка параметров[/I]', 60, EndRequest);

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0916 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.