社区
界面
帖子详情
在多线程中使用HDC
lyyscf
2010-08-26 01:17:34
在一个线程中接收位图数据(将一个大的位图分块发的),并将它拷到一个内存DC上
接收完后,再将这个内存DC中的位图用BitBlt复制到窗口DC中
可是没有成功
但我直接将接收的的位图数据拷到窗口DC上,却可以
请问这是为什么
...全文
152
7
打赏
收藏
在多线程中使用HDC
在一个线程中接收位图数据(将一个大的位图分块发的),并将它拷到一个内存DC上 接收完后,再将这个内存DC中的位图用BitBlt复制到窗口DC中 可是没有成功 但我直接将接收的的位图数据拷到窗口DC上,却可以 请问这是为什么
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lyyscf
2010-08-26
打赏
举报
回复
[Quote=引用 4 楼 hankcs 的回复:]
跨线程有考虑过句柄的继承之类吗?
[/Quote]
能说清楚一点吗
lyyscf
2010-08-26
打赏
举报
回复
BitBlt的返回值没有问题
hankcs
2010-08-26
打赏
举报
回复
跨线程有考虑过句柄的继承之类吗?
gameslq
2010-08-26
打赏
举报
回复
>>再将这个内存DC中的位图用BitBlt复制到窗口DC中
检查下BitBlt的返回值是否成功.有可能在这里出的问题
若不成功用GetLastError看看是什么问题.
tubo_true
2010-08-26
打赏
举报
回复
接收完后,首先确定变量是否还有效,是否清空
怀疑内存dc失效了
zgsdzhaolanxiang1
2010-08-26
打赏
举报
回复
mark.
易语言-易语言内存生成验证码
上次发了一个易语言内存生成验证码的源码,后来压力测试的时候发现
多线程
下程序会崩溃。原因是 GDI 在
多线程
创建
hDC
的时候,经常会失败,内存
hDC
只有一个工作区域,导致
多线程
冲突 所以后来研究了一段时间发现,
多线程
下不能用 GDI,需要用DGI+,虽然 DGI+的确是线程安全的,可是它保证安全的做法可能类似于我们易语言加许可区,所以严格意义上来说, DGI+也不是
多线程
的,只不过在
多线程
下是安全的而已 后来网上查找资料,得到了一个让人很沮丧的说法: 这是CSDN上的人说的,他说:听公司一个图形方面的大佬说过,图形绘制主流的技术,GDI、GDI+、OpenGL,D3D什么的都不支持
多线程
,同一时间内,只能有一个线程在屏幕绘制,所以,根本就没有什么
多线程
绘图这个玩意。。。 根据我这几天的测试,查看内存和CPU数据,也确实发现即使是GDI+,也只能单线程运行,
多线程
下也是排队进行绘图的,因为Windows只有一个画板。。。 好了,那就不纠结了,既然连OpenGL都不支持
多线程
绘图,那就老老实实的就这样用着吧 ============================================================================================ 本源码介绍: 还是跟上次一样,只有一个公开子程序,里面的参数做了一下调整 特点是 每个字符都可以用不同的字体,字体可以随时扩充,在哪里找到了什么好看的字体,直接安装到电脑里,然后把字体名称添加到参数里就可以了 理论上,如果经常更换字体,字体足够多的话,制作识别库是很头疼的一件事,这个用于易语言web开发很合适哟
dac-
hdc
-2018-object-detection-in-Jetson-TX2
dac-
hdc
-2018-object-detection-in-Jetson-TX2 采用了darknet平台上的yolov2对多张图片进行目标检测,采用voc2007格式的训练集进行训练,然后对多张图片集进行测试,在tx2上检测速度能达到23帧左右,识别准确率能达到67%左右。同时还可以用摄像头进行实时检测。 测试过程 可以选择对一定数量的图片集进行测试,也可以选择用摄像头拍摄实时识别。(测试过程,我们在图片预处理和network_predict过程开了3个线程,这部分代码在examples/det.c文件
中
,可以对其进行修改来调整线程数。涉及到的文件有:det.c,pydarknet.c,pydarknet.h,darknet.h,network.c) 对图片集进行测试 1.将图片放在test/images文件夹下,同时,该文件夹下包含一个images.txt,内容为所有图片的绝对路
杭州-浙江超海科技笔试题
科技 杭州-浙江超海科技笔试题 软件测试 1dll,lib处理实现.lib文件
中
包含什么?dll在内存
中
被多个函数共享,有几个拷贝? 2template,template等编译的时候作为几个类 3struct,class的区别,联系 4MAcro,inline区别,实现.编译运行时 5进程与线程区别 6
hdc
-cdc区别联系 7modeldialog,modelessdialog,从创建到销毁全过程具体描述 8各个线程new的内存,别的线程是否可以
使用
? 9RUNTIME_CLASS,是什么?原文转自:http://www.ltesting.netwindow._bd_s
MFC程序员的WTL指南
WTL 在开发者之间的悄悄传播已经超过一年了, 传闻它是基于ATL的,并在微软内部
使用
.这理所当然的引起了ATL开发者社区的注意.这些人从ATL1.1开始,就一直为ATL控件书写UI代码,但是他们发现,他们的所写的代码常常就是纯的Win32 GDI代码.我告诉您, WTL并没有多大不同.是不是让人失望? 不,因为ATL只是对COM进行了简单的封装,这也是ATL的强大之处. 是的,写ATL您必须通晓COM. 您在ATL上额外花费的功夫跟您学习COM所作的努力比起来,简直微不足道.这跟那些需要把主要精力花费在学习类库本身,忽略COM的库是完全不同的.WTL与此类似.您需要懂得Win32窗口技术和GDI.只要您懂得,学习WTL就似清风抚面,再简单不过了.如果您不懂 这些,那么您最好
使用
VB来写UI代码. 它给各种类型的应用程序提供了一个基本的框架.注意,虽然您没有MFC那样的文档/视结构,但是您有视(views). 在WTL有大量的代码让您来管理视,而且加入您自己的代码也很容易. WTL有AppWizard,可以让您生成SDI, MDI 和
多线程
SDI程序
多线程
SDI跟IE或Windows Explorer很像.它看起来是打开了多个程序实例,实际上这些窗口都是属于一个进程的.另外,您的程序可以是基于对话框的,也可以是基于视的.视可以是基于CWindowImpl的,也可以是基于控件,甚至是IE里的一个HTML页.您可以选择您的程序是否需要一个rebar, command bar (CE-like), toolbar 和/或status bar.另外,您的程序可以主持ActiveX控件,以及成为一个COM服务器. 这里有几个关于视的选项. WTL提供splitter窗口类(这样在一个视里您可以有两个窗口)和scroll窗口类(这样您的窗口可以比它显示的"视"小). WTL也有个类似MFC的UpDateUI的东西,但是它们不是很一样 - 主要的区别是您需要把需要更新的项用宏映射标注出来,然后您在您的类里加入执行UpdateUI的代码. DDX/DDV在WTL也支持,同样类似MFC,但有不同. 您必须加一个宏映射来实现DoDataExchange,然后加入调用它的代码.现在WTL也有GDI类了.然而,
HDC
的封装类就像CWindow一样,只进行了很简单的封装 - 它几乎没有加入任何新的功能.不过,在WTL,你可以得到播放meta文件和OpenGL支持. 最有价值的我猜应该是打印机DC的那些继承类 - WTL有打印机支持,甚至打印预览. 当然也有GDI对象的封装. 诸如画笔,画刷,区域等.WTL对所有的Win32 (和W2K) 通用对话框进行了封装.同样尽管简单,但是它的确使请求字体或者文件变的非常的简单.合成了旧的AtlControls.h,新加了一些封装类. 这些封装类封装了W2K控件,以及一些不属于Win32的"控件",像Command Bar, bitmap button, hyperlink 和 wait cursor.WTL 最终把消息分离带入了ATL! 一些新的MSG映射宏将消息分离,调用您类里的消息处理函数.消息处理函数的参数的值是从消息分离得到的.唯一令人头痛的是,您需要查看头文件以确定函数参数的意义.
WTL 8.1 界面开发库
简介 WTL 是 Windows Template Library 的缩写,由微软的ATL(Active Template Library) 小组开发,主要是基于 ATL 对Win32API 的封装。从 2.0 后,功能逐步完善,成为了一个完整的支持窗口的框架(windows framework)。 WTL 功能不如MFC完善,但是比 MFC 更小巧,不依赖 MFC 的DLL。 WTL 不是微软的正式产品,没有微软的官方支持。 WTL有什么? 它给各种类型的应用程序提供了一个基本的框架.注意,虽然没有MFC那样的文档/视结构,但是有视(views). 在WTL有大量的代码来管理视,而且加入自己的代码也很容易. WTL有AppWizard,可以生成SDI,MDI和
多线程
SDI程序
多线程
SDI跟IE或Windows Explorer很像.它看起来是打开了多个程序实例,实际上这些窗口都是属于一个进程的). 另外,程序可以是基于对话框的,也可以是基于视的.视可以是基于CWindowImpl的,也可以是基于控件,甚至是IE里的一个HTML页.可以选择程序是否需要一个rebar, command bar (CE-like), toolbar 和/或status bar.另外,程序可以支持ActiveX控件,以及成为一个COM服务器. 这里有几个关于视的选项. WTL提供splitter窗口类(这样在一个视里您可以有两个窗口)和scroll窗口类(这样您的窗口可以比它显示的"视"小). WTL也有个类似MFC的UpDateUI的东西,但是它们不是很一样 - 主要的区别是您需要把需要更新的项用宏映射标注出来,然后您在您的类里加入执行UpdateUI的代码. DDX/DDV在WTL也支持,同样类似MFC,但有不同. 必须加一个宏映射来实现DoDataExchange,然后加入调用它的代码. 现在WTL也有GDI类了.然而,
HDC
的封装类就像CWindow一样,只进行了很简单的封装 - 它几乎没有加入任何新的功能.不过,在WTL,你可以得到播放meta文件和OpenGL支持. 最有价值的我猜应该是打印机DC的那些继承类 - WTL有打印机支持,甚至打印预览. 当然也有GDI对象的封装. 诸如画笔,画刷,区域等. WTL对所有的Win32 (和W2K) 通用对话框进行了封装.同样尽管简单,但是它的确使请求字体或者文件变的非常的简单. 合成了旧的AtlControls.h,新加了一些封装类. 这些封装类封装了W2K控件,以及一些不属于Win32的"控件",像Command Bar, bitmap button, hyperlink 和 wait cursor. WTL 最终把消息分离带入了ATL! 一些新的MSG映射宏将消息分离,调用您类里的消息处理函数.消息处理函数的参数的值是从消息分离得到的.唯一令人头痛的是,您需要查看头文件以确定函数参数的意义. 最后,WTL还有一些实用类.最重要的是CString. 不错,它是从MFC克隆得到的(copy on write),具有(在我知道的范围内)MFC版本的所有方法.还有查找文件的API的封装类,以及CRect, CSize and CPoint. WTL
中
没有什么? 没有Document支持 WTL提供了frame和view,但是没有document。WTL所关注的是用户界面,而document是不可见的,所以它不是WTL关心的范围。 没有Active Document支持 没有ISAPI支持 没有WinInet支持 没有对线程和同步进行包装 没有数据库支持 总结 如果打算写一个Win32 界面程序,我建议您在考虑MFC之前,先试试WTL.
使用
WTL来写您的代码, 程序将变得小巧些,也更有效率些.
使用
WTL, 还将得到ATL支持COM好处.可以在2000年一月份的平台SDK
中
找到WTL.在MSI选项页的Source Code section下. 无 。
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章