![]() |
|
![]() ![]() ![]() |
|
nadge |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: нет Всего: 1 |
Доброе время суток!
Кусок программы (тестовый пока):
Далее в одной из функций пишу:
И в dwCodeSize получаю очень большое (явно неверное) значение. Идея взята (практически дословно) из BO2k, там прекрасно работает. Уже час бьюсь, так и не разобрался. Где ошибка? З.Ы. Подозреваю, что где-то в опциях компиляции, но никак не могу понять, где именно. Оптимизации вроде все по отключал. Среда: VS 2005. Это сообщение отредактировал(а) nadge - 3.1.2008, 01:14 |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
nadge,
с чего ты взял, что код функций располагается последовательно? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nadge |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: нет Всего: 1 |
MAKCim, я видел работающий пример, идентичный моему - http://www.bo2k.com/, файл исходника называется process_hop.cpp. (Здесь код не привожу т.к. все полностью как у меня.)
ОК, переформулирую вопрос иначе. Что нужно сделать, чтобы код располагался последовательно? Это сообщение отредактировал(а) nadge - 3.1.2008, 04:29 |
|||
|
||||
pompei |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.9.2007 Репутация: нет Всего: 6 |
Ни чё нельзя!!!
--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап. |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Единственное верное решение: использовать дизассемблер длин машинных инструкций:
Проект в аттаче. Присоединённый файл ( Кол-во скачиваний: 10 ) ![]() -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Это невозможно сделать в рамках стандартных компиляторов. Это сообщение отредактировал(а) W4FhLF - 3.1.2008, 08:37 -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: 6 Всего: 29 |
||||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Damarus, верно, поэтому перед использованием всё-таки надо пихнуть программу в дизассемблер
![]() -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
не знаю как в PE
но элемент таблицы символов ELF файла может содержать размер символа (функции) при обычных настройках компилятора/компоновщика эта информация генерируется в процессе работы программы ее можно получить кроме того, почему нельзя сделать так -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Кстати, ты наверное компилировал в debug? Попробуй в release. Ещё можно так:
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
W4FhLF,
забыл учесть размер leave (или ручного аналога) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
MAKCim, в моём случае его небыло.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
nadge |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: нет Всего: 1 |
Ну, в вышеприведенном BO2k как-то же сделали?
И так и так, хотя release не особо тщательно проверял. Перепроверю.
Кстати, хороший вариант. Только в моем случае довольно неудобный, т.к. функций таких будет штук 30, если не больше. |
||||||
|
|||||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: нет Всего: 121 |
Знаю только, что VS _обычно_ не меняет порядок, но даже если порядок не меняется между процедурами может идти мусор, так что этот способ не рулит.
Но разве удобней пихать туеву кучу пустышек вместо этого? Note: Зачем нужна "angy_StartOfHappyCode"? Можно сразу брать &HappyCode. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
nadge |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 12.11.2004 Репутация: нет Всего: 1 |
Предполагалось написать примерно так:
Т.е. весь код должен быть вместе, а не каждая ф-ция по-отдельности. В таком случае пустышки весьма удобны хотя бы для наглядности. |
||||
|
|||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |