- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •If (!hWnd) return false;
- •If(!RegisterClass(&w)) return false;
- •If(!RegisterClass(&w)) return false;
- •If(!RegisterClass(&w)) return false;
- •InvalidateRect(hWnd,&rt,true);
- •If(!RegisterClass(&w)) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •InvalidateRect(hWnd,&rt,true);
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •InvalidateRect(hWnd,&rt,true);
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
- •If(!RegisterClass(&w)) return false;
- •If (!hWnd) return false;
- •If(!RegisterClass(&w)) return false;
Int winapi WinMain(hinstance hInstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
{
char ProgName[]="My Window";
char Title[]="Заголовок окна";
HWND hWnd; MSG msg;
WNDCLASS w;
w.lpszClassName=ProgName;
w.hInstance=hInstance;
w.lpfnWndProc=(WNDPROC)MyWinP;
w.hCursor=LoadCursor(NULL, IDC_ARROW);
w.hIcon=LoadIcon(NULL, IDI_APPLICATION);
//w.lpszMenuName=LPCSTR(IDR_MENU1);
w.lpszMenuName=NULL;
w.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
w.style=CS_HREDRAW | CS_VREDRAW;
w.cbClsExtra=0;
w.cbWndExtra=0;
If(!RegisterClass(&w)) return false;
hWnd=CreateWindow(ProgName,Title, WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,0,0,
CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
If (!hWnd) return false;
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HMENU menu, popup_menu;
switch(msg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_FIRST:
AppendMenu(menu, MF_STRING, ID_SECOND, "Второй пункт");
EnableMenuItem(menu, ID_FIRST, MF_GRAYED);
DrawMenuBar(hWnd);
break;
case ID_SECOND:
popup_menu=CreatePopupMenu();
InsertMenu(menu, -2, MF_STRING | MF_POPUP | MF_BYPOSITION, (UINT)popup_menu, "Третий пункт");
AppendMenu(popup_menu, MF_STRING, ID_THIRD, "Третий пункт 1");
AppendMenu(popup_menu,MF_STRING, 40004, "Третий пункт 2");
EnableMenuItem(menu, ID_SECOND, MF_GRAYED);
DrawMenuBar(hWnd);
break;
case ID_THIRD:
DeleteMenu(menu, ID_SECOND, 0);
DeleteMenu(popup_menu,ID_THIRD, 0);
DeleteMenu(popup_menu,40004, 0);
DeleteMenu(menu,(UINT)popup_menu, 0);
EnableMenuItem(menu,ID_FIRST, MF_ENABLED);
SetMenu(hWnd,menu);
break;
}
break;
case WM_CREATE:
menu=CreateMenu();
AppendMenu(menu, MF_STRING, ID_FIRST, "Первый пункт");
SetMenu(hWnd,menu);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
menu
#include <windows.h>
#include <stdio.h>
#include<conio.h>
#define ID_LIST 1001
#define ID_BUTTON_LK 1002
#define ID_BUTTON_D 1003
#define ID_BUTTON_RK 1004
#define ID_BUTTON_P 1005
static HWND List1;
LONG MyWinP(HWND, UINT,WPARAM,LPARAM);
char whatToSay[150];
bool flag;
enum Button{On,Off};
typedef struct
{
int Time;
Button Sost;
} Komforka;
class Mechta
{
protected:
int Time;
Button Pitanie;
Komforka LeftK,RightK,DuhK;
public:
Mechta();
void Pitanie_pechi();
void Left_button();
void Right_button();
void Duh_button();
void Work();
};
void Mechta::Pitanie_pechi()
{
if(Pitanie==Off)
{
Pitanie=On;
sprintf(whatToSay,"\nPitanie vklucheno.");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
else
{
Pitanie=LeftK.Sost=RightK.Sost=DuhK.Sost=Off;
sprintf(whatToSay,"\nPitanie viklucheno");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
}
void Mechta::Left_button()
{
if(Pitanie!=Off)
{
if(LeftK.Sost==On)
{
LeftK.Sost=Off;
sprintf(whatToSay,"\nlevaya komforka vukluchena!");
}
else if (LeftK.Sost==Off)
{
LeftK.Sost=On;
sprintf(whatToSay,"\n levaya komforka vkluchena!");
}
else if (DuhK.Sost==On && RightK.Sost==On)
{
sprintf(whatToSay,"\n2 komforki uge rabotaut!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
else
{
LeftK.Sost=On;
LeftK.Time=60000;
Time=60000;
sprintf(whatToSay,"\nLevaya komforka vkluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
}
else
sprintf(whatToSay,"\nPech vikluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
void Mechta::Right_button()
{
if(Pitanie!=Off)
{
if(RightK.Sost==On)
{
RightK.Sost=Off;
sprintf(whatToSay,"\nPravaya komforka vukluchena!");
}
else if (RightK.Sost==Off)
{
RightK.Sost=On;
sprintf(whatToSay,"\n Pravaya komforka vkluchena!");
}
else if (DuhK.Sost==On&&LeftK.Sost==On)
{
sprintf(whatToSay,"\n2 komforki uge rabotaut!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
else
{
RightK.Sost=On;
RightK.Time=60000;
Time+=60000;
sprintf(whatToSay,"\nPravaya komforka vkluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
}
else
sprintf(whatToSay,"\nPech vikluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
void Mechta::Duh_button()
{
if(Pitanie!=Off)
{
if(DuhK.Sost==On)
{
DuhK.Sost=Off;
sprintf(whatToSay,"\nduhovka vukluchena!");
}
else if (DuhK.Sost==Off)
{
DuhK.Sost=On;
sprintf(whatToSay,"\n duhovka vkluchena!");
}
else if (RightK.Sost==On&&LeftK.Sost==On)
{
sprintf(whatToSay,"\n2 komforki uge rabotaut!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
else
{
DuhK.Sost=On;
DuhK.Time=60000;
Time=60000;
sprintf(whatToSay,"\nDuhovka vkluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
}
else
sprintf(whatToSay,"\nPech vikluchena!");
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)whatToSay);
}
Mechta::Mechta()
{
RightK.Time=-1;
DuhK.Time=-1;
LeftK.Time=-1;
Pitanie=Off;
}
void Mechta::Work()
{
}
Mechta * TRAL = new Mechta();
LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
static HWND ButtonLk, ButtonRk,ButtonDuh, ButtonPit, Combo;
int nwhatToSay;
switch(msg)
{
case WM_RBUTTONDOWN:
SendMessage(List1,LB_RESETCONTENT,0,0);
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_LIST:
break;
case ID_BUTTON_LK:
TRAL->Left_button();
break;
case ID_BUTTON_RK:
TRAL->Right_button();
break;
case ID_BUTTON_D:
TRAL->Duh_button();
break;
case ID_BUTTON_P:
TRAL->Pitanie_pechi();
if (flag)
{
EnableWindow(ButtonDuh, FALSE);
EnableWindow(ButtonLk, FALSE);
EnableWindow(ButtonRk, FALSE);
flag=FALSE;
}
else
{
EnableWindow(ButtonDuh, TRUE);
EnableWindow(ButtonLk, TRUE);
EnableWindow(ButtonRk, TRUE);
flag=TRUE;}
break;
}
break;
case WM_CREATE:
ButtonLk=CreateWindow("button","Levaia komforka", WS_CHILD|WS_VISIBLE,250,10,150,30,hWnd,(HMENU)ID_BUTTON_LK,NULL,NULL);
ButtonRk=CreateWindow("button","Pravaia komforka", WS_CHILD|WS_VISIBLE,250,90,150,30,hWnd,(HMENU)ID_BUTTON_RK,NULL,NULL);
ButtonDuh=CreateWindow("button","Duhovka", WS_CHILD|WS_VISIBLE,250,50,150,30,hWnd,(HMENU)ID_BUTTON_D,NULL,NULL);
ButtonPit=CreateWindow("button","Pitanie", WS_CHILD|WS_VISIBLE,250,130,150,30,hWnd,(HMENU)ID_BUTTON_P,NULL,NULL);
flag=FALSE;
EnableWindow(ButtonDuh,FALSE);
EnableWindow(ButtonLk, FALSE);
EnableWindow(ButtonRk, FALSE);
List1=CreateWindow("listbox",NULL,WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_HSCROLL|LBS_STANDARD|LBS_SORT|LBS_NOINTEGRALHEIGHT|BS_MULTILINE, 10,10,230,300,hWnd,(HMENU)ID_LIST,NULL,NULL);
SendMessage(List1,LB_SETHORIZONTALEXTENT,400,0);
SendMessage(List1,LB_ADDSTRING,0,(LPARAM)"\nPech Mechta\n - Pech Vikluchena!\n");
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return LONG(DefWindowProc(hWnd, msg, wParam, lParam));
}
return 0;
}
#include <windows.h>
#include <winuser.h>
#include <math.h>
#include <cstdio>
LONG MyWinP(HWND, UINT, WPARAM, LPARAM);
static const HMENU ADD1=(HMENU)123,
DEL1=(HMENU)124,
ADD2=(HMENU)125,
DEL2=(HMENU)126,
SUM1=(HMENU)127,
SUM2=(HMENU)128;
HWND arr1_label,arr2_label,add1_edit,del1_edit,add2_edit,del2_edit,array1,array2;
class Array{
protected:
int size;
double array[255];
char *format;
public:
Array(){
size=0;
format="Массив 1 (размер = %d): ";
}
void addElement(double value) // добавление элемента
{
if(size<255)
{
size+=1;
array[size-1]=value;
}
}
virtual void deleteElement(int index){ // удаление элемента
if(size>0)
{
size-=1;
for(int i=index;i<size;i++)
array[i]=array[i+1];
}
}
double getSummOfPositives() // подсчет суммы ненулевых элементов
{
double S=0;
for(int i=0;i<size;i++)
if(array[i]!=0)
S+=1;
return S;
}
void printArray(HWND field,HWND label)
{
char str[255]="";
char one_elt[80]="";
for(int i=0;i<size;i++)
{
sprintf(one_elt, "%1.0f ", array[i]);
strcat(str, one_elt);
}
SetWindowText(field, str);
sprintf(one_elt, format, size);
SetWindowText(label, one_elt);
}
};
class Array_New:public Array{
private:
public:
Array_New(){
format="Массив 2 (размер = %d): ";
}
void deleteElement(int index){
if(array[index]==0)
{
if(index>0 && index<size-1)
{
array[index-1]=0;
array[index+1]=0;
}
if(index==0)
array[index+1]=0;
if(index==size)
array[index-1]=0;
}
size-=1;
for(int i=index;i<size;i++)
array[i]=array[i+1];
}
};
Array *arr[2];
int WINAPI …
hWnd=CreateWindow
(
ProgName, //имя класса
Title, //имя окна (заголовок)
WS_SYSMENU|WS_BORDER, //стиль окна
100, //x-координата окна
100, //y-координата окна
340, //ширина окна
295, //высота окна
NULL, // дескриптор родительского или окна владельца
NULL, // дескриптор меню или идентификатор дочернего окна
hInstance, // дескриптор экземпляра приложения
NULL // указатель на данные создания окна
);
CreateWindow("STATIC", "Лабараторная работа №7", WS_CHILD|WS_VISIBLE|SS_LEFT, 10, 1, 180, 20, hWnd, NULL, hInstance, NULL);
// МАССИВ 1
arr1_label = CreateWindow("STATIC", "Массив 1 (размер = 0):", WS_CHILD|WS_VISIBLE|SS_LEFT, 10, 30, 180, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("STATIC", "Добавить эл-т:", WS_CHILD|WS_VISIBLE|SS_LEFT, 30, 55, 150, 20, hWnd, NULL, hInstance, NULL);
add1_edit = CreateWindow("EDIT", "0", WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER, 140, 55, 30, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("BUTTON", "Добавить", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 180, 55, 70, 20, hWnd, ADD1, hInstance, NULL);
CreateWindow("BUTTON", "Cумма", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 255, 55, 70, 20, hWnd, SUM1, hInstance, NULL);
CreateWindow("STATIC", "Удалить эл-т с индексом:", WS_CHILD|WS_VISIBLE|SS_LEFT, 30, 80, 200, 20, hWnd, NULL, hInstance, NULL);
del1_edit = CreateWindow("EDIT", "0", WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER, 210, 80, 30, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("BUTTON", "Удалить", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 250, 80, 70, 20, hWnd, DEL1, hInstance, NULL);
array1 = CreateWindow("EDIT", "", WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN|ES_LEFT|WS_BORDER, 30, 105, 290, 40, hWnd, NULL, hInstance, NULL);
// МАССИВ 2
arr2_label = CreateWindow("STATIC", "Массив 2 (размер = 0):", WS_CHILD|WS_VISIBLE|SS_LEFT, 10, 150, 320, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("STATIC", "Добавить эл-т:", WS_CHILD|WS_VISIBLE|SS_LEFT, 30, 170, 150, 20, hWnd, NULL, hInstance, NULL);
add2_edit = CreateWindow("EDIT", "0", WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER, 140, 170, 30, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("BUTTON", "Добавить", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 180, 170, 70, 20, hWnd, ADD2, hInstance, NULL);
CreateWindow("BUTTON", "Cумма", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 255, 170, 70, 20, hWnd, SUM2, hInstance, NULL);
CreateWindow("STATIC", "Удалить эл-т с индексом", WS_CHILD|WS_VISIBLE|SS_LEFT, 30, 195, 200, 20, hWnd, NULL, hInstance, NULL);
del2_edit = CreateWindow("EDIT", "0", WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER, 210, 195, 30, 20, hWnd, NULL, hInstance, NULL);
CreateWindow("BUTTON", "Удалить", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 250, 195, 70, 20, hWnd, DEL2, hInstance, NULL);
array2 = CreateWindow("EDIT", "", WS_CHILD|WS_VISIBLE|ES_MULTILINE|ES_WANTRETURN|ES_LEFT|WS_BORDER, 30, 220, 290, 40, hWnd, NULL, hInstance, NULL);
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LONG MyWinP(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
arr[0]=new Array();
arr[1]=new Array_New();
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_COMMAND:
switch(wParam)
{
case ADD1:
{
char buf[15];
GetWindowText(add1_edit, buf, GetWindowTextLength(add1_edit)+1);
double t = atof(buf);
arr[0]->addElement(t); // позднее связывание
arr[0]->printArray(array1, arr1_label);
}break;
case DEL1:
{
char buf[15];
GetWindowText(del1_edit, buf, GetWindowTextLength(del1_edit)+1);
int t = atoi(buf);
arr[0]->deleteElement(t);
arr[0]->printArray(array1, arr1_label);
}break;
case SUM1:
{
char buf[50];
sprintf(buf, "Сумма ненулевых элементов = %1.0f", arr[0]->getSummOfPositives());
MessageBox(hWnd, buf, "Сумма", MB_OK);
}break;
case ADD2:
{
char buf[15];
GetWindowText(add2_edit, buf, GetWindowTextLength(add2_edit)+1);
double t = atof(buf);
arr[1]->addElement(t); // позднее связывание
arr[1]->printArray(array2, arr2_label);
}break;
case DEL2:
{
char buf[15];
GetWindowText(del2_edit, buf, GetWindowTextLength(del2_edit)+1);
int t = atoi(buf);
arr[1]->deleteElement(t);
arr[1]->printArray(array2, arr2_label);
}break;
case SUM2:
{
char buf[50];
sprintf(buf, "Сумма ненулевых элементов = %1.0f", arr[1]->getSummOfPositives());
MessageBox(hWnd, buf, "Сумма", MB_OK);
}break;
}
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
break;
}
return 0;
}
#include <windows.h>
#include <math.h>
#include <cstdio>
LONG WinProc(HWND, UINT, WPARAM, LPARAM);
typedef void (WINAPI *DrawGraph_func)(HWND, HDC, int, int);
DrawGraph_func DrawGraph;
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR pCmdLine,
int nCmdShow)
{
char ProgName[]="Labrab";
char Title[]="Лабараторная работа №";
HWND hWnd;
MSG msg;
//РЕГИСТРАЦИЯ ОКОННОГО КЛАССА
hWnd=CreateWindow
(
ProgName, //имя класса
Title, //имя окна (заголовок)
WS_OVERLAPPEDWINDOW, //стиль окна
100, //x-координата окна
100, //y-координата окна
400, //ширина окна
200, //высота окна
NULL, // дескриптор родительского или окна владельца
NULL, // дескриптор меню или идентификатор дочернего окна
hInstance, // дескриптор экземпляра приложения
NULL // указатель на данные создания окна
);
HINSTANCE hDll;
hDll=LoadLibrary("graph"); // ДИНАМИЧЕСКОЕ ПОДКЛЮЧЕНИЕ DLL
if (hDll==NULL){
MessageBox(0, "Не найдена Dll",0,MB_OK);
return 1;
}
DrawGraph = (DrawGraph_func) GetProcAddress(hDll, "_draw_graph@16");
if (DrawGraph==NULL){
MessageBox(0,"Не найдена функция",0,MB_OK);
return 1;
}
ShowWindow(hWnd, nCmdShow);
while(GetMessage(&msg, NULL, 0, 0)) //цикл обработки сообщений
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
FreeLibrary(hDll);
return msg.wParam;
}
LONG WinProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
PAINTSTRUCT ps;
HDC hdc;
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
(*DrawGraph)(hWnd, hdc, -1, 1);
EndPaint(hWnd, &ps);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
break;
}
return 0; }
Dll.h
#pragma once
#include "Windows.h"
#include <math.h>
#include <stdio.h>
#define BORDER 5
#define FONTHEIGHT 30
#define FONTWIDTH 5
#define a 5.0
#ifdef __cplusplus
extern "C" {
#endif
extern wchar_t s[128];
extern int slen;
extern double Xmin,Xmax,Ymin,Ymax,CenterX,CenterY;
extern int XAxisDigits,YAxisDigits;
extern double aFunctionPoints[2][1001];
extern HPEN penC, pen;
extern RECT rect;
extern int iWindowWidth;
extern int iWindowHeight;
extern double kX;
extern double kY;
extern int xPoints;
extern int yPoints;
extern int i;
extern double temp;
extern RECT rt;
void FillArray ( );
int calcdigits(double temp);
__declspec(dllexport) void Draw ( HWND hWnd, HDC hdc, double xMin, double xMax );
#ifdef __cplusplus
}
#endif
l4.cpp
#include <windows.h>
#include <stdio.h>
#include <math.h>
#define MAX_LOADSTRING 100
HINSTANCE hInst;
wchar_t szTitle[MAX_LOADSTRING];
wchar_t szWindowClass[MAX_LOADSTRING];
wchar_t ClassNameMain[] = L"MainWindow";
BOOL MyRegisterClass(WNDPROC, LPCTSTR, UINT);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
PAINTSTRUCT ps;
HDC hdc;
typedef void ( __cdecl *_DrawFunc ) ( HWND hWnd, HDC hdc, double xMin, double xMax );
_DrawFunc DrawFunc;
HINSTANCE dllInstance;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
HWND hWnd;
MSG msg;
hInst = hInstance;
if (!MyRegisterClass((WNDPROC)WndProc, ClassNameMain, COLOR_WINDOW)) return false;
hWnd=CreateWindow(ClassNameMain, L"Лр4", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);