谁能帮我解释一下这个错误???

alihand 2007-09-19 08:17:13
compile 没错,编译的时候报错
错误提示:Linking...
patternDlg.obj : error LNK2001: unresolved external symbol "public: struct HBITMAP__ * __thiscall CPatternDlg::CopyScreenToBitmap(struct tagRECT *)" (?CopyScreenToBitmap@CPatternDlg@@QAEPAUHBITMAP__@@PAUtagRECT@@@Z)
Debug/pattern.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

部门代码如下:

HBITMAP CopyScreenToBitmap(LPRECT lpRect)
//lpRect 代表选定区域
{
HDC hScrDC, hMemDC;
// 屏幕和内存设备描述表
HBITMAP hBitmap, hOldBitmap;
// 位图句柄
int nX, nY, nX2, nY2;
// 选定区域坐标
int nWidth, nHeight;
// 位图宽度和高度
int xScrn, yScrn;
// 屏幕分辨率

// 确保选定区域不为空矩形
if (IsRectEmpty(lpRect))
return NULL;
//为屏幕创建设备描述表
hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC = CreateCompatibleDC(hScrDC);
// 获得选定区域坐标
nX = lpRect->left;
nY = lpRect->top;
nX2 = lpRect->right;
nY2 = lpRect->bottom;
// 获得屏幕分辨率
xScrn = GetDeviceCaps(hScrDC, HORZRES);
yScrn = GetDeviceCaps(hScrDC, VERTRES);
//确保选定区域是可见的
if (nX < 0)
nX = 0;
if (nY < 0)
nY = 0;
if (nX2 > xScrn)
nX2 = xScrn;
if (nY2 > yScrn)
nY2 = yScrn;
nWidth = nX2 - nX;
nHeight = nY2 - nY;
// 创建一个与屏幕设备描述表兼容的位图
hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
// 把新位图选到内存设备描述表中
hOldBitmap = (HBITMAP)SelectObject(hMemDC,hBitmap);
// 把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hMemDC, 0, 0, nWidth, nHeight,hScrDC, nX, nY, SRCCOPY);
//得到屏幕位图的句柄
hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
//清除
DeleteDC(hScrDC);
DeleteDC(hMemDC);
// 返回位图句柄
return hBitmap;
}

void CPatternDlg::OnButton5()
{
RECT r_bmp={Startx,Starty,wid,lon};
HBITMAP hBitmap=CopyScreenToBitmap(&r_bmp); //出错行,去掉就好了
}
...全文
75 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanhqk 2007-09-19
  • 打赏
  • 举报
回复
1.HBITMAP CPatternDlg::CopyScreenToBitmap
{
......
}
这个第一个问题.
2.hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
这个创建一个临时的:CreateCompatibleBitmap();
这个返回可能有问题.
JacksonFox 2007-09-19
  • 打赏
  • 举报
回复
HBITMAP CPatternDlg::CopyScreenToBitmap
{
......
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧