Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777 (+6 невидимых) |
![]() |
eXeL@B —› Программирование —› Lcc Win32 - как избавиться от хлама и установить свою точку входа? |
Посл.ответ | Сообщение |
|
Создано: 31 июля 2008 15:37 · Личное сообщение · #1 Доброго времени суток! [Запостил также данный вопрос на васм, но там ответов пока нет... может здесь кто знает] Вопрос в следующем. Вот код моего простейшего хелловорда: #include <windows.h>
Размер exe получается нормальный - 3.1 кб, но вот пихает lcc туда много лишнего: mov eax, large fs:0
Плюс ко всему в импорте лишнего напихано ![]() в VC подобные траблы просто решаются (изменяем точку входа + отключаем стандартную либу), а вот как подобное сотворить с LCC? ЗЫ Код пишется в среде RadASM, lcc 3.2 Зарание спасибо. ![]() |
|
Создано: 31 июля 2008 21:15 · Личное сообщение · #2 Проблема решена. На самом деле lcc (как и borland C++/C++ Builder) не позволяет менять точку входа (кроме случая с DLL), а посему напишим свой startup-код без всякого мусора. стандартный стартовый код для сборки EXE лежит в файле lcccrt0s.obj. важный для нас кусок кода (из IDA):
Самый важный для нас момент - стартовая ф-ия должна носить имя _mainCRTStartup. Всё. Можно приступить к написанию собственного начального кода. .386P
К0мпелируем это дело в masm32. Получив obj-файл переименовываем в lcccrt0s.obj кидаем в папку с либой lcc (C:\lcc\lib). Вот так вот. Тему закрываю ![]() |
![]() |
eXeL@B —› Программирование —› Lcc Win32 - как избавиться от хлама и установить свою точку входа? |
Эта тема закрыта. Ответы больше не принимаются. |