用DLL中的函数在主对话框上点到点画线

用DLL中的函数在主对话框上点到点画线



void CTest2Dlg::OnButton3()
{
// TODO: Add your control notification handler code here
typedef void(*pDrawLinePointToPoint)(CDC *pDC,CDialog *pDlg,CPoint pt1,CPoint pt2);

HINSTANCE hDLL;
pDrawLinePointToPoint DrawLine1;

hDLL=LoadLibrary("WBDLL.dll");//加载动态链接库MyDll.dll文件;

DrawLine1 = (pDrawLinePointToPoint)GetProcAddress(hDLL,"DrawLinePointToPoint");

CDC *pDC;
pDC = this->GetDC();
CPoint pt1,pt2;

pt1.x=200;
pt1.y= 0;

pt2.x=200;
pt2.y=300;

DrawLine1(pDC,this,pt1,pt2);

CPoint pt3;
pt3.x=250;
pt3.y=300;
DrawLine1(pDC,this,pt1,pt3);

FreeLibrary(hDLL);//卸载MyDll.dll文件;
}





extern "C" __declspec(dllexport) void DrawLine(CDC *pDC,CDialog *pDlg);

extern "C" __declspec(dllexport) void DrawLinePointToPoint(CDC *pDC,CDialog *pDlg,CPoint pt1,CPoint pt2);


void DrawLine(CDC *pDC,CDialog *pDlg)
{
pDC->MoveTo(0,0);
pDC->LineTo(200,200);
}

void DrawLinePointToPoint(CDC *pDC,CDialog *pDlg,CPoint pt1,CPoint pt2)
{
pDC->MoveTo(pt1);
pDC->LineTo(pt2);
}