| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm для начинающих > Проблемы с MASM |
| Автор: Proger89 13.12.2007, 19:11 | ||
| Возникла не понятная проблема с компиляцией и сборкой программы под MASM ( раньше я все делал в Tasm-e). Никак не могу найти нужные ключи для компиляции и сборки программы под Win32. Вот программа(Название исходника - "test.asm"):
Я пишу ml -c test.asm и link test. Вывод в консоли: LINK: Fatal Error LNK1561: entry point must be defined Помогите пожалуйста кто может. Заранее благодарен. |
| Автор: anwe 13.12.2007, 21:31 | ||
Точка входа не определена. Прописан прототип функции, обращение к ней, а где она сама?? Нет точки входа в ExitProcess. Добавь саму функцию:
|
| Автор: MAKCim 13.12.2007, 22:53 |
| anwe, вообще насколько я знаю ExitProcess - это API функция Windows, определенная где-то в DLL |
| Автор: anwe 13.12.2007, 23:03 |
| MAKCim, а посмотри, здесь нет подключение библиотек. В этом коде автор использует свою интерпретацию этой функции, которую может назвать как хочет. Это также косвенно подтверждается словами: |
| Автор: MAKCim 13.12.2007, 23:15 | ||
а на этапе компиляции и не надо ничего подключать библиотека необходима для компоновки объектных файлов кроме того, как видишь, ошибки типа
тут явно нет |
| Автор: anwe 13.12.2007, 23:28 |
| Но ведь ошибка линковщика а он проводит же компановку, используя таблицу имен. А ошибка все-таки в этом: нет входа в нужную процедуру, так как она и не описана. |
| Автор: anwe 15.12.2007, 23:27 | ||
Это-то верно. Но можно не использовать inc'и и вышеописанный код также верный. К тому же автор ранее пользовался Tasm'ом. Другими словами этот код тоже верный:
|
| Автор: dumb 16.12.2007, 04:12 |
| anwe, что ты пытаешься доказать? и какой смысл в приведенном тобой, уж прости, бредовом коде? |
| Автор: MAKCim 16.12.2007, 10:34 |
| anwe, может он и верный, но делает он не то, что хотел Proger89 |
| Автор: anwe 16.12.2007, 10:51 |
| Неужели обязательно надо назвать функцию WinMain, чтобы дать понять, что можно и так написать? |
| Автор: MAKCim 16.12.2007, 10:55 | ||
в вашем коде есть вызов API-функции завершения процесса? |
| Автор: Proger89 22.12.2007, 23:53 | ||||
| Извините, что долго не отвечал, не работал Интернет. За этот промежуток времени я уже успел исправить ошибку. ExitProcess - WinAPI функция, для коректной работы нужно было подключить библиотеку kernel32.lib, тоесть дописать:
а потом запустить следуюший bat-ник:
и всё вот в чем была проблемма. Как мне показалось компоновшик и ассемблер от Borland был гораздо лучше реализован. Они по крайней мере правильно указывали причину ошибок. Спасибо всем кто пытася помочь |