Всем привет! Знатоки подскажите есть ли функции API чтобы перевести число в строку, или что то связанное с этим. Цель вывести число в консоль на экран
А зачем тебе АПИ? Сам переведи! Пользы больше будет! Суть проста дели число на 10 бери остачу от деления и добавляй к ней 48 это будет код символа этот символ загоняй в начало строки, и так делаешь до тех пор, пока целая часть от деления не будет = 0 вот типа так: i = 1234;//<<Число которое нужн перевести в строку; Код (Text): repeat s := chr(i mod 10 + 48) + s; i := i div 10; until (i div 10 = 0);
Код (Text): ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« .486 ; force 32 bit code .model flat, stdcall ; memory model & calling convention option casemap :none ; case sensitive include \masm32\include\user32.inc ltoa PROTO :DWORD,:DWORD .code ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« ltoa proc lValue:DWORD, lpBuffer:DWORD comment * ------------------------------------------------------- convert signed 32 bit integer "lValue" to zero terminated string and store string at address in "lpBuffer" ------------------------------------------------------- * jmp @F fMtStrinG db "%ld",0 @@: invoke wsprintf,lpBuffer,ADDR fMtStrinG,lValue cmp eax, 3 jge @F xor eax, eax ; zero EAX on fail @@: ; else EAX contain count of bytes written ret ltoa endp ; ««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««« end
mrcrown прав ... проще написать самому посмотрел статьи получилось , работает функция , invoke wsprintfA, BUF, FORM, EAX посмотрел под отладчиком, такая ж-о, то игра со стеком, то or, и деление и умножение проще написать самому