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

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

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

Author24 — интернет-сервис помощи студентам
добрый день, я начал совсем недавно постигать 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2018, 22:01
Ответы с готовыми решениями:

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

Перенос консольного приложения
Подскажите, как переносить консольное приложение на другой компьютер, на котором нет MVS, для его...

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

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

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru