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

Перенос консольного на WinApi

05.01.2018, 22:01. Показов 925. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
добрый день, я начал совсем недавно постигать Win API и с ходу запутался в небольшом примере. Так как являюсь больше физиком решил перевести небольшую программу с консоли на окна. Подскажите, как этот кусочек кода перевести в Wi APi
Просто проверка модуля и информация о нем.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "lusbapi.h"
#include <stdlib.h>
#include <stdio.h>
// заголовочный файл библиотеки Lusbapi
ILE440 *pModule; // указатель на интерфейс модуля
MODULE_DESCRIPTION_E440 md; // структура c информацией о модуле
char ModuleName[7]; // название модуля
BYTE UsbSpeed; // скорость работы шины USB
int main(void)
{
    // проверим версию DLL библиотеки
    if (GetDllVersion() != CURRENT_VERSION_LUSBAPI)
    {
        printf("Неправильная версия Dll!");
        return 1; //выйдем из программы с ошибкой
    }
    // получим указатель на интерфейс модуля
    pModule = static_cast<ILE440 *>(CreateLInstance (L"e440"));
    if (!pModule)
    {
        printf("Не могу получить указатель на интерфейс");
        return 1; //выйдем из программы с ошибкой
    }
    // попробуем обнаружить какой-нибудь модуль
    // в нулевом виртуальном слоте
    if (!pModule->OpenLDevice(0))
    {
        printf("Не могу получить доступ к модулю!");
        return 1; //выйдем из программы с ошибкой
    }
    // попробуем получить скорость работы шины USB
    if (!pModule->GetUsbSpeed(&UsbSpeed))
    {
        printf("Не могу узнать скорость работы USB!\n");
        return 1; //выйдем из программы с ошибкой
    }
    // прочитаем название модуля в нулевом виртуальном слоте
    if (!pModule->GetModuleName(ModuleName))
    {
        printf("Не могу прочитать название модуля!\n");
        return 1; //выйдем из программы с ошибкой
    }
 
        // проверим: этот модуль - 'E14-440'?
        if (strcmp(ModuleName, "E440"))
        {
            printf(" В нулевом виртуальном слоте не 'E14-440'\n");
            return 1; //выйдем из программы с ошибкой
        }
    // теперь можно попробовать загрузить из соответствующего ресурса
    // библиотеки Lusbapi код драйвера LBIOS
    if (!pModule->LOAD_MODULE())
    {
        printf("Не выполнена функция LOAD_MODULE()!");
        return 1; //выйдем из программы с ошибкой
    }
    // проверим работоспособность загруженного LBIOS
    if (!pModule->MODULE_TEST())
    {
        printf("Не выполнена функция MODULE_TEST()!");
        return 1; //выйдем из программы с ошибкой
    }
    // попробуем прочитать информацию о модуле
    if (!pModule->GET_MODULE_DESCRIPTION(&md))
    {
        printf("Не выполнена функция GET_MODULE_DESCRIPTION ()!");
        return 1; //выйдем из программы с ошибкой
    }
    printf("Модуль E14-440 (серийный номер %s) полностью готов к\
работе!", md.Module.SerialNumber);
    // далее можно располагать функции для непосредственного
    // управления модулем
    //. . . . . .
        // завершим работу с модулем
        if (!pModule->ReleaseLInstance())
        {
            printf("Не выполнена функция ReleaseLInstance()!");
            return 1; //выйдем из программы с ошибкой
        }
    // выйдем из программы
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.01.2018, 22:01
Ответы с готовыми решениями:

Как применить знания консольного c++ к WinAPI? И пж привидите пример
WinAPI это чтобы взаимодействовать с виндой а вся сложность c++ обучают в консоли Вопрос:как можно связать знания по шаблонным...

Перенос консольного приложения
Подскажите, как переносить консольное приложение на другой компьютер, на котором нет MVS, для его корректной работы. Какие файлы (папки)?...

Получить цвет фона экрана консольного окна (можно и методами WinAPI)
Привет. Как получить цвет (фона экрана) консольного окна? Можно и методами WinAPI. С меня печенька :)

1
 Аватар для Старый воин
93 / 92 / 21
Регистрация: 16.08.2017
Сообщений: 188
Записей в блоге: 1
05.01.2018, 23:20
Здравствуйте!
Я правильно понимаю, что Вы хотите добавить к программе графический интерфейс посредством использования Win API? Если да, то там подход к построению программы несколько другой. Программа управляется событиями, путем обработки сообщений. Большая часть Вашего кода будет выполняться во время создания окна (или его активации). Если необходимо такие проверки делать периодически, то нужно будет включать в программу таймер и обрабатывать его событие (таймер сработал - провели проверку). Функции непосредственного управления модулем наверное будут привязаны к событиям элементов управления (нажали кнопку, функция выполнилась).
Короче, если делаете это впервые, то придется потратить немного времени на освоение "азов". Сложного ничего нет (относительно), но вникать придется. Ну и литературу почитать полезно будет (поиск в сети тоже неплохо).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.01.2018, 23:20
Помогаю со студенческими работами здесь

Перенос из консольного приложения в winform
Добрый день, переношу консольное приложение в в вин форм. Проблема возникла со статическими полями. В консольном приложении имеется...

Перенос кода консольного приложения в DLL
Была написана программа (а именно классы) которая работала для консоли. Теперь хочу перегнать это дело в виндоус форм и затем сделать из...

Перенос Консольного приложения в Оконный вид
Доброго времени суток. Есть Код консольной программы, нужно перенести на оконное приложение. Пробовал CLR - компилятор ругается почти...

Приведите пример, как можно связать знания консольного C++ (где алгоритмы, структуры, массивы) с WinAPI?
WinAPI это чтобы взаимодействовать с виндой а вся сложность c++ обучают в консоли Вопрос:как можно связать знания по шаблонным...

Перенос с Delphi программы, использующей WinAPI
Ругается на обращения к WinApi - запуск и остановка процессов. У них что другой пакет с WinApi - с другими идентификаторами? Как...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[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 и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru