Windows
文章平均质量分 77
zhjf14
PC客户端产品开发
展开
-
用InstallShield制作安装包时,有时候需要判断操作系统的类型(如Windows XP或者是Windows Vista等
转自:http://blog.csdn.net/huangxinfeng/article/details/4873847 用InstallShield制作安装包时,有时候需要判断操作系统的类型(如Windows XP或者是Windows Vista等(http://community.flexerasoftware.com/)方法一:采用注册表的方式进行判断,例程如下:NUMBER转载 2012-02-08 16:22:14 · 1274 阅读 · 0 评论 -
输出缓冲区的刷新
重读C++ Primer,才发现endl不仅仅是换行那么简单,还有刷新缓冲区的作用。“程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致对程序崩溃位置的错误判断”。将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿。如果不刷新缓冲区,有的编译器不会将信息写入,而让其停在缓冲区中;有的编译器会让信息在缓冲区待一原创 2012-02-08 23:48:50 · 1203 阅读 · 0 评论 -
VS2008中的调试技巧
关于Bug调试的技巧,现将罗列如下,以后还会继续补充: 1,跳到当前光标处(Ctrl+F10)先将光标定位到要测的代码上,同时按下Ctrl+F10,程序将会直接跳到该行代码处停下。 2,条件中断当程序满足开发人员设定的条件后,条件断点才会被触发,调试器中断。首先在特定代码行上,设定断点,在断点处右键,在弹出的快捷菜单上选择“Condition…”,弹出BreakPoin原创 2012-02-13 16:39:45 · 2869 阅读 · 1 评论 -
Pseudoregisters在MFC里debugging中的应用
转自:http://blog.csdn.net/jianzhanger/article/details/5824373原文地址:http://www.codeproject.com/KB/debug/pseudoregister.aspx 让我们从为什么写这篇文章开始. 一天, 一个学生让我帮助他解决一个调试问题. 为此我看着他单步进入代码, 当我看到如下代码: i转载 2012-05-15 11:32:34 · 331 阅读 · 0 评论 -
Qt安装—搭建VS2008+QT开发环境(转)
(一)工欲善其事,必先利其器,废话不多讲。 总结起来网上流行的VS2008+QT安装说明有以下几个问题需要解释清楚: 1,首先明确需要下载什么版本的QT。网上流行的安装说明只是针对过去旧版本的QT,还有要求下载VS2008 SP1补丁的等等。很乱,对于刚接触Qt开发者会造成不必要的困扰,安装个开发环境真的需要那么繁琐和劳神吗。 2,对于环境变量的配置,诸转载 2013-04-04 23:05:06 · 521 阅读 · 0 评论 -
CoCreateInstance of OLE control failed
1.在将VC6.0的工程转换到VS2005下编译连接都没有问题运行时报错Assert fail in occcont.cpp at line 950 用Windbg调试可执行程序发现有如下错误CoCreateInstance of OLE control {648A5600-2C6E-101B-82B6-000000000014} failed,我在工程里面用了串口的控件,网上查了一下这个问题是串转载 2013-04-07 10:43:36 · 2646 阅读 · 1 评论 -
粗谈pcap_next_ex()
pcap_next_ex(pcap_t* p,struct pcap_pkthdr** pkt_header,const u_char** pkt_data)功能: 从interface或离线记录文件获取一个报文参数: p: 已打开的捕捉实例的描述符 pkt_header: 报文头 pkt_data: 报文内容返回值: 1:转载 2013-04-07 11:22:39 · 2229 阅读 · 0 评论 -
DIY一个DNS查询器:了解DNS协议
每当我们在浏览器上敲入任何一个域名访问某个网站的时候,我们都要使用Dns协议进行一次”域名:IP”的查询;作为命令行使用者,与dns有关用的最多的就是Nslookup 命令吧;作为程序员,以c#程序员为例,要得到一个域名的ip大概也是这么一行“System.Net.Dns.GetHostByName(string UriHostName)”。在这简单使用的背面,很少人会真了解其协议的规转载 2013-04-07 10:09:53 · 638 阅读 · 0 评论 -
Winpcap网络开发库入门
Winpcap是一个强大的网络开发库,可以实现许多功能:获取可用的网络适配器;获取指定适配器信息(比如名称和描述信息);捕获指定网卡的数据封包;发送数据封包;过滤捕获的包以获取特定包等。 首先到http://www.winpcap.org/install/default.htm下载安装winpcap 驱动和DLL组件。 然后到http://转载 2013-04-06 22:07:19 · 647 阅读 · 0 评论 -
Wireshark基本介绍和学习TCP三次握手
阅读目录wireshark介绍wireshark不能做的wireshark VS Fiddler同类的其他工具什么人会用到wiresharkwireshark 开始抓包wireshark 窗口介绍wireshark 显示过滤保存过滤过滤表达式封包列表(Packet List Pane)封包详细信息 (Packet Details Pane)wireshark与对应的OSI七层模型TCP包的转载 2013-04-07 16:25:30 · 619 阅读 · 0 评论 -
DNS查询报文和应答报文抓包分析【1/2】
我使用的抓包软件是科来网络分析系统2010技术交流版,可以从http://www.colasoft.com.cn/download/capsatech.exe免费下载,只需在线填写几项信息过几分钟就可以收到科来发送过来的序列号了,只用了一会但是感觉很不错,推荐一下。 首先在科来里面新建一个工程,只需要DNS报文,然后打开浏览器,输入www.chd.edu.cn,回车就可以在科来里面看转载 2013-04-09 15:09:49 · 3806 阅读 · 0 评论 -
使用QT的qmake工具生成VS工程
本文主要讲怎么使用qmake工具生成的VS的工程文件,对于QT的库不做说明。qt的安装很简单,一路下一步就OK,安装完看看qt的bin目录是否添加中环境变量path中,如果没有,请手动添加。首先,使用的代码例子是QT安装目录下的qmake的示例文件,路径为:C:\QT\4.8.1\examples\qmake\tutorial。将里面的代码拷贝到一个新的文件夹,以免破坏原来的代码。转载 2013-04-15 16:57:09 · 1238 阅读 · 0 评论 -
MFC+MSChart动态显示曲线
最近需要用MFC做一个界面动态显示曲线,自己画坐标轴画曲线太费时间,网上也有很多已实现的动态曲线接口,但是也不太灵活。正好微软有个现成的MSChart,功能比较全面,查了一些资料,总算实现了无闪烁的动态曲线。关于MSChart的安装可以参考上篇文章http://www.cnblogs.com/wy-wangyan/archive/2011/05/06/2038981.html 实转载 2013-04-24 16:59:41 · 1449 阅读 · 0 评论 -
VC++如何使用Mschart 实例-------网络流量监控程序
源代码http://download.csdn.net/source/2402219 我先简单介绍一下我的思路:在初始化对话框中,添加一个InitChart函数,功能是初始化Mschart。同时开启设计器settimer然后通过Ontimer这个定时器的相应函数,每一秒更新一下Mschart。这里面的数据是通过GetNetspeed的函数获得。转载 2013-04-24 17:23:34 · 1360 阅读 · 0 评论 -
VS2008下更改文件所在文件夹
(1):在项目的根目录下生成你所需要的文件夹的层次。(2):在项目的物理位置(即硬盘分区上)建立与上步所建层次一样的文件夹层次。(3):将文件放于以上两步所建立的文件层次。(4):在项目的根目录上单击右键,选择属性->c/c++->general->将以上所建立的几个层次填入"Additional Include Directions"中,例如:$(Solution转载 2013-04-25 10:23:40 · 769 阅读 · 0 评论 -
VS2008LINK : fatal error LNK1000: Internal error during IncrBuildImage
VS2008 LNK1000链接错误 最近在VS2008上做项目,不是很习惯,就编译速度上VS2008就要慢很多,这是公认的,而且还在链接的时候老出现LINK : fatal error LNK1000: Internal error during IncrBuildImage这个错误,但是在编译链接一次就没有问题了,据说这是链接器的问题。上网查了下资料,出现这个问题的人倒是转载 2013-04-25 11:06:45 · 549 阅读 · 0 评论 -
匈牙利命名法
变量(还包括宏)的命名规则,比较系统和彻底的有 Windows 编程中用到的匈牙利命名法。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。有关匈牙利命名法的一点有意思的说明是它的名字的由来转载 2013-04-25 12:15:57 · 518 阅读 · 0 评论 -
编译错误warning C4627
warning C4627: '#include "Markup.h"': skipped when looking for precompiled header use1> Add directive to 'stdafx.h' or rebuild precompiled header原因:没有禁用头文件预处理功能解决办法:原创 2013-04-25 10:34:36 · 4688 阅读 · 0 评论 -
CComboBox使用SetWindowText()无效的解决办法
1.在Resource.h中添加自定义消息#define WM_COMBOBOX_TEXT_CHANGED WM_USER + 1002.在test.h中声明消息处理函数afx_msg LRESULT OnComboBoxTextChanged(WPARAM wParam, LPARAM lParam);3.在test.cpp中添加消息映射处理ON_MESS原创 2013-04-25 17:43:27 · 3764 阅读 · 1 评论 -
qt折线图显示数据
转载:http://blog.csdn.net/zhx6044/article/details/8030249/************************************************* 折线图绘制 author 周翔 2012-8-14 **********************************************转载 2013-04-18 14:40:11 · 2960 阅读 · 0 评论 -
Qt的Tab选项卡
tabdlg.h: #ifndef __TABDLG_H__ #define __TABDLG_H__ #include class QWidget; class QFileInfo; class QTabWidget; class QDialogButtonBox; //常规选项卡 class GeneralTa转载 2013-04-18 12:16:37 · 977 阅读 · 1 评论 -
windows下发布Qt程序
From: http://hi.baidu.com/limingfantasy/blog/item/22f6c459b8720086810a182e.htmlwindows下发布Qt程序2008-12-19 12:32以下包括了部分网上收集的,以及qt帮助里的内容(Deploying an Application on Qt/Windows)环境是QT 4.3.3转载 2013-04-18 12:18:01 · 868 阅读 · 0 评论 -
微软图表控件MsChart使用初探
昨天在网上看到了微软发布了.NET 3.5框架下的图表控件,第一时间抓下来看了一下,发觉功能很强劲,基本上能想到的图表都可以使用它绘制出来,给图形统计和报表图形显示提供了很好的解决办法,同时支持Web和WinForm两种方式,不过缺点也比较明显,只能在最新的开发环境中使用,需要.Net 3.5 Sp1以及VS 2008的开发环境。下面是下载地址: 控件:Microsoft转载 2013-04-19 11:05:27 · 601 阅读 · 0 评论 -
自定义图谱控件
先上一张效果图吧 这个是我曾经上传过的一个资源——自定义图谱控件使用范例。记得那个时候应该是毕业设计如火如荼日渐焦灼的时期,论坛里很多朋友询问有没有什么好的绘制图谱的控件。当然多数网友推荐mschart等成熟控件,不过我一直建议对于简单的图谱可以自行绘制。因为我现在的工作就是做上位机开发,在我的项目中也需要显示采集上来的数据,刚到公司时就一直在做这个图谱控件,后来经过一段转载 2013-04-19 11:10:49 · 1010 阅读 · 0 评论 -
VS2008的环境下,使用MFC和MSChart小结
用C++处理数据,想用图表的形式展现出来。发现微软有一个叫做MSChart的控件,但是网上找到的都是在C#中怎么使用,以及VC6.0中的MFC里添加MSChart. 1、安装。 依次装上dotnetfx35setup.exe,MSChart.exe,MSChart_VisualStudioAddOn.exe。2、去网上下一个mschrt20.ocx,放在C:/W转载 2013-04-19 11:52:07 · 1382 阅读 · 0 评论 -
VS2008 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/dlgdata.cpp 错误调试
在VS2010 运行一个C++ 程序,出现下图错误:一看到这个,我头都大了。关键是 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/dlgdata.cpp 这个路径根本在我计算机不存在。但是估计在安装目录下。联想到最近更新到VS2010_sp1 ,但是发行包:en_visual_c++_2010_sp1_redistributab转载 2013-04-27 15:58:12 · 870 阅读 · 0 评论 -
MFC类成员函数作为线程函数的解决办法
2009-10-04 - [开发语言]版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://efaq.blogbus.com/logs/47605752.htmlWin32 API多线程编程例程中,建立线程的函数为:HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,转载 2013-04-27 15:59:18 · 1581 阅读 · 0 评论 -
MFC——TeeChart图标控件的注册及控件插入
TeeChart Pro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择。TeeChart还包括一个强大的、完整的编辑对话框,几乎可用于每个组件和子组件,允许你快速的设计复杂图表应用程序。图表编辑器通过TeeCommander组件进一步得到增强,它提供一次点击访问图表编辑器和共同特征。TeeChart的主类是TChart。Te转载 2013-04-19 09:51:48 · 1902 阅读 · 0 评论 -
error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
1>Linking...1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)转载 2013-04-28 11:15:58 · 1263 阅读 · 0 评论 -
VC 6.0编译器错误整理
统一格式:ID.【错误提示】:编译器提示的错误信息 【说 明】:产生此错误的根本原因 【解决方法】:解决此错误的具体方法 1. 【错误提示】: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 【说 明】: Win转载 2013-04-28 11:17:50 · 629 阅读 · 0 评论 -
VS2008如何在release下调试
一般都是在debug下调试程序,但有时候,为了加快调试速度,或者debug版本由于库的缺失,编译不过,需要在release下进行调试。代码的调试相关的信息存在pdb中,里面包括了代码的名称和行数,还有函数的地址,偏移等,通过pdb,可以讲二进制和源代码联系起来。所以,当程序崩溃的时候,可以通过生成的dump文件和pdb在开发者的机器上进行调试。首先要在【转载 2013-04-28 14:59:56 · 658 阅读 · 0 评论 -
如何在vs2008中添加lib 静态库使用
方法1:在cpp文件中 加入 #pragma comment(lib,"XXX.lib")方法2:步骤1:Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程,若不设置,编译报错:无法打开***文件) 步骤2:Proj转载 2013-04-28 14:37:54 · 602 阅读 · 0 评论 -
有关静态lib编译的注意点
最近遇到过静态库编译的一些问题 仅此记录下解决方法1. 原工程为动态库工程,现应要求将其改编成静态库编译首先新建了一个staticlib工程,将原来的。h.cpp 文件加入到该工程中,这里比对了下 工程设置 staticlib 中多出一个library 对话框项c++ 对话框项中的 preprocessor 中 预定义宏出现了 “_LIB”, 对比两个 d转载 2013-04-28 14:34:19 · 1406 阅读 · 0 评论 -
MFC文件压缩
使用CInfoZip完成文件压缩。需要的头文件和dll可以到下面下载:InfoZip.h, InfoZip.cpp, UnzipDLL.h, ZCallBck.h, ZipDLL.h, UNZDLL.DLL, ZDLL.DLLhttp://download.csdn.net/detail/jiayou8809/5312482代码:CString CFileDownload:原创 2013-04-28 18:05:58 · 1675 阅读 · 1 评论 -
vc中调用Flex的总结
该文章讲述了VC Dialog中使用FLEX的生成文件SWF,VC可调用FLEX中的方法,FLEX中可调用VC的方法。以下是简单的实例代码。该文章针对读者:具备FLEX开发基础,熟悉VC6.0 编程环境:VC6.0 FLEX3.2 FLASH_PLAYER_10_ACTIVE_X.EXE(要注意控件的版本,否则可能会引起不必要的错误。转载 2013-05-15 19:12:37 · 683 阅读 · 0 评论 -
MFC对话框最小化到托盘
1、在资源中的Icon中导入一个自己喜欢的图标,ID命名为IDR_MAINFRAME,将先前的IDR_MAINFRAME的图标删除掉;2、在自己的Dialog头文件中定义一个变量 NOTIFYICONDATA m_nid,关于该结构体的具体信息可以查阅MSDN;3、添加消息响应函数OnInitDialog(),并在该函数中添加以下代码,这样程序一启动,就在托盘中显示出了自己应用程转载 2013-05-16 16:30:16 · 509 阅读 · 0 评论 -
VC2008配置boost库使用正则表达式的步骤
1、下载与安装boost库,下载地址:http://sourceforge.net/projects/boost/files/boost/1.39.0/,将其解压到E:\boost目录。2、编译动态库,本处只要支持正则表达式就可以,因此只需要编译E:\boost\libs\regex\build目录下的文件。这步比较关键。具体操作:[1] 在“运行”里输入“cmd”,打开命令提示符;转载 2013-05-07 10:23:20 · 662 阅读 · 0 评论 -
动态创建控件的消息响应添加
某些情况下,我们需要在窗口上进行新添控件的操作,但在团队软件开发中,如果直接在已有界面进行控件拖放式添加,这操作必会改变资源文件,资源文件的更改可导致整个项目的重编译,对其它参与者的干扰较大,为尽量减小这种干扰,我们尽量用动态创建控件的方式来添加特例控件,但是动态创建的控件中,除了诸如STATIC或EDIT这类基本不对其事件进行额外响应的控件外,有些需要我们对其事件响应有其它的处理,如ComboB转载 2013-05-21 15:48:28 · 1183 阅读 · 0 评论 -
在CHtmlView中判断页面加载完成
论坛上有人问如何在CHtmlView中判断页面加载完成。这里给出一点想法。首先想想这个问题如果是在JS里面是如何实现的。JS里面最简单的方式就是利用onload事件让一段JS在页面加载完成后启动。使用onload事件的好处是,能够保证页面上的image图片都已经加载完成。比如:window.onload = function() { //转载 2013-05-23 11:11:48 · 727 阅读 · 0 评论 -
WebBrowser控件——设置滚动条位置
遇到一个问题:在用WebBrowser控件打开网页后,让网页中的滚动条滚动到最底部。在网上找到了方法:用DCOM组件技术,获取HTML接口指针。(前一阵做调用网页中的JavaScript函数也是采用这种技术)。代码如下:boolput_scrollTop(){ HRESULT hr; CComPtr spDisp; IHTM转载 2013-05-23 12:16:13 · 1730 阅读 · 0 评论