自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

深之JohnChen的专栏

什么思想决定什么样行为;什么样行为决定什么样的习惯,什么样的习惯决定什么样性格,而什么性格决定什么样的命运。

  • 博客(1149)
  • 资源 (67)
  • 收藏
  • 关注

原创 libevent DNS开发

/ 清除现有DNS服务器// 添加自定义DNS服务器// 恢复DNS功能// 设置搜索域// 清除搜索域。

2025-04-01 15:44:26 461

原创 libevent定时器开发

Libevent的定时器机制是其事件驱动模型的核心组件之一,用于在指定时间间隔后触发回调函数。Libevent定时器通过封装event结构实现,支持‌单次触发‌或‌周期性触发‌两种模式。其本质是通过事件循环的调度机制,在指定时间到达后执行用户定义的回调函数‌。关键APIEV_PERSIST。

2025-04-01 14:59:05 151

原创 Libevent UDP开发指南

libevent 使用udp通讯

2025-04-01 14:44:24 289

原创 Libevent TCP开发指南

网络编程 libevnet实现tcp服务

2025-04-01 13:44:56 678

原创 网络I/O 复用模型对比

在 C++ 网络编程中,I/O 复用模型是处理高并发连接的核心技术。的详细对比,涵盖实现原理、性能差异及适用场景。:但支持更丰富的事件类型(如文件修改、信号)。:通过轮询检查文件描述符(fd)状态。每次调用需重置fd集合,引发内存拷贝。:用链表存储fd,突破数量限制。:I/O操作完成后通过回调通知。:仅返回就绪的fd,无需遍历。(如Nginx、Redis)。默认仅支持1024个fd(:仍为线性扫描,性能与。

2025-04-01 10:51:46 340

原创 torchvision.transforms数据预处理和增强模块

是 PyTorch 计算机视觉任务中最重要的,它提供了丰富的图像变换方法,能够将原始数据转换为适合神经网络训练的格式。

2025-04-01 10:04:18 593

原创 PyTorch之torchvision

支持INT8量化(

2025-04-01 09:38:30 318

原创 PyTorch中torch、torchvision、torchaudio

是一个开源的深度学习框架,而是其官方扩展库,分别专注于计算机视觉和音频处理。它们共同构成了 PyTorch 的生态系统,适用于不同的 AI 任务。,提供张量计算、自动微分和神经网络构建功能。动态计算图(动态图优先)GPU 加速(CUDA 支持)自动微分(autograd丰富的神经网络层(nn.Module,提供数据集、预训练模型和图像处理工具。MNISTCIFARImageNetCOCO等ResNetVGGViT等RandomCropNormalize等,支持语音识别、音频增强等任务。VCTK。

2025-04-01 09:21:55 171

原创 Qt中绘制不规则控件

在Qt中绘制不规则控件可通过设置遮罩(Mask)实现。

2025-03-31 21:13:27 347

原创 Qt中存储多规则形状图片

在Qt中,您可以通过多种方式处理和存储具有非矩形(多规则形状)的图片。

2025-03-31 17:23:04 201

原创 QCustomPlot拖动绘制变慢问题解决方案

数据量控制:保持可视数据点在 5,000 个以下合理使用 OpenGL:对动态数据效果显著分级渲染:拖动时用低质量,释放后用高质量避免频繁重绘:使用合并重绘请求定期性能分析:使用 QElapsedTimer 监控关键操作耗时。

2025-03-31 16:47:32 156

原创 Qt常用宏定义判断大全

/ 字符串化宏// 标记未使用参数(避免编译器警告)// 标记函数为弃用#endif// 标记函数为不推荐使用(但尚未弃用)

2025-03-31 15:12:22 177

原创 QThread使用

QThread 是 Qt 提供的线程类,用于实现多线程编程。

2025-03-31 15:07:14 616

原创 ‌QT编程之QtUsb‌

‌QtUsb‌是一个跨平台的USB模块,专为Qt框架设计。它基于libusb-1.0和libhidapi,提供了对USB设备的批量传输、中断传输、热插拔检测、设备枚举和过滤等功能。QtUsb主要使用C++编程语言,并结合了CMake和Python进行构建和配置‌。

2025-03-31 12:59:46 608

原创 Qwt入门

Qwt(Qt Widgets for Technical Applications)是一个用于。的 Qt 控件库,提供曲线图、仪表盘、刻度尺等专业可视化组件。

2025-03-31 00:01:43 466

原创 QtAV入门

是一个基于和的高性能多媒体播放框架,提供强大的音视频解码、渲染和处理能力,适合开发跨平台的播放器、视频编辑和流媒体应用。支持等视频编码。支持等音频编码。封装格式:MP4、MKV、FLV、RTMP、HLS 等。利用OpenGL/D3D11 视频渲染,降低 CPU 占用。精准、倍速播放、帧步进。音视频同步、字幕加载(SRT/ASS)。可单独使用或。支持和集成。(>= 4.0):提供编解码能力。(>= 5.6):核心框架支持。

2025-03-30 23:37:52 613

原创 QXmpp入门

用于开发即时通讯(IM)、聊天应用和实时协作系统。它支持客户端和服务端开发,提供完整的 XMPP 核心功能扩展。支持 RFC 6120 (XMPP Core) 和 RFC 6121 (XMPP IM)支持 Qt 网络模块(TCP/SSL/WebSocket)QXmpp 是一个基于 Qt 的。基础功能:认证、在线状态、一对一消息、群组聊天。OMEMO 端到端加密 - XEP-0384。安全通信工具(结合OMEMO)嵌入式系统兼容(如树莓派)完整的XMPP协议栈支持。基于 Qt 信号槽机制。

2025-03-30 23:28:44 415

原创 Qt WebSockets使用

是 Qt 官方提供的实现库,支持全双工通信(客户端/服务端),适用于实时交互应用(如聊天、游戏、实时数据监控)。符合标准,支持ws://和wss://(加密)。自动处理握手、帧拆分、Ping/Pong 心跳。QWebSocket:WebSocket 客户端。:WebSocket 服务端。支持和。通过QSslSocket实现安全的wss://连接。支持 Windows、Linux、macOS、嵌入式系统(如树莓派)。在。

2025-03-30 23:21:43 392

原创 QtWebApp使用

实现,适用于嵌入式设备、本地服务或需要快速搭建 Web 接口的 Qt 应用程序。:不支持 WebSocket、HTTPS(需自行扩展)。可直接托管 HTML、CSS、JS 等静态资源。:支持 Windows/Linux/macOS。纯 Qt 实现,无第三方依赖,适合嵌入式环境。:高并发场景不如 Nginx/Node.js。:API 设计直观,快速搭建 Web 服务。:仅依赖 Qt 网络模块,适合嵌入式开发。(如路由器、IoT 设备)。(无需复杂 Web 框架)。(如配置面板、数据监控)。

2025-03-30 23:07:53 548

原创 QtAdvancedStylesheets使用

支持复杂控件(如。

2025-03-30 22:58:47 235

原创 QFlightInstruments飞行仪表控件库

是一个开源的飞行仪表控件库,专为基于 Qt 的应用程序设计。它提供了一系列仿真实飞机仪表的组件,适用于飞行模拟软件、航空电子系统或任何需要高仿真飞行仪表显示的项目。:包括空速表、高度表、姿态仪(人工地平仪)、转弯协调仪、航向指示器等。:支持主题和样式调整,适配不同风格的驾驶舱界面。:使用 C++/Qt 编写,跨平台支持(Windows、Linux、macOS)。:可直接嵌入 Qt Widgets 或 QML 界面。– 显示飞行速度(节或公里/小时)。– 显示当前海拔高度(英尺或米)。

2025-03-30 22:46:58 254

原创 QTreeView开发入门

QTreeView 是 Qt 框架中用于显示树形结构数据的控件,属于模型/视图架构的一部分。它非常适合展示层次化数据,如文件系统、组织结构等。主要特点:支持多级层次结构显示可展开/折叠节点支持自定义节点样式提供选择、编辑功能可与 QFileSystemModel 等现成模型配合使用Q_OBJECTpublic:// 必须实现的方法// 可选实现的方法private:public:// 自定义绘制// 设置背景。

2025-03-30 17:52:58 119

原创 QTableView开发入门

QTableView 是 Qt 中用于显示表格数据的控件,属于模型/视图架构的一部分。它提供了灵活的方式来展示和编辑二维表格数据。Q_OBJECTpublic:// 必须重写的方法// 可选重写的方法// 自定义方法private:// 实现示例if (!default:public:if (index.column() == 1) { // 特殊处理第二列// 绘制背景} else {// 绘制文本。

2025-03-30 17:47:00 169

原创 QListView开发入门

QListView 是 Qt 框架中用于显示项目列表的控件,属于模型/视图架构的一部分。它提供了一种灵活的方式来显示和操作项目列表。public:// 选中项背景色// 设置项目高度// 使用自定义委托在 Qt 中创建自定义模型需要继承自 QAbstractItemModel 或其子类(如 QAbstractListModel)。对于列表视图,通常继承 QAbstractListModel 更为简单。// 对于列表模型,parent无效时应返回项目数return 0;

2025-03-30 17:39:59 458

原创 VulkanSceneGraph (VSG) 开发入门

VulkanSceneGraph (VSG) 是一个现代的、高性能的3D图形场景图库,基于Vulkan API构建。它具有以下特点:专为Vulkan设计,充分利用Vulkan的多线程和低开销特性开源且跨平台(Windows、Linux、macOS)提供了类似OpenSceneGraph(OSG)的接口但更现代化性能优化,适合实时渲染应用。

2025-03-30 14:19:37 359

原创 小波变换C++实现方式

/ 一维小波分解i < len/2;i++) {k++) {// 周期延拓// 二维小波分解(单层)// 对行处理i++) {// 对列处理j++) {支持多种小波族:Daubechies、Symlets、Coiflets、Biorthogonal等提供离散小波变换(DWT)和连续小波变换(CWT)支持一维、二维和三维信号变换包含小波包变换功能开源且跨平台。

2025-03-30 11:42:23 876

原创 傅里叶变换C++实现方式

傅里叶变换(Fourier Transform)是一种将信号从时域转换到频域的数学工具,广泛应用于信号处理、图像处理、通信等领域。在 C++ 中实现傅里叶变换(Fourier Transform),可以使用 FFT(快速傅里叶变换) 算法来提高计算效率。OpenCV 提供了高效的cv::dft()函数来计算离散傅里叶变换(DFT)。

2025-03-30 10:05:42 426

原创 Qt Creator 中文 “error: C2001: 常量中有换行符“ 问题解决方法

Qt Creator 编译时出现‌中文 error: C2001: 常量中有换行符‌的问题,通常由文件编码与编译器字符集不兼容导致。

2025-03-29 22:51:55 523

原创 QT 跨平台发布指南

‌ 是官方发布的特定版本文件,包含版本类型和架构信息,需重命名或通过完整路径使用。(.AppImage。Qt5Core.dll, Qt5Gui.dll, Qt5Widgets.dll 等 Qt 库。‌:表示文件格式为 AppImage(一种无需安装即可直接运行的 Linux 应用格式)‌)styles/qwindowsvistastyle.dll (如果使用)可考虑使用 Enigma Virtual Box 打包为单文件。imageformats/*.dll (支持的图片格式)‌ 是工具的标准调用名称。

2025-03-29 19:00:13 420

原创 Qt之Service开发

基于Qt的用于开发系统服务(守护进程)和后台服务,有以下几个优秀的开源 QtService 框架和库。

2025-03-29 14:58:57 801

原创 QT操作PDF文件

Qt 早期本身不提供原生的 PDF 操作功能。从 Qt 5.15 开始,Qt 提供了 PDF 模块,可以显示和提取 PDF 内容。Qt中有如下几种方式实现 PDF 文件的生成、读取和操作。1、使用 QPrinter 生成 PDF2、使用 Qt PDF 模块 (Qt 5.15+)3、使用第三方库(比如:Poppler)

2025-03-29 13:59:31 945

原创 QT操作Word文档

虽然 Qt 没有原生支持 Word 文档操作的模块,但可以通过以下几种方式实现 Word 文档的读写和操作:1、使用 ActiveX/COM (仅限 Windows)2、使用第三方库 (跨平台),比如: libopendocument等。3、直接操作 DOCX 文件 (DOCX 是 ZIP+XML)4、使用 HTML 作为中介格式。

2025-03-29 12:17:13 1018

原创 QT操作Excel

在 Qt 程序中操作 Excel 文件的常用方法有QAxObject、QtXlsx开源库、CSV格式等。使用 QAxObject (仅限 Windows,需安装 Excel) 2、读取数据(每个单元格)3、批量读取数据(N个单元格) 4、写入数据5、高级功能1)插入单张图片1.1)通过 Shapes.AddPicture 方法插入图片,需指定坐标、尺寸和链接方式‌。坐标可通过单元格的 Left 和 Top 属性动态获取‌。1.2)动态调整图片位置和大小

2025-03-29 10:47:59 844

原创 uWebSockets开发入门

基于 Boost.Asio 的高性能库,支持 HTTP/WebSocket,属于 Boost 官方库的一部分,稳定且跨平台。:高性能服务器库,支持 WebSocket 和 HTTP,底层基于 libuv(Node.js 的异步 I/O 库)。:纯头文件库(header-only),基于 C++11,不依赖 Boost,支持 RFC-6455 协议。:Poco C++ 库的一部分,提供完整的网络功能(包括 WebSocket),适合企业级应用。:简单易用的跨平台库,支持 SSL/TLS 和二进制数据传输。

2025-03-28 17:56:42 1183

原创 Modbus协议开发入门

Modbus协议开源库 libmodbus pymodbus QModbus

2025-03-28 16:19:11 699

原创 Profibus开源协议开发指南

Profibus libprofibus使用指南

2025-03-28 15:24:51 897

原创 OPC UA开源协议库open62541使用指南

OPC UA 协议,调用开源库open62541实现服务端、客户端。

2025-03-28 14:38:38 942

原创 GStreamer开发入门

元素是GStreamer中最基本的处理单元类型功能描述示例Source数据生产者(生成原始数据)Filter数据处理者(转换/修改数据)Sink数据消费者(输出/显示数据)Demuxer解复用器(分离复合流)Decoder解码器(压缩数据→原始数据)Encoder编码器(原始数据→压缩数据)Muxer复用器(合并多个流)关键特性每个元素通过工厂模式创建(元素状态包括:NULL、READY、PAUSED、PLAYING通过可查看元素详细信息// 自定义属性。

2025-03-28 12:57:40 815

原创 WebRTC C++开发入门

WebRTC 的 C++ 实现提供了丰富的组件用于构建实时通信应用。

2025-03-28 10:23:12 1062

原创 QCustomPlot入门

textLabel->setText("峰值检测");public:// 初始化默认位置// 省略位置成员和位置创建代码...// 使用自定义元素public:// 必须实现的纯虚函数// 自定义数据接口protected:// 注册到QCustomPlot。

2025-03-27 20:46:01 986

CH340, CH340G & CH341 (USB-SERIAL chip) V3.5

CH340串口芯片在Windows中遇到串口打开、关闭后无法再次打开。返回错误码是31(连到系统上的设备没有发挥作用。) 下载对应的V3.5驱动即可解决。 CH340, CH340G & CH341 (USB-SERIAL chip) V3.5 Driver Version = 2019-01-30, 3.5.2019.1

2024-04-16

librtmp x64 vs2015版本库文件

librtmp V2.3 x64版本编译好的lib库文件以及源代码。 librtmp是一个RTMP的开源库,很多地方用它来做推流、拉流。它是RTMPDump开源软件里的一部分。librtmp库实现了rtmp协议的客户端功能,以及少数服务端功能。 优化功能: 1)解决“关闭Nagle加如此小的块大小会导致很多小包并且CPU占用高”问题。 2)增加发送数据超时时间,防止librtmp发送阻塞。 3)AMF_GetProp函数bug修改。

2022-05-09

ice同步调用和异步调用实例代码

Ice 是一种针对客户端和服务器进行通信的面向对象的中间件平台。Ice 为构建面向对象的客户-服务器应用提供了工具、API 和库支持。客户和服务器通信双方可以用不同的编程语言编写,目前最新的版本支持的语言包括C++,.NET,Java,Python,Objective-C,Ruby,PHP and ActionScript。客户和服务器可以分别部署,可以运行在不同的操作系统和机器架构上。本代码为ice同步调用和异步调用实例代码。

2019-04-07

Qt中调用MFC对话框

QT是一个跨平台应用程序和UI开发框架。windows开Qt开发方法:一、Qt Creator+MinGW 或者 Qt Creator+VC++ Compiler二、QT4.8.5 for Windows(VS2015+VS插件)。本实例为VS2015+Qt+Qt插件中开发Qt应用程序同时调用MFC对话框。

2019-03-23

调用OPENCV3.4.4库,在MFC中显示图片

调用OPENCV库,在MFC中显示图片,添加CvvImage类来显示程序图片,我用的是VS2015 + OPENCV3.4.4

2019-03-03

thrift web实例代码

thrift web实例代码。使用thrift js时,PRotocol需要使用TJSONPRotocol/TBinaryProtocol协议,Thrift.Protocol对应的是TJSONPRotocol。Transport需要使用TXHRTransport/TWebSocketTransport通道,Thrift.Transport对应的是TXHRTransport。

2018-12-07

websocketpp实例代码

WebSocketpp是一个支持websocket功能的库,C++语言,本身不需要搭建什么环境,只要新建的项目引入相关的库就行。本实例代码包含了服务器,CS客户端、web客户端代码。

2018-11-29

xlslib-2.5.0

xlslib库是用来创建excel文件、libxls是用来读取excel文件的。vc2015编译版本,支持中文字符串。

2018-10-29

ffmpeg视频解码和编码代码实例

ffmpeg视频解码和编码代码实例。decoder目录中的代码是对视频进行解码的实例。encoder目录中的代码是对视频进行编码的实例。

2018-06-12

MessagePack序列化实例代码

MessagePack是一个基于二进制高效的对象序列化Library用于跨语言通信。它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。 支持Python、Ruby、Java、C/C++、Javascript等众多语言。 比Google Protocol Buffers还要快4倍。本代码是在netty中使用MessagePack序列化

2017-12-02

LengthFieldBasedFrameDecoder 实例代码

netty中,大多数的协议在协议头中都会携带长度字段,用于标识消息体或则整包消息的长度。LengthFieldBasedFrameDecoder通过指定长度来标识整包消息,这样就可以自动的处理黏包和半包消息,只要传入正确的参数,就可以轻松解决“读半包”的问题。

2017-12-02

netty 分隔符解码器使用实例

Netty框架中LineBasedFrameDecoder分隔符解码器解决考虑TCP的粘包与拆包问题。依次编译bytebuf中的可读字符,判断看是否有“\n”或者“\r\n”,如果有,就以此位置为结束位置,从可读索引到结束位置区间的字节就组成了一行。它是以换行符为结束标志的解码器,支持携带结束符或者不携带结束符两种解码方式,同时支持单行的最大长度。如果连续读取到最大长度后,仍然没有发现换行符,就会抛出异常,同时忽略掉之前读到的异常码流。

2017-12-02

微软TTS语音引擎实现文本朗读代码

TTS(Text-To-Speech)是指文本语音的简称,即通过TTS引擎把文本转化为语音输出。TTS语音引擎有微软TTS语音引擎等。微软TTS语音引擎提供了Windows Speech SDK开发包供编程者使用。Windows Speech SDK包含语音合成SS引擎和语音识别SR引擎两种,语音合成引擎用于将文字转换成语音输出,语音识别引擎用于识别语音命令。

2017-11-07

pcm与g726相互转换

pcm与g726音频之间相互转换。选择ffmpeg g726编码器进行解码。ffmpeg g726解码器包括:AV_CODEC_ID_ADPCM_G726、AV_CODEC_ID_ADPCM_G726LE。如果海思g726码流类型为asf时,请选择AV_CODEC_ID_ADPCM_G726解码器类型;如果海思g726码流类型为RFC3551标准时,请选择AV_CODEC_ID_ADPCM_G726LE解码器类型。

2017-11-02

modbus lib vs2008

modbus协议动态库,支持 Linux, Mac OS X, FreeBSD, QNX and Windows

2017-10-08

Modbus C++实例

Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。Modbus协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。Modbus C++实例代码是基于VC编写的代码,包含了线程操作。

2017-09-17

环型缓冲区C++代码

环型缓冲区C++代码

2017-08-17

Hibernate注解配置表映射实例

Hibernate注解配置表映射实例

2017-08-12

Hibernate XML配置表映射实例

Hibernate XML配置表映射实例

2017-08-12

Thrift双向通讯java代码

Thrift双向通讯java代码

2017-08-06

Win10版本的ADO组件包

Win10版本的ADO组件包,文件版本号是10.0.14393.0

2017-07-30

thrift vc2008版本静态库

thrift对于的vc静态库,vc2008版本编译。

2017-07-06

mfc与duilib之间控件相互调用

mfc与duilib之间控件相互调用

2017-06-04

UIDesigner

Dui界面制作,修改skin文件(*.xml)保存失败问题。

2017-06-02

web调用本地应用程序exe例子

web调用本地应用程序

2017-02-16

librtmp获取视频流和音频流

librtmp获取视频流和音频流

2017-01-03

libsamplerate vs2008版本

采样率转换库libsamplerate的vs2008版本

2016-12-27

Flv文件提取视频流H264

从Flv文件中提取h264视频流

2016-12-16

VC静态库开发与调用

VC静态库开发与调用

2016-09-02

gsoap实例代码

gsoap实例代码,包含服务器代码和客户端代码,支持多线程。

2016-06-15

vlc插件和海康NetVideoActiveX23开发包

vlc插件和海康NetVideoActiveX23开发包

2016-06-12

移动应用界面设计的尺寸规范

移动应用界面设计的尺寸规范,包括android界面设计、ios界面设计、ipad界面设计。

2015-08-06

调试Release程序--Dump文件方式

在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。目前有一些方法可以解决:崩溃地址 + MAP文件;MAP文件;SetUnhandledExceptionFilter + Minidump。

2014-05-15

检测一程序服务实例

一个简单的检测某程序(服务器)运行异常自动拉起程序的服务。

2013-02-02

BlowFish算法

BlowFish算法用来加密64Bit长度的字符串。

2012-02-11

VC编写与调用COM连接点demo

COM 中的典型方案是让客户端对象实例化服务器对象,然后调用这些对象。然而,没有一种特殊机制的话,这些服务器对象将很难转向并回调到客户端对象。COM 连接点便提供了这种特殊机制,实现了服务器和客户端之间的双向通信。使用连接点,服务器能够在服务器上发生某些事件时调用客户端。

2011-07-12

C++ 检测内存泄漏

C++ 检测内存泄漏 检测内存泄漏的方法多种多样,有使用内存泄漏检测工具(比如BoundsChecker)检测内存泄漏;有直接看代码检测代码逻辑,看那些地方是否没有释放内存。

2011-04-27

基于改进的S I F T特征的图像双向匹配算法

图像匹配是计算机视觉中许多领域的基础, 特征提取则是图像匹配的基础, 其中不变量特征是一 个重要的理论。S I F t 是最有效的尺度、 旋转、 亮度不变量局部特征之一, 但算法复杂、 计算时间长。分析 了S I F t的计算时间分配, 通过计算关键点的邻域梯度直方图时动态修改采样步长, 大大提高了S Wr的 计算速度。分析了基于S I F t特征的图像匹配算法, 提出了双向匹配算法, 提高了图像匹配的准确率。实 验结果表明所提出的方法是有效的。

2010-07-21

CppUnit测试框架在VC2008中应用

用CppUint进行测试时,一般先以某个函数或者某个类作为测试单元,完成测试;在完成这些基本的测试后,再将引用到测试过的这些函数或者类的函数或者类,作为测试单元完成测试;继续下去,从而完成整个模块甚至是整个系统的测试,从而达到更多清除bug的目的。

2010-07-19

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代码.

2010-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除