Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 17.11.2011, 01:26   #11
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
ещё какая-то фигня с MySQL
дай как догадаюсь... дллко просит поинтеры 4 байта.. а ты подсовываеш 8.

Цитата:
Даже java сборки довольствутся 3-4 ГБ даже с геодатой при маленьком онлайне. ))
+ никто не говорит что это должен быть 1 процесс.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 17.11.2011, 02:36   #12
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

сервер wot на дельфи зафигачте.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 17.11.2011, 04:53   #13
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
supernewbie, ты таки не оставил попытку написать свой delphi l2 сервер? Зачем тебе так много памяти в процессе? Даже java сборки довольствутся 3-4 ГБ даже с геодатой при маленьком онлайне. ))
эт на будущее, малоли, вдруг у меня там будет 100к онлайна!!!11

Добавлено через 42 секунды
Цитата:
Сообщение от alexteam Посмотреть сообщение
дай как догадаюсь... дллко просит поинтеры 4 байта.. а ты подсовываеш 8.
не, не в этом была проблема, почему-то в компиляторе нельзя Connected:=true; сделать а в самом процессе можно, забил на это

Добавлено через 2 часа 8 минут
происходит эксцепшн при вызове:
delphi Код:
var   ar:array [word] of byte; procedure check(a:array of byte; len:word); begin   end; begin check(ar,1000); end.

а вот так не происходит:

delphi Код:
var   ar:array [word] of byte; procedure check(const a:array of byte; len:word); begin   end; begin check(ar,1000); end.

в чем прикол?
__________________
Начало.

Последний раз редактировалось supernewbie, 17.11.2011 в 04:54. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 17.11.2011, 17:20   #14
Новичок
 
Регистрация: 24.11.2010
Сообщений: 9
Сказал Спасибо: 3
Имеет 2 спасибок в 2 сообщенях
etoken пока неопределено
По умолчанию

мб потому что при конст параметре нет копирования буфера ?
насколько я помню в дельфи через конст организована передача указателя, не ?

З.ы. если скранил - каюсь )
etoken вне форума   Ответить с цитированием
Старый 17.11.2011, 17:31   #15
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Цитата:
Сообщение от etoken Посмотреть сообщение
мб потому что при конст параметре нет копирования буфера ?
насколько я помню в дельфи через конст организована передача указателя, не ?

З.ы. если скранил - каюсь )
передача с директивой const аналогична передаче с var только с запретом изменять передаваемую переменную. Тоесть переменная передается по ссылке.

Ошибка в первом случае скорее всего потому что delphi по какой то причине неправильно определяет размер передаваемого массива. ХЗ почему.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 17.11.2011, 21:11   #16
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

хех, баг репорт чтоль накатать в ембаркадеро
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 17.11.2011, 21:47   #17
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

supernewbie, Yegor, проблема скорее всего не в том что дельфи не может размер массива определить, а в том что в первом случае в стек будет положен весь массив ar, и в стеке по видимому не хватает места (хотя 65 килобайт по идее в него бы должно было поместиться достаточно спокойно), хотя без текста ошибки ничего сказать точно нельзя.
Вот никак не могу понять, почему народ как минимум пытающийся строить из себя программистов (я уж молчу про тех кто ими и является), когда просит помочь избавиться от ошибки, очень редко предоставляет текст ошибки. Ладно ещё когда текст ошибки это "Access violation...", он как правило ни о чем не говорит если нет стека вызовов, но блин ошибки часто и другие бывают, и весьма информативные...
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 17.11.2011, 21:57   #18
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Exception class $C0000005 with message 'c0000005 ACCESS_VIOLATION'

и кстати это тока на 64 битном приложении, на 32 нормалды
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 17.11.2011, 21:57   #19
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
var
ar:array [word] of byte;

procedure check(const a:array of byte; len:word);
begin

end;

begin
check(ar,1000);
end.
мне когдато дестр надавал по шапке за то что в стек хлама кучу ложу.. теперь пытаюсь везде где это критично передавать "4 байта"
если ты не хочешь каждый раз при изменении длинны массива передергивать память то сделай хотябы воттак

delphi Код:
type   PData = ^TData;   TData = packed record len:word; data: array[word] of byte; end; procedure check(p:pdata); begin   while someshitcounter < p^.len do     dosomeshit(p^.data[someshitcounter]); end; var ar : tdata; begin check(ar, 100)
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 17.11.2011, 22:02   #20
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

ваще че это за C0000005 она часто че-то вылетает в местах где раньше все работало

Добавлено через 3 минуты
Цитата:
Сообщение от alexteam Посмотреть сообщение
мне когдато дестр надавал по шапке за то что в стек хлама кучу ложу.. теперь пытаюсь везде где это критично передавать "4 байта"
если ты не хочешь каждый раз при изменении длинны массива передергивать память то сделай хотябы воттак

delphi Код:
type   PData = ^TData;   TData = packed record len:word; data: array[word] of byte; end; procedure check(p:pdata); begin   while someshitcounter < p^.len do     dosomeshit(p^.data[someshitcounter]); end; var ar : tdata; begin check(ar, 100)
но ведь если передавать через const\var то идёт тоже самое, ну т.е. передается только поинтер или нет?
__________________
Начало.

Последний раз редактировалось supernewbie, 17.11.2011 в 22:02. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:16.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!