易语言内存生成验证码

上次发了一个易语言内存生成验证码的源码,后来压力测试的时候发现多线程下程序会崩溃。原因是 GDI 在多线程创建hDC的时候,经常会失败,内存hDC只有一个工作区域,导致多线程冲突

所以后来研究了一段时间发现,多线程下不能用 GDI,需要用DGI+,虽然 DGI+的确是线程安全的,可是它保证安全的做法可能类似于我们易语言加许可区,所以严格意义上来说, DGI+也不是多线程的,只不过在多线程下是安全的而已

后来网上查找资料,得到了一个让人很沮丧的说法:

易语言内存生成验证码.png

这是CSDN上的人说的,他说:听公司一个图形方面的大佬说过,图形绘制主流的技术,GDI、GDI+、OpenGL,D3D什么的都不支持多线程,同一时间内,只能有一个线程在屏幕绘制,所以,根本就没有什么多线程绘图这个玩意。。。

根据我这几天的测试,查看内存和CPU数据,也确实发现即使是GDI+,也只能单线程运行,多线程下也是排队进行绘图的,因为Windows只有一个画板。。。

好了,那就不纠结了,既然连OpenGL都不支持多线程绘图,那就老老实实的就这样用着吧

============================================================================================

本源码介绍:

还是跟上次一样,只有一个公开子程序,里面的参数做了一下调整

特点是 每个字符都可以用不同的字体,字体可以随时扩充,在哪里找到了什么好看的字体,直接安装到电脑里,然后把字体名称添加到参数里就可以了

理论上,如果经常更换字体,字体足够多的话,制作识别库是很头疼的一件事,这个用于易语言web开发很合适哟

相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注