Языковая политика
Общие обсуждения => Компьютеры и интернет => Topic started by: Yougi on 10 May 2023, 09:33:40
-
Это возможно в нынешних реалиях?
без питонокостылей и прочего изврата? Из обычных Си, не плюсов.
Я что-то такое делал лет десять назад, но забыл уже как.
ВинАПИ подразумевает плюсы.
-
SetDIBitsToDevice (https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-setdibitstodevice) ?
-
tnx, почитаю
наверное гнуплотом всё-таки легше будет...
но его тоже курить надо...
-
ВинАПИ подразумевает плюсы.
Только сейчас распарсил эту фразу. Нет, это не совсем так. Хоть в MSDN и пишут везде про С++, на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
-
наверное гнуплотом всё-таки легше будет...
но его тоже курить надо...
Только теперь заметил уточнения. Если вам нужны линии, тогда SetDIBitsToDevice вам конечно не нужен, достаточно MoveTo и LineTo. Гнуплотом конечно легче, но и на сях не слишком сложно.
-
Это кстати одна из таких задачек, с которыми хорошо справляется ChatGPT. Так что вот небольшой примерчик.
-
на самом деле практически все WinAPI функции объявлены как extern "C" и ничто не мешает вызывать их из чистых сей.
Так они все окна как класса требуют, чего в чистых сях нету...
-
Так они все окна как класса требуют, чего в чистых сях нету...
Вы наверное путаете WinAPI с MFC. Вот примерчик постом выше компилируется обычным C компилятором, C++ там не нужен.
-
Вечерком попробую скомпилить - у меня си на другом компе стоят.
-
Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
Типа так
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).
-
хидеры
Really⁈
-
Не хочет компилиться, ругается как раз на ВинАпи функции, что их взять негде, хотя вроде соответствующие хидеры у меня есть.
Типа так
Вроде, там не с компиляцией же проблема, а с линковкой уже. Раз obj файл есть - значит, скомпилилось. А вот что с чем линковать - почему-то не знает.
-
Да, нужно добавить линковку с kernel32.lib user32.lib gdi32.lib и может ещё с несколькими либами, пока точно не помню какими. Если не знаете как -- пришлите команду, которой компилите. Если нет этих либ -- нужно поставить Platform SDK, ну или MinGW.
-
Really⁈
слегка бесит вот такое))
-
слегка бесит вот такое))
хорошо, что «слегка» :lol:
-
Вроде сбилдидось и даже работает.
Спасибо за инфу.