Вторник, 26 Ноября 2024, 04:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с массивами и типами данных
AGENTX001Дата: Суббота, 02 Июня 2012, 23:16 | Сообщение # 1
почётный гцупер
Сейчас нет на сайте
Добрый вечер ув. товарищи геймдевлоперы! biggrin Дело в том, что я пишу сервер на делфи и возникла очень странная проблема - когда клиент отсылает серверу логин, тот его присваивает всем юзерам на сервере. Код. Раньше подобной проблемы не было, она появилась, после того как я попытался использовать собственный тип данных для клиентов (раньше для этой цели использовалось несколько массивов: один для сокетов, второй для логинов и т. д.). Надеюсь, что мне помогут happy
AGENTX001Дата: Суббота, 02 Июня 2012, 23:41 | Сообщение # 2
почётный гцупер
Сейчас нет на сайте
ап
GECKДата: Воскресенье, 03 Июня 2012, 09:56 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
А если логин хранить не в pchar, а перегнать в string?

Загадочная штука этот 39.dll - читаем байт, а он возвращает double o_O

Добавлено (03.06.2012, 09:56)
---------------------------------------------
Долбанная невнимательность >_<

Вопрос - функция String_read использовалась и раньше? Что мешает возвращать из нее сразу string?


Всё гениальное просто. И хреново работает.
AGENTX001Дата: Воскресенье, 03 Июня 2012, 11:01 | Сообщение # 4
почётный гцупер
Сейчас нет на сайте
Quote (GECK)
опрос - функция String_read использовалась и раньше? Что мешает возвращать из нее сразу string?

PChar удобнее в работе.
AGENTX001Дата: Воскресенье, 03 Июня 2012, 11:02 | Сообщение # 5
почётный гцупер
Сейчас нет на сайте
Quote (GECK)
Загадочная штука этот 39.dll - читаем байт, а он возвращает double o_O

Угу:))
AGENTX001Дата: Воскресенье, 03 Июня 2012, 11:05 | Сообщение # 6
почётный гцупер
Сейчас нет на сайте
Quote (GECK)
Что мешает возвращать из нее сразу string?

Сделал, что бы эта функция возвращала string, и ты не поверищь - РАБОТАЕТ!!! biggrin biggrin biggrin biggrin biggrin biggrin Буду не менее благодарен, если расскажите ПОЧЕМУ, оно так работает?)
GECKДата: Воскресенье, 03 Июня 2012, 14:13 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Quote (AGENTX001)
и ты не поверищь - РАБОТАЕТ!!!

Я бы больше удивился, если не заработало smile
PChar - это всего лишь указатель на первый символ строки, которая должна заканчиваться нулем("строка в стиле C"). Поэтому простое присваивание одного pchar другому - это не вполне корректно, так как данные, находящиеся по этому указателю, могут запросто измениться без твоего ведома. Видимо поле login у всего массива игроков ссылается на одну и ту же строку, в которую ты считываешь присланный пользователем логин.
String же обеспечивает выделение памяти и копирование содержимого строки в новое место. Все просто smile


Всё гениальное просто. И хреново работает.

Сообщение отредактировал GECK - Воскресенье, 03 Июня 2012, 14:14
AGENTX001Дата: Вторник, 05 Июня 2012, 00:44 | Сообщение # 8
почётный гцупер
Сейчас нет на сайте
GECK, пощади мои мозги!
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг