wsprintf



Автор Ѐаиль Муниров задал вопрос в разделе Другие языки и технологии

FASM - ассемблер и получил лучший ответ

Ответ от Миоко Таканава[гуру]
Ошибки в строке, выделенной жирным шрифтом. Функция wsprintf принимает в качестве параметров значения чисел, а вы передаёте ей адреса этих чисел.
Остальные исправления - просто неточности.

format PE GUI 4.0
entry start
include \'win32a.inc\'
stack 200h

section \'.data\' data readable writeable

sector_per_cluster rd 1
byte_per_sector rd 1
free_clusters rd 1
total_clusters rd 1
disc_name db \'D:\\\',0
show_result rb 30
title_window db \"Доступное дисковое пространство\",0
szformat db \'%u,%u,%u,%u\',0

section \'.code\' code readable executable

start:
    invoke GetDiskFreeSpace,disc_name,sector_per_cluster,\\
        byte_per_sector,free_clusters,total_clusters

    invoke wsprintf,show_result,szformat,[sector_per_cluster],\\
        [byte_per_sector],[free_clusters],[total_clusters]
    invoke MessageBox,0,show_result,title_window,MB_OK

    invoke ExitProcess, NULL

section \'.idata\' import data readable
library kernel32,\'kernel32.dll\',user32,\'user32.dll\'
include \'api/kernel32.inc\'
include \'api/user32.inc\'

P.S. Почему бы вам не воспользоваться функцией ссылка? Она возвращет непосредственно объём свободного пространства в байтах.

Ответ от ?????? ????r?????u[гуру]
Меня смущает двойной слэш при указании диска, это не си.Зачем тип dq, нужно dd. желательно использовать getdiskfreespaceEx

Ответ от Irreproducible[гуру]
&gt; Зачем тип dq, нужно dd. DD - двойное слово (32 бита) DQ - четверное (64 бита) &gt; желательно использовать getdiskfreespaceEx согласен. подробности см. <a rel="nofollow" href="http://msdn.microsoft.com/en-us/library/win

Ответ от EBFE[гуру]
&gt;Результатом вызова winapi функции получается не то что должно быть Начните с проверки результатов вызова функций: документация к wsprintf: &gt;If the function fails, the return value is less than the length of the expected output. &gt;

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: FASM - ассемблер
спросили в CTC Love
Как осуществить вывод в консоль (ASSEMBLER, MASM32)
Классический пример. Использование WinAPI функции wsprintf вместе с lstrlen для преобразования
подробнее...

с++ winapi.вывод числа с помощью MessageBox
char str[80];
wsprintf(str,"%d",count);

MessageBox(hWnd, str, TEXT("ComboBox"),
подробнее...

ошибочку подскажите(ассемблер, масм32)
не какой-то косяк, а косячище
.CODE
Start:
mov ax,[ x ]
mov cx,[ a ]
imul
подробнее...

WinApi C++ Как преобразовать int в LPCWSTR?
int a = 70;
wchar_t str[20];
_itow(a, str, 10); // Число, буфер, система счисления
подробнее...

Нужна помощь в делфи. Dec to hex
Зачем алгоритм?
begin
// Display 1234 decimal in hex with minimal widthподробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Java API
Как перевести из int в char?
так m[k]=(char)z
или так
подробнее...

Удалить все пустые строки в .txt
Можно за два приёма сделать.
Сначала меняешь регулярное выражение на пустое место:
Find
подробнее...
Printf на Википедии
Посмотрите статью на википедии про Printf
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*