Если кто сможет растолковать, буду благодарен. 1. создаем следующий исходник: .386 .model flat,stdcall option casemap:none include d:\masm32\include\windows.inc include d:\masm32\include\user32.inc include d:\masm32\include\kernel32.inc includelib d:\masm32\lib\user32.lib includelib d:\masm32\lib\kernel32.lib .data Sl db "\",0 ; Слэш msk_1 db "copy.exe",0; Имя файла .data? buf_1 db 150 dup (?) buf_2 db 150 dup (?) .code start: invoke GetSystemDirectory,addr buf_1 sizeof buf_1 invoke lstrcat,addr buf_1,addr Sl invoke lstrcat,addr buf_1,addr msk_1 invoke GetModuleFileName,0,addr buf_2,sizeof buf_2 invoke CopyFile,addr buf_2,addr buf_1,0 end start 2. делаю "батник" компиляции с такими строками: ML /c coff /cp test.asm LINK /subsystem:windows test.obj pause 3. при компиляции пишет ошибку: LINK: warning LNK4089:all reference to "user32.dll" discarded by /OPT:REF вот все понять не могу где ошибка и в чем дело то..? помогите если можете.. п.с. ОС winXP. Masm32 v8.
Это не ошибка, это предупреждение. Означает что не используются функции user32.dll, поэтому в импорт она не попадёт.
т.е. если я правел но понял, это просто в качестве информации к сведенью... исключил использование user32.dll сообщение больше не выводится, но как и раньше не создается сам исполнительный модуль (файл exe)? Пробывал чисто логически найти ошибочную строку. и получился интересный результат.. Если убрать из кода третий или четвертый вызывы функций API то exe-шник создается. проверил еще раз првельность вызыва этих функций вроде все правельно..но упорно с ними компилятор не создает exe-шника и не указывает на какие-либо ошибки. Если нужны сами файлы могу прикрепить.
Единственное, что поменял: Всё компилится. Молча, без ошибок или предупреждений. Исполняемый модуль… ну, в папке "d:\masm32\bin\" искать не пробовали? offtop: Злобный вирустрояна пишете?
Данные опечатки возникли на форуме..в исходнике их нет. И чтоб не парится с поиском файлов я все делаю в отдельной папке пенеся все нужное в нее. в прикрепленном архиве в папке test запускаю батник и в ней же должен появится ехе-шник.
нет в создоваемой прге в буфера набиваются другие пути..системная папка и путь активации взят в качестве примера, чтоб мАксально сократить код не загромаждая его неотносящееся к делу вычисления.
Вот это да...точно..только мой антивирь молча его блакировал.. Отключил антивиря и все компильнусь.. спасибо вам, что помогли разобратся. п.с. скоро прогу не напишешь т.к. кусок ее может походить на какой то вирь..