我最近在网上抄了一份拷贝屏幕至内存的代码,该代码运行于一个 MFC DLL,我将这个DLL作为一个netsvcs 服务启动,可是发现StretchBlt函数无法执行,GetLastError返回5,拒绝访问。
我在单独调试时没有出现这样的错误啊,请问为什么一旦作为 windows 服务程序执行后,就无法拷贝屏幕了呢。
代码大致如下:
bRet = cdc.CreateDCW(L"DISPLAY", NULL, NULL, NULL); bRet = cbm.CreateCompatibleBitmap(&cdc, irCopyTo.width, irCopyTo.height); CDC copy_dc;
bRet = copy_dc.CreateCompatibleDC(&cdc); CBitmap *pOld = copy_dc.SelectObject(&cbm); bRet = copy_dc.StretchBlt(irCopyTo.left, irCopyTo.top, irCopyTo.width, irCopyTo.height, &cdc, irScreen.left, irScreen.top, irScreen.width, irScreen.height, SRCCOPY);
请高手指教,万分感谢
我在单独调试时没有出现这样的错误啊,请问为什么一旦作为 windows 服务程序执行后,就无法拷贝屏幕了呢。
代码大致如下:
bRet = cdc.CreateDCW(L"DISPLAY", NULL, NULL, NULL); bRet = cbm.CreateCompatibleBitmap(&cdc, irCopyTo.width, irCopyTo.height); CDC copy_dc;
bRet = copy_dc.CreateCompatibleDC(&cdc); CBitmap *pOld = copy_dc.SelectObject(&cbm); bRet = copy_dc.StretchBlt(irCopyTo.left, irCopyTo.top, irCopyTo.width, irCopyTo.height, &cdc, irScreen.left, irScreen.top, irScreen.width, irScreen.height, SRCCOPY);
请高手指教,万分感谢
解决方案 »
- VC++串口通信程序 数据接收处理的问题 API函数编写
- 通过内存DC在位图里作画,为什么要读入位图
- 请问 CString aa = "A1/A2/a3/a4" 如何拆分
- MFC的几点迷惑
- 使用DirectSound播放MP3的问题
- 专业问题:如何识别局域网中某IP是路由器?
- 高手请进,怎样才能让程序运行是占用的内存降到最小。
- 一个简单的提取子串的问题。请大家多多帮忙。
- 如何生成3维网格图像!
- 根据进程ID获取进程全路径,GetModuleFileNameEx在64位下编译通不过
- 如何用VC2005 express开发插件系统?
- DEBUG ASSERTION FAILED:dbgheap.c 1017 _block_type_is_valid(pHead->nblockUse)
同时谢谢scq2099yt
谢谢cnzdgs 和 jameshooo ,同时也谢谢 xpersistence抛砖引玉.