IceStudent, ок возьму во внимание(про название). Но обычно я даю темам нормальные названия, а тут так получилось...
Спасибо за команды, нашел хорошее описание, но странно что ни в одном include-файле этой команды нету, и ни в одном example идущих к masm32. Можно пример использования?
Ох.. atoi — это функция в msvcrt, её можно звать из msvcrtX.dll. Там ещё много всяких полезностей. Ты гуглить пробовал? MSDN штука хорошая.
Конечно смотрил в MSDN - там хорошее описание, только что мне с этой, например, msvcrt40.dll делать? Извлекать каким-то образом оттудова? Или я что-то нетак делаю, или даже гугл не нашел примеров использования: Результаты 1 - 10 из примерно 124 для atoi masm32 example Неужели так редко с этим сталкиваются в повседневной жизни. Я нашел альтернативный вариант, но он тянет разве что на оценку 3 по скорости выполнения. Вобщем берется окно Edit'a, вставляется туда текст, а потом через GetDlgItemInt^)). Можете объяснить мне как новичку, что нужно сделать с этой msvcrtX.dll для получения результата? Atol несовсем подходит, т.к. там при конвертации чисел от 0 до 500 и от 9000 и больше возникают пробемы...
ActioN msvcrt.dll - это динамическая библиотека и можно вызывать функции из неё как и из других библиотек (kernel32, user32). Фасм? Код (Text): format PE GUI entry start section '.code' readable writeable executable var db 0 sz12 db '12',0 start: push sz12 call [atoi] add esp,4 ; <-- функция atoi имеет соглашение cdecl. ; можно проще: cinvoke atoi,sz12 mov [var],al ret ... data import library msvcrt,'msvcrt.dll' import msvcrt,\ atoi,'atoi' end data масм: Код (Text): includelib msvcrt.lib ; подключаем библиотеку msvcrt.dll atoi PROTO C :DWORD ; описываем прототип функции (int __ cdecl atoi(char* string); start: invoke atoi,sz12 ; invoke по прототипу сама разберётся, какое соглашение mov val,al ret
IceStudent А почему msvcrt ? atoi\atol и "ещё много всяких полезностей" присутствуют и в ntdll и реализованы они там попроще, чем в msvcrt - по крайней мере в XP SP2
ActioN > "Atol.asm есть, а Atoi.asm нету" Похоже для 32-бит ее просто нет в природе, точнее сказать atoi = atol. В тех же msvcrt и ntdll atoi просто вызывает atol А вот почему у тебя atol из m32lib глючит непонятно, вроде стандартная реализация... IceStudent А ты видел реализацию atol в msvcrt ? Вроде вещь-то элементарная, а там такие дебри наворочены - про скорость можно сразу забыть, хотя для edit'а она может и никчему... PS: В 98SE ntdll есть, но куцая ~20кб и конечно без atol