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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен коментарий кода, Только без шума........... :) 
:(
    Опции темы
GIK
Дата 8.12.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

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



Всем доброго времени суток господа программисты.
Прокоментируйте пожалуста привиденный ниже код. Я его взял из официальной статейки smile  которая была настряпана по английски, а у меня с английским пока не очень гуд.
Вобщем, что делают каждый из операторов в этом коде  (вроде еще ассемблер припаян?)

Код

#include <windows.h> 

#pragma comment(linker, "-export:CleanupA=_CleanupA@16­") 

extern "C" void CALLBACK CleanupA(HWND, HINSTANCE, PSTR, int) 

    static MEMORY_BASIC_INFORMATION mbi; 
    VirtualQuery(&mbi, &mbi, sizeof mbi); 
    PVOID module = mbi.AllocationBase; 

    CHAR buf[MAX_PATH]; 
    GetModuleFileName(HMODULE(module), buf, sizeof buf); 

    __asm 
    { 
        lea     eax, buf 
        push    0 
        push    0 
        push    eax 
        push    ExitProcess 
        push    module 
        push    DeleteFile 
        push    FreeLibrary 
        ret 
    }
}



--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 8.12.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(GIK @  8.12.2006,  14:32 Найти цитируемый пост)
у меня с английским пока не очень гуд.

А у меня с ассемблером.
Но похоже эта функция  выгружает  dll и удаляет эту dll c диска



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
W4FhLF
Дата 8.12.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

Репутация: 20
Всего: 121



Нет. Это пример самоудаления. Только вот работал этот древний способ ещё в 9х, в NT4/2k/xp ессно работать не будет, ну а насчёт комментариев ассеблерной вставки, там и так вроде всё ясно, идёт последовательный вызов нескольких АПИ, думаю по их именам(push кладёт параметры, передаваемые функциям, в стек, а call вызывает API-функцию) не трудно догадаться, что это за функции.




Это сообщение отредактировал(а) W4FhLF - 8.12.2006, 15:06


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GIK
Дата 8.12.2006, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

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



Цитата(W4FhLF)

Только вот работал этот древний способ ещё в 9х,

А переделать под современность можно?


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
JackYF
Дата 8.12.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Цитата(W4FhLF @  8.12.2006,  15:05 Найти цитируемый пост)
а call вызывает API-функцию


А где в коде ты увидел call? По-моему, там одни push.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
W4FhLF
Дата 8.12.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

Репутация: 20
Всего: 121



Цитата

А переделать под современность можно?


http://www.rsdn.ru/article/baseserv/QnADelExe.xml


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
GIK
Дата 9.12.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый человек
**


Профиль
Группа: Участник
Сообщений: 985
Регистрация: 3.6.2005
Где: я только не небыв ал

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



W4FhLF, спасибо за ссылку smile , очень пригодилась 


--------------------
Математика=>пиво=> програмирование, три вещи последовательны и совместимы !!!
Программирование - это не деятельнось! Программирование - это состояние души!
Бог - самый крутой программист.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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