Языковая политика

Общие обсуждения => Компьютеры и интернет => Topic started by: Yougi on 10 May 2023, 09:33:40

Title: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 10 May 2023, 09:33:40
 Это возможно в нынешних реалиях?
 без питонокостылей и прочего изврата? Из обычных Си, не плюсов.
 Я что-то такое делал лет десять назад, но забыл уже как.
 ВинАПИ подразумевает плюсы.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 10 May 2023, 09:45:30
SetDIBitsToDevice (https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-setdibitstodevice) ?
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 10 May 2023, 09:48:32
tnx, почитаю
наверное гнуплотом всё-таки легше будет...
 но его тоже курить надо...
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 10 May 2023, 16:07:39
ВинАПИ подразумевает плюсы.
Только сейчас распарсил эту фразу. Нет, это не совсем так. Хоть в MSDN и пишут везде про С++, на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 10 May 2023, 16:12:27
наверное гнуплотом всё-таки легше будет...
 но его тоже курить надо...
Только теперь заметил уточнения. Если вам нужны линии, тогда SetDIBitsToDevice вам конечно не нужен, достаточно MoveTo и LineTo. Гнуплотом конечно легче, но и на сях не слишком сложно.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 10 May 2023, 16:37:05
Это кстати одна из таких задачек, с которыми хорошо справляется ChatGPT. Так что вот небольшой примерчик.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 11 May 2023, 14:50:55
Quote
на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
Так они все окна как класса требуют, чего в чистых сях нету...
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 11 May 2023, 15:14:57
Так они все окна как класса требуют, чего в чистых сях нету...
Вы наверное путаете WinAPI с MFC. Вот примерчик постом выше компилируется обычным C компилятором, C++ там не нужен.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 11 May 2023, 15:25:49
 Вечерком попробую скомпилить - у меня си на другом компе стоят.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 20 May 2023, 23:14:03
 Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
 Типа так
 
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).
 
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Bhudh on 21 May 2023, 01:38:08
хидеры
Really⁈
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Toman on 21 May 2023, 03:17:26
Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
 Типа так
Вроде, там не с компиляцией же проблема, а с линковкой уже. Раз obj файл есть - значит, скомпилилось. А вот что с чем линковать - почему-то не знает.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Upliner on 21 May 2023, 07:42:57
Да, нужно добавить линковку с kernel32.lib user32.lib gdi32.lib и может ещё с несколькими либами, пока точно не помню какими. Если не знаете как -- пришлите команду, которой компилите. Если нет этих либ -- нужно поставить Platform SDK, ну или MinGW.
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Чайник777 on 21 May 2023, 09:21:07
Really⁈
слегка бесит вот такое))
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Euskaldun on 21 May 2023, 10:23:29
слегка бесит вот такое))
хорошо, что «слегка» :lol:
Title: Re: Вывод графики в окно винды на плейн Ц
Post by: Yougi on 21 May 2023, 15:29:32
 Вроде сбилдидось и даже работает.
 Спасибо за инфу.