Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71

Возможно ли заменить функции stdio.h на WinApi ?

03.09.2010, 16:17. Показов 1410. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли заменить функции stdio.h на WinApi ?

C++
1
2
3
4
5
6
7
8
9
          f=fopen(fileName,"rb");
 
          int size;
    do
    {
        size=fread(buff,1,MAX_PATH,f);
        if(send(transferFtpSocket,buff,sizeof(buff),0)==SOCKET_ERROR)
            return 0;
    }while(size==MAX_PATH);
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.09.2010, 16:17
Ответы с готовыми решениями:

stdio функции
Подскажите пожалуста по поводу использования таких функций как gets ,getchar, getc. По идее мне надо чтоб по уарту принималась строка...

Возможно ли работать с WinAPI в Qt Creator?
Добрый вечер. Интересует вопрос, возможно ли работать с WinAPI в Qt Creator? Если да, то как организовать? Я пробовал в консольном...

Буфер обмена (возможно winapi)
доброго времени суток. задача следующая: в каком либо приложении я выделяю текст. далее, я нажимаю комбинацию клавиш (допустим Ctrl +...

9
 Аватар для radiohobbyt
192 / 190 / 15
Регистрация: 27.01.2009
Сообщений: 548
03.09.2010, 23:31
возможно. CreateFile, ReadFile
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
03.09.2010, 23:34
большую часть можно, а причина?
0
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71
04.09.2010, 10:50  [ТС]
Причина ? минимальный размен экзешника...

Не могу разобраться в чем ошибка =\

Код ошибки 997 (ERROR_IO_PENDING)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
HANDLE hFile = CreateFile(fileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
 
 
HANDLE hEndRead = CreateEvent(NULL, FALSE, FALSE, NULL);
    
    OVERLAPPED  ovl;
    ovl.Offset = 0;        
    ovl.OffsetHigh = 0;      
    ovl.hEvent = hEndRead;  
 
    DWORD read=0;
 
    while(ReadFile(hFile,&buff,sizeof(buff),&read,&ovl))
    {
        WaitForSingleObject(hEndRead, INFINITE);
 
        if(send(transferFtpSocket,buff,sizeof(buff),0)==SOCKET_ERROR)
            return 0;
 
        ovl.Offset += sizeof(buff);
    }
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
04.09.2010, 11:13
Что возвращает WaitForSingleObject?
0
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71
04.09.2010, 12:30  [ТС]
Я думаю проблема не в этом,если
C++
1
 while(!ReadFile(hFile,&buff,sizeof(buff),&read,&ovl))
То файл передается, но передается он вечно.(размер файла +inf,если передавать архив, WinRar его открывает при этом говоря что он битый (файлы можно извлечь) ,т.е. видимо файл передается несколько раз...)

Добавлено через 1 час 0 минут
WaitForSingleObject возвращает NULL
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
04.09.2010, 12:35
Цитата Сообщение от Sysfa1l Посмотреть сообщение
WaitForSingleObject возвращает NULL
ну вот, GetLastError() и смотреть в чем ошибка, а очевидно hEndRead невалидный - надо было проверять то что возвращает CreateFile
0
1080 / 1007 / 107
Регистрация: 28.02.2010
Сообщений: 2,889
04.09.2010, 12:40
Цитата Сообщение от alex_x_x Посмотреть сообщение
ну вот, GetLastError() и смотреть в чем ошибка,
Мне кажется при "обломе" WaitForSingleObject должен возвращать WAIT_FAILED (-1).
0
04.09.2010, 12:51

Не по теме:

Цитата Сообщение от Евгений М. Посмотреть сообщение
Мне кажется при "обломе" WaitForSingleObject должен возвращать WAIT_FAILED (-1).
вот точто rtfm значит:)

0
5 / 5 / 0
Регистрация: 31.03.2010
Сообщений: 71
04.09.2010, 16:04  [ТС]
Вы были правы , CreateFile возвращает ошибку, как тогда правильно открыть файл ?%)

Добавлено через 3 часа 5 минут
В общем ошибку СreateFile не возвращал...

C++
1
if (hFile == INVALID_HANDLE_VALUE) ;
; после условия или простой способ убить время

Так и не разобрался с ReadFile,сделал пока так ,а может так и надо ?
странно что read всегда =0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int size = GetFileSize(hFile,0);
 
    do
    {
        ReadFile(hFile,&buff,sizeof(buff),&read,&ovl);
        WaitForSingleObject(hEndRead, INFINITE);
        
        if(send(transferFtpSocket,buff,sizeof(buff),0)==SOCKET_ERROR)
            return 0;
 
        ovl.Offset += sizeof(buff);
        
    }while(ovl.Offset<size);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.09.2010, 16:04
Помогаю со студенческими работами здесь

Возможно ли создание такого приложения с использованием WinAPI?
Стоит задача создать приложение, в котором создаётся новый вектор обработки прерывания, которое срабатывает при нажатии сочетания Ctrl +...

Возможно сделать типа виджета прогу для винды без Qt и т.п. просто на WinAPI?
появилась идея написать прогу для всех винд кроме 8+ чтобы у них как начиная с винды 8 когда наводишь вправые углы выходила панелька на см...

Заменить статические массивы на глобальные и heapalloc на new.WinApi
Есть программа,перемножающие два многочлена с помощью потоков. Коэффиценты задаются в массивах A и B n,m-их разномерность. Они у меня...

Возможно ли заменить на 2,5 винте интерфейс?
Добрый день. Имеется внешний жесткий Samsung M500TC У него внутри 2,5 винт ST500LM014 но не с SATA интерфейсом. Я думал разобрать...

Возможно ли заменить видеокарту на ноутбуке
Привет.У меня acer Aspire V3-571G c видюхой GeForce GT 630M with 2GB Dedicadet VRAM как я понимаю довольно слабая так вот если возможность...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru