Где находится windows.h и как подключить на Ubuntu?

134
22 сентября 2019, 16:40

Вообщем такой вопрос, "как поставить библиотеку, чтобы там были заголовки windows.h, conio.h", чтобы они инкудились к примеру в eclipse или просто где ниудь?. как поставить, что скачать, где что брать?

Answer 1

Проверил способ, о котором говорил @HolyBlackCat - это работает.

Developing for Windows on Linux - основная статья, в ней Вы сможете найти более подробное описание использования mingw-gcc в Linux-based операционной системе. К сожалению, последней под рукой меня нет, я тестировал под Mac'ом.

  1. На сайте mingw-w64 Вы можете ознакомиться с детальным описанием процесса установки. Для этого перейдите в Downloads и выберите необходимую операционную систему.
  2. После установки перейдите в /usr/local/bin (вероятнее всего) и выполните команду ls -l | grep mingw:

  1. Найдите версии mingw-gcc для интересующей Вас платформы. С помощью ln можете создать ссылку в /usr/bin. Лично я использовал следующую версию: x86_64-w64-mingw32-gcc.
  2. На ранее указанном сайте (в конце статьи) Вы можете найти ссылку на архив с исходным кодом для тестирования. Мне пришлось немного его подправить, поэтому здесь я оставлю исправленную версию (см. ниже).
  3. Выполните следующую команду: /usr/local/bin/x86_64-w64-mingw32-gcc -o app.exe main.c -mwindows
  4. Исполняемый файл Вы можете запустить либо непосредственно на Win, либо можете использовать Wine чтобы сделать это на текущей машине.

Исходный код:

#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst,
                   HINSTANCE hPrevInst,
                   PSTR szCmdLine,
                   int iCmdShow) {
    static TCHAR szAppName[] = TEXT("HelloWin");
    HWND hwnd;
    MSG msg;
    WNDCLASS wndclass;
    wndclass.style = CS_HREDRAW | CS_VREDRAW;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.cbWndExtra = 0;
    wndclass.hInstance = hInst;
    wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground =
        (HBRUSH) GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName = NULL;
    wndclass.lpszClassName = szAppName;
    if (!RegisterClass(&wndclass)) {
        MessageBox(NULL,
                   TEXT("This program requires Windows NT."), "msg", 0);
        return 0;
    }
    hwnd = CreateWindow(szAppName,
                        TEXT("The Hello Program"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        NULL,
                        NULL,
                        hInst,
                        NULL);
    ShowWindow(hwnd, iCmdShow);
    UpdateWindow(hwnd);
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam) {
    HDC hdc;
    PAINTSTRUCT ps;
    RECT rect;
    switch (message) {
        case WM_CREATE:
            return 0;
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ps);
            GetClientRect(hwnd, &rect);
            DrawText(hdc,
                     TEXT("Hello, Windows!"),
                     -1, &rect,
                     DT_SINGLELINE | DT_CENTER | DT_VCENTER);
            EndPaint(hwnd, &ps);
            return 0;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hwnd, message, wParam, lParam);
}
READ ALSO
Округление дробных чисел. С++

Округление дробных чисел. С++

Можно ли сделать так,чтобы округлялось в большую или меньшую сторону в зависимости от полученного значения , только тогда, когда у меня тип...

140
Как удалить файл qt c++?

Как удалить файл qt c++?

Мне нужно удалить файл либо же папку в какой либо дерикторииКак это можно сделать? Какие библиотеки подключить нужно?

153
как положить массив в массив?

как положить массив в массив?

в общем создал функцию которая создаёт массив

118
Проверка значения аргумента constexpr функции

Проверка значения аргумента constexpr функции

Есть класс и перегрузка оператора []

101