C++
文章平均质量分 70
LewenSky
这个作者很懒,什么都没留下…
展开
-
Delphi / C++ Builder 提示“unknown picture file extension(.GIF) ”的解決方法
之前安装了一个TGIFImage控件,用起来还是挺方便的,让本来不支持Gif图片的Builder也用上了动态的GIF图片。但是今天Builder出了一些问题,于是重装了一下。但是没想到,重装后的Builder不能在代码里加载GIF图片,每次加载时都提示“unknown picture file extension(.GIF) ”。上网查了一下,没有找到有效的解决方原创 2010-02-27 23:17:00 · 2691 阅读 · 0 评论 -
VC++程序自校验的简单方法
<br />在Project->Settings->Link中去掉Generate debug info和Link incrementlly选项,再选择Category组合框的Customize,去掉Use program database选项,最后在Project Options中加入"/release",一切OK!<br />#include <imagehlp.h><br />#pragma comment(lib, "imagehlp.lib")<br />bool CheckExeSum()<br转载 2011-01-24 11:19:00 · 1928 阅读 · 0 评论 -
在 C++ Builder中利用串行通信控件编程
<br /> 摘要:串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛。本文介绍了在C++ Builder中如何利用串行通信控件进行串行通信编程。<br /><br />一、引言 目前,在用计算机进行数据传输时,常用的是串行通信方式。用C++ Builder来编写串行通信程序时,可以调用Windows API函数,也可以利用VB中的MSComm控件。 利用 API函数编写实际应用程序时,往往要考虑多线程的问题,这样编出来的程序不但十分庞大,而且结构比较复杂,继承性差,维护转载 2011-01-24 11:14:00 · 1147 阅读 · 2 评论 -
进程通信——使用WM_COPYDATA消息通信
<br />3.4 使用WM_COPYDATA消息通信<br />对于少量数据可以用WM_COPYDATA方便地实现通信。由于SendMessage()是阻塞的,只有接收方响应了消息,SendMessage()才能返回,否则一直阻塞。所以,对于大量数据来说,用SendMessage()就容易造成窗口假死。3.4.1 通过WM_COPYDATA消息实现进程间通信的方法<br />在Win32中,WM_COPYDATA消息主要目的是允许在进程间传递只读数据。SDK文档推荐用户使用SendMessage()函转载 2011-01-24 11:20:00 · 689 阅读 · 0 评论 -
VC中三种常见中文内码的转换方法(GB2312/GBK/BIG5)
<br /><br />我们平时常见的三种中文内码是:GB2312(简体中文)、GBK、BIG5(繁体中文)。网上有很多中文内码的专用转换工具。我们碰到由于内码不一致而导致的乱麻问题,用这些工具可以进行相互转换。但论坛里经常有人问如何在自己的程序中集成这些功能呢?本文将介绍如何利用 Windows 提供的API 函数来实现。转换涉及到的 API 函数主要有两个:MultiByteToWideChar 和 WideCharToMultiByte。有关这两个函数的详细文档请参考 MSDN,本文不再赘述。 <br转载 2011-01-24 11:15:00 · 1138 阅读 · 0 评论 -
VC++下对匿名管道的编程实现
1 概述管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的进程为管道客户机。一个进程在向管道写入数据后,另一进程就可以从管道的另一端将其读取出来。匿名管道(Anonymous Pipes)是在父进程和子进程间单向传输数据的一种未命名的管道,只能在本地计算机中使用,而不可用于网络间的通信。 2 匿名管道实施细则匿名管道由CreatePipe()函数创建,该函数在创建匿名管道的同时返回两个句柄:管道读句柄和管道写句柄。CreatePipe()的函数原型为: BOO转载 2011-01-24 11:10:00 · 690 阅读 · 0 评论 -
STL中用erase()方法遍历删除元素
<br /> STL中的容器按存储方式分为两类,一类是按以数组形式存储的容器(如:vector 、deque);另一类是以不连续的节点形式存储的容器(如:list、set、map)。在使用erase方法来删除元素时,需要注意一些问题。<br /> 在使用 list、set 或 map遍历删除某些元素时可以这样使用:<br /><br />正确使用方法1 std::list< int> List;<br /> std::list< int>::iterato转载 2011-01-24 11:07:00 · 877 阅读 · 0 评论 -
Spy++原理初探
<br />导读: <br />下载源代码<br />摘要:用Visual Studio搞开发的朋友对Spy++这个工具一定不陌生,它可以分析窗体结构、进程和窗口消息,对开发工作有很大辅助作用。我们需要研究某个对象时,只要调出其查找窗口,拖动探测器的指针到指定窗口/控件上释放即可。下面,笔者就和大家一起,用VC打造一个属于自己的Spy++。<br />关键字:句柄 消息 子类化<br />正文:<br /> 打开VC集成开发环境,建立一个基于对话框的工程。我们把这个工程取名为SpyXX。在窗体中画上一个图转载 2011-01-24 11:25:00 · 782 阅读 · 0 评论 -
进程间通信与线程间通信
<br /><br /> 以前一直想找个机会总结一下进程和线程的通信机制,但由于技术和平台的局限性,一直没有找准切入点。由于马上要毕业了,对自己技术的总结和梳理的前提下写了本篇文章,如有错误之处,敬请拍砖和指教。<br /> 操作系统的主要任务是管理计算机的软件、硬件资源。现代操作系统的主要特点是多用户和多任务,也就是程序的并行执行,windows如此linux也是如此。所以操作系统就借助于进程来管理计算机的软、硬件资源,支持多任务的并行执行。要并行执行就需要多进程、多线程。转载 2011-01-24 11:08:00 · 1302 阅读 · 0 评论 -
VC++:如何将程序最小化到托盘
<br />一、托盘简介 <br /><br />所谓的“托盘”,在Windows系统界面中,指的就是下面任务条右侧,有系统时间等等的标志的那一部分。在程序最小化或挂起时,但有不希望占据任务栏的时候,就可以把程序放到托盘区。其实,托盘区的编程很简单,下面简要阐述一下子喽^_^ <br /><br />二、托盘编程相关函数 <br /><br />其实呢,把程序放到托盘上的本质就是先在托盘区绘制一个图标,然后把程序隐藏不见,再对托盘的图标进行消息处理,就可以了。 <br /><br />绘制图标以及确定图标所转载 2011-01-24 11:25:00 · 652 阅读 · 0 评论