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 - ассемблер
Printf на Википедии
Посмотрите статью на википедии про Printf
 

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

Имя*

E-mail:*

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