Author Topic: Вывод графики в окно винды на плейн Ц  (Read 1284 times)

Offline Yougi

  • Старожил
  • ****
  • Posts: 958
  • Карма: +115/-37
    • View Profile
 Это возможно в нынешних реалиях?
 без питонокостылей и прочего изврата? Из обычных Си, не плюсов.
 Я что-то такое делал лет десять назад, но забыл уже как.
 ВинАПИ подразумевает плюсы.

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Yougi

  • Старожил
  • ****
  • Posts: 958
  • Карма: +115/-37
    • View Profile
tnx, почитаю
наверное гнуплотом всё-таки легше будет...
 но его тоже курить надо...
« Last Edit: 10 May 2023, 11:21:10 by Yougi »

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
ВинАПИ подразумевает плюсы.
Только сейчас распарсил эту фразу. Нет, это не совсем так. Хоть в MSDN и пишут везде про С++, на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
наверное гнуплотом всё-таки легше будет...
 но его тоже курить надо...
Только теперь заметил уточнения. Если вам нужны линии, тогда SetDIBitsToDevice вам конечно не нужен, достаточно MoveTo и LineTo. Гнуплотом конечно легче, но и на сях не слишком сложно.
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Это кстати одна из таких задачек, с которыми хорошо справляется ChatGPT. Так что вот небольшой примерчик.
« Last Edit: 11 May 2023, 16:03:45 by Upliner »
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Yougi

  • Старожил
  • ****
  • Posts: 958
  • Карма: +115/-37
    • View Profile
Quote
на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
Так они все окна как класса требуют, чего в чистых сях нету...

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Так они все окна как класса требуют, чего в чистых сях нету...
Вы наверное путаете WinAPI с MFC. Вот примерчик постом выше компилируется обычным C компилятором, C++ там не нужен.
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Yougi

  • Старожил
  • ****
  • Posts: 958
  • Карма: +115/-37
    • View Profile
 Вечерком попробую скомпилить - у меня си на другом компе стоят.

Offline Yougi

  • Старожил
  • ****
  • Posts: 958
  • Карма: +115/-37
    • View Profile
 Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
 Типа так
 
Quote
POLINK: error: Unresolved external symbol '__imp_CreateWindowExA' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_ShowWindow' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_UpdateWindow' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_TranslateMessage' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_DispatchMessageA' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_GetMessageA' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_GetClientRect' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_GetStockObject' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_SelectObject' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_Rectangle' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_CreatePen' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_MoveToEx' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_LineTo' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_DeleteObject' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_BeginPaint' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_EndPaint' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_InvalidateRect' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_PostQuitMessage' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol '__imp_DefWindowProcA' - referenced from 'C:\Users\Valentina\Downloads\output\plot.obj'.
POLINK: error: Unresolved external symbol 'main' - referenced from 'crt64.lib(_crt0.obj)'.
POLINK: fatal error: 21 unresolved external(s).
 

Offline Bhudh

  • Дважды герой
  • **
  • Posts: 5612
  • Карма: +2041/-155
    • View Profile
Jestem dokładny i dociekliwy. (Wg Pinii.)
Всё, что нужно для торжества зла — это бездействие добрых людей. Поэтому бездействовать не надо. Алексей Навальный

Offline Toman

  • Ветеран
  • *****
  • Posts: 1266
  • Карма: +217/-34
    • View Profile
Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
 Типа так
Вроде, там не с компиляцией же проблема, а с линковкой уже. Раз obj файл есть - значит, скомпилилось. А вот что с чем линковать - почему-то не знает.

Offline Upliner

  • Администратор
  • Герой
  • *****
  • Posts: 4971
  • Карма: +440/-18
  • Gender: Male
  • Кис-кис-кис!
    • View Profile
    • лифчег
Да, нужно добавить линковку с kernel32.lib user32.lib gdi32.lib и может ещё с несколькими либами, пока точно не помню какими. Если не знаете как -- пришлите команду, которой компилите. Если нет этих либ -- нужно поставить Platform SDK, ну или MinGW.
« Last Edit: 21 May 2023, 07:44:33 by Upliner »
Дві найголовніші помилки українського народу -- зек і зєк.

Offline Чайник777

  • Жестянщик
  • Герой
  • *
  • Posts: 3829
  • Карма: +274/-141
    • View Profile
Really⁈
слегка бесит вот такое))
Botho Lukas Chor!!!

Offline Euskaldun

  • Администратор
  • Трижды герой
  • *****
  • Posts: 29268
  • Карма: +4036/-332
    • View Profile
слегка бесит вот такое))
хорошо, что «слегка» :lol: