Блин, весь извелся, никак не пойму почему компилятор не видит функции. При попытке откомпилить выдает следующее: Исходный текст:
А че на него обращать то? Все буква в букву, как и там. Статью читал уже. Либо в упор не вижу (тогда может напишешь в чем конкретно косяк?), либо дело не в этом.
Подсказка: extrn __imp__ExitProcess@4 : dword ExitProcess equ __imp__ExitProcess@4 В книжке, если читать внимательнее приведены inc файлы. Возможно в новом издании еще больше ошибок наделали.
dZentle_man include /masm32/include/kernel32.inc include /masm32/include/user32.inc include /masm32/include/shell32.inc includelib \masm32\lib\shell32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.inc вот так напиши в начале...
agrischuk, спасибо, помогло. Насчет .inc знаю, но мой компилятор выдает на них сотню ошибок "A2119: language type must be specified", поэтому я решил в этом случае задать все вручную, чтобы хотя бы понять как оно работает. В книжках че попало пишут. Во времена Зубкова еще даже 98-й винды не существовало в природе, поэтому мой компилятор может не поддерживать его пример. У Iczelion'а все завязано на invoke, но invoke особого понимания как все происходит на самом деле не дает - случись ошибка и я не буду знать где ее искать. Собственно на invoke я тоже пробовал завязать, но так ничего и не вышло. В общем сейчас компилятор функции видит, так что по теме мне помогли. Всем спасибо за внимание
dZentle_man посмотри здесь можно сразу писать без "ExitProcess equ __imp__ExitProcess@4" push ebx call _imp__ExitProcess@4 тогда достаточно "includelib \masm32\lib\kernel32.lib" а строка "include \masm32\include\kernel32.inc" не нужна -- это для вызова invoke
Ну я в общем то выбрал средний вариант - в сегменте данных определил импорт функции через equ, в обход .inc файлов. Способ вполне прозрачный и удобнее, чем писать полное имя функции в сегменте кода. За ссылку спасибо, раскурю на досуге.