Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> msvc2008 bug??? 
:(
    Опции темы
dumb
Дата 7.12.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 3
Всего: 158



чем бы не тешилось...
сам же запутаешься в этом г..не(иных слов не подбирается) через неделю.
остается надеяться, что эти извращения не имеют отношения к чему-то, чем будут пользоваться люди.
PM MAIL   Вверх
GoldFinch
Дата 7.12.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

Репутация: 6
Всего: 26



реализует "ленивые" импорты
да там же все понятно, что он делает, всего-то десяток строчек
PM MAIL ICQ   Вверх
GoldFinch
Дата 7.12.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

Репутация: 6
Всего: 26



dumb, это хорошо, что ты не понял этого кода. Он призван вызывать священный трепет, а то и ужас, перед асмом у тех ламеров, кто полезет с ИДА узнавать какие импорты юзаются в моей проге. Хотя код крайне тривиален, я думаю найдется немало людей которые испугаются увидев это, и не станут копать мою прогу.
=)
PM MAIL ICQ   Вверх
Kallikanzarid
Дата 7.12.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

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



Цитата

Хотя код крайне тривиален, я думаю найдется немало людей которые испугаются увидев это, и не станут копать мою прогу.

Главное, чтобы босс был не в их числе  smile 
PM MAIL   Вверх
J0ker
Дата 7.12.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(GoldFinch @  7.12.2008,  10:29 Найти цитируемый пост)
J0ker, я привык к тому что когда я пишу на асме, я пишу как я хочу, а не так как того хочет конпилятор. может у меня ограничения на длину кода, мне тогда этот фрейм впихнуть некуда, более того, он в ряде случаев просто не нужен.

в документации оговорена спецификация naked - во-первых
во-вторых - как ты хочешь, что-бы компилятор посчитал аргументы? он же не знает твои манипуляции со стеком до использования аргументов - ИМХО вполне оправдано что расчет аргументов опирается на предположение, что фрейм установлен - иначе никак
если не нужен фрейм - считай аргументы сам - компилятор это сделать иначе не может

Добавлено через 3 минуты и 10 секунд
Цитата(GoldFinch @  7.12.2008,  17:46 Найти цитируемый пост)
перед асмом у тех ламеров, кто полезет с ИДА 

несколько противоречивое высказывание  smile 

Это сообщение отредактировал(а) J0ker - 7.12.2008, 19:07


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



****


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

Репутация: 6
Всего: 26



J0ker, впринципе логично, что компилятор не разбирает асм-код
хотя могли бы это и сделать... не бином ньютона =\
PM MAIL ICQ   Вверх
J0ker
Дата 7.12.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(GoldFinch @  7.12.2008,  19:34 Найти цитируемый пост)
хотя могли бы это и сделать... не бином ньютона =\ 

бином
предположим, ты выделяешь на стеке массив с размером, взятым из одного из параметров - в стиле C99


Это сообщение отредактировал(а) J0ker - 7.12.2008, 19:41


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



****


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

Репутация: 6
Всего: 26



J0ker, хм... ну тогда стоило бы выдавать ошибку компиляции, или хотябы явно написать об этой "фиче" в документации %)
PM MAIL ICQ   Вверх
J0ker
Дата 7.12.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(GoldFinch @ 7.12.2008,  19:45)
J0ker, хм... ну тогда стоило бы выдавать ошибку компиляции, или хотябы явно написать об этой "фиче" в документации %)

http://msdn.microsoft.com/en-us/library/5ekezyy2(VS.80).aspx
http://msdn.microsoft.com/en-us/library/4d12973a(VS.80).aspx
Цитата

Frame pointer optimization (the /Oy compiler option) is not recommended, but it is automatically suppressed for a naked function.


Это сообщение отредактировал(а) J0ker - 7.12.2008, 20:25


--------------------
user posted image
PM MAIL   Вверх
GoldFinch
Дата 8.12.2008, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

Репутация: 6
Всего: 26



раз уж речь пошла о пользе naked, подскажите как тут избавиться от асма:

Код

//hook #1
void __stdcall OnRenderHook(FPlayerSceneNode *PlayerSceneNode,FRenderInterface *RenderInterface) ;
void __thiscall FPlayerSceneNode::Render(FRenderInterface *);
__declspec(naked) void __stdcall Hook_FPlayerSceneNode_Render(FRenderInterface *) 
{_asm{
    push dword ptr [esp+4]//arg1
    push ecx
    push dword ptr [esp+4]//arg1
    call FPlayerSceneNode::Render
    call OnRenderHook
    ret 4
}}

//hook #2
void __thiscall ALineagePlayerController::PlayerCalcView(class AActor *, class FVector *, class FRotator *);
__declspec(naked) void __stdcall Hook_ALineagePlayerController_PlayerCalcView(class AActor *, class FVector *, class FRotator *) 
{_asm{
    mov eax,dword ptr [esp+0xC]//arg3
    mov eax,dword ptr [eax+4]//2nd field
    mov dword ptr [g_Direction],eax
    jmp ALineagePlayerController::PlayerCalcView
}}

PM MAIL ICQ   Вверх
mes
Дата 8.12.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



 smile в упор не понимаю, почему не сделать делегацию средствами языка (cpp), a нужно прибегать к низкоуровневым непереносимым средствам ... smile 



--------------------
PM MAIL WWW   Вверх
Kallikanzarid
Дата 8.12.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

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



GoldFinch, ur crazy  smile 
Пожалуйста, скажи, что это профайлер показал, что необходимо вручную передавать параметр через регистр. Или использовать глобальную переменную. Или вручную расчитывать смещение поля в объекте (ничего, кстати, что это нарушает инкапсуляцию?). Не говоря уже о том, что рекомендуется передавать объекты по ссылкам, а не по указателям. Я начинаю боятся за будущее Земли. 

ЗЫ: твой код неэффективен. Ты два раза заносишь в стек один и тот же параметр. Настоящий Программист бы сделал так, чтобы функция Render после вызова оставляла его в стеке, а функция OnRender - использовала повторно. Ты неэффективен!

Это сообщение отредактировал(а) Kallikanzarid - 8.12.2008, 11:08
PM MAIL   Вверх
dumb
Дата 8.12.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 3
Всего: 158



тьфу ты. неужели вместо того, чтобы нормально описать ситуевину, мол "развешиваю хуки в игрушке", надо было "выеживаться" в потугах самоутверждения? этот вопрос риторический.

в данном случае избавляться от асма imho особого смысла нет - тебе нужно сделать совершенно определенные низкоуровневые трики, и если их пытаться переписать на С, получишь кучу неоднозначностей и условностей, не говоря уже о том, что код получится, скорее всего, гораздо менее "прозрачным".
так же как и нет смысла вкрячивать в высокоуровневый код примитивную защиту извращаясь с дефайнами и вставками - для снятия оной вовсе не обязательно, чтобы механизм понимал любой "ламер" - достаточно одного немного продвинутого заинтересованного человека.

mes, Kallikanzarid, вы не учитываете того, что работа идет с готовым бинарным кодом. товарищ путем предоставления обрывков информации по сути провоцирует нас на такие бессмысленные(в конечном счете) комментарии.
PM MAIL   Вверх
Kallikanzarid
Дата 8.12.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 240
Регистрация: 9.11.2008

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



Чьорт, меня затроллил закомплексованный труъ-ассемблерщег  smile *ушел пить йад*
PM MAIL   Вверх
ksili
Дата 8.12.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(Kallikanzarid @  7.12.2008,  18:26 Найти цитируемый пост)
Если бы ты писал под мобильники, то юзал бы явно не студию

Прикинь, я пишу под WinMobile и использую-таки студию


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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