Другие языки программирования и технологии

Нет библиотеки Dev-C++ нет библиотеки mach.h компилятор MinGW где скачать стандартные библиотеки, и как установить?

Sasha Chirkov
Sasha Chirkov
498
Скорее всего тут просто опечатка и имеется в виду стандартная библиотека math.h
Вадим Коробков
Вадим Коробков
97 934
Лучший ответ
Sasha Chirkov Да, спасиб, понял
Нахуя тебе это, иди трахайся не с компом, а с бабами. А по теме Естественно. Библиотека graphics - борландовская, конкурента мелкомягких. А у MS все совсем иначе, c GDI. Как, например, показано тут
Но вообще Visual C++ не рассчитан на работу с графикой в консоли. Подробнее тут
urbo C graphics in VC++
========================================*/
#include
#include
#include
#include
#include
using namespace std;
//for Thread
#define _MT
#include
#pragma comment(lib, "libcmt.lib")
#pragma comment(linker, "/NODEFAULTLIB:libcd.lib")

//for GetConsoleWindow()
extern "C" WINBASEAPI HWND WINAPI GetConsoleWindow();
//global variables for Console
CONSOLE_CURSOR_INFO cInfo;
HANDLE hConOut;
COORD NewSBSize;
SMALL_RECT DisplayArea;
//Set Console Window to Maximal size
void SetConsoleMaxSize();
//Set Console Window to full screen
void SetConsoleFullScreen();

//global variables for graphic functions
HWND hWnd;
int GraphFlag = 0;
HDC hdc;
RECT rc;
POINT pt;
HPEN hNewPen, hOldPen;
HBRUSH hNewBrush, hOldBrush;
COLORREF Color;
int PenStyle;
int PenSize;

//graphic functions
void initgraph(); //Enable Graphic Mode
void closegraph(); //Disable Graphic Mode
void line(int x1, int y1, int x2, int y2); //Draw a line
void clr(); //Clear the screen

//global variables for thread
HANDLE hThread;
unsigned ThreadID;
DWORD dwExitCode;
//Thread for drawing
unsigned __stdcall DrawThread(LPVOID lp){

initgraph();
while(!kbhit()){ //Redraw in Console Window. And press any key to stop...

line(100, 200, 350, 350);
line(100, 200, 400, 200);
line(400, 200, 150, 350);
line(350, 350, 250, 100);
line(150, 350, 250, 100);

clr();

Sleep(100); //To lower CPU usage
} //while() End
closegraph();

return 1; //Return Thread Exit Code
};

int main(){
Color = RGB(255,255,255); //default graphic color
PenStyle = PS_SOLID; //default pen style
PenSize = 1; //default pen size
SetConsoleMaxSize(); //Set Console Window to Maximal size
//SetConsoleFullScreen(); //Set Console Window to full screen

//Create a thread and pause it
hThread = (HANDLE)_beginthreadex(NULL, 0, DrawThread, NULL, CREATE_SUSPENDED, &ThreadID);
//Failed to create a thread
if(hThread == 0) printf("Failed to create DrawThread\n");
//Get Thread Exit Code
GetExitCodeThread(hThread, &dwExitCode);
//Continue a thread
ResumeThread(hThread);
//Wait for the Thread signal
WaitForSingleObject(hThread, INFINITE);
//Get Thread Exit Code
GetExitCodeThread(hThread, &dwExitCode );
//Close Thread Handle
CloseHandle(hThread);

system("pause");
return 0;
}

//Draw a line
void line(int x1, int y1, int x2, int y2){
if(GraphFlag==1){
hNewPen = CreatePen(PenStyle, PenSize, Color);
hOldPen = (HPEN)SelectObject(hdc, hNewPen);
SelectObject(hdc, hNewPen);
MoveToEx(hdc, x1, y1, NULL);
LineTo(hdc, x2, y2);
DeleteObject(SelectObject(hdc, hOldPen));
}else{
printf("Call initgraph() first!\n");
}
}

//Clear the screen
void clr(){
if(GraphFlag==1){
COORD coordScreen = {0, 0};
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}else{
printf("Call initgraph() first!\n");
}
}

//Enable Graphic Mode
void initgraph(){
GraphFlag = 1; //Set graphic flag to 1 and allow DrawThread() to call the graphic function
hWnd = GetConsoleWindow(); //Get the handle of Console W
Sasha Chirkov норм, спасибо