Передаю по адресу в стеке - адрес смещается проголом. Как правильно передавать строку в функцию? Как правильно Вы это делаете? Код (Text): .data tperr db '%s, - ,%d',13,10,0 ;шаблон для вывода ошибок msg06 db 'Error in listen()',13,10,0 .code ... invoke OutputScreenError,ADDR msg07 ;Error in listen() ... OutputScreenError proc errmsg:DWORD local errorbuff[MAX_PATH] : BYTE lea esi, errmsg ; <------------------ТУТ Уже МУСОР invoke wsprintf,ADDR errorbuff,ADDR tperr,errmsg,eax invoke StdOut, addr errorbuff ret OutputScreenError Endp Спасибо.
да нет, правильно, просто не ту строку ухватил, ну пусть там Код (ASM): .data tperr db '%s, - ,%d',13,10,0 ;шаблон для вывода ошибок msg07 db 'Error in listen()',13,10,0
Что то мне подсказывает, что нужно не Код (Text): lea esi, errmsg а Код (Text): mov esi, errmsg так как у вас в errmsg уже находится адрес строки, и в esi окажется адрес локальной переменной (та, что в стеке).