Привет всем. Вот код Код (Text): ; Листинг 1.1.3. Процедура которого proc1 будет вызываться ; из основного модуля .586p ; плоская модель памяти .MODEL FLAT, STDCALL PUBLIC PROC1 _TEXT SEGMENT PROC1 PROC MOV EAX, 1000 RET PROC1 ENDP _TEXT ENDS END Создал из него obj. Потом создал из него одного lib'у. lib /out:lib1.lib 1.1.3.obj Потом при связке с вот этим кодом Код (Text): ; Пример использования библиотеки .586p ; плоская модель памяти .MODEL FLAT, STDCALL ;-------------------------- ;протип внешней процедуры EXTERN PROC1@0:NEAR INCLUDE LIB1.LIB ; сегмент данных _DATA SEGMENT _DATA ENDS ; сегмент кода _TEXT SEGMENT START: CALL PROC1@0 RET; выход _TEXT ENDS END START при вызове ml вылетает с ошибкой 1)syntax error: ! 2) invalid character in file . Удаляю либу - пишет не найдена либа. В чём дело не пойму. Ругается на первый символ - восклицательный знак. При просмотре либы в хексе, так и есть, первый идёт этот символ.
В первом коде 'PUBLIC PROC1' - лишнее. 'proc' делает публик автоматически. При просмотре второго кода не нашел ни одного '!'. Нельзя-ли чуть подробнее ошибку. Только-что проверил ваш код. Закомментил только 'INCLUDE LIB1.LIB' (следует писать 'INCLUDELIB LIB1.LIB' - наверно тут ваша ошибка) во втором коде. Все ОК.