自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何使用Fiddler 进行手机抓包?

第一部分下载并安装fiddler1、使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。2、fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fiddler.exe】文件3、双击文件后,可以按照下面的流程进行安装。如果是汉化版的那就更简单明了了4、...

2020-01-21 14:50:00 245

原创 功能测试详解

黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。 黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并

2015-12-24 14:09:54 1254

原创 软件测试的目的

软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的商业假设。  不同的机构会有不同的测试目的;相同的机构也可能有不同测试目的,可能是测试不同区域或是对同一区域的不同层次的测试。  在谈到软件测试时

2015-12-24 10:34:28 3155

原创 如何应对不明需求做好测试

在日常需求的测试过程中,因为时间和资源的相对紧张,往往会遇到PRD不够细致,而UC描述也过于简单的情况,这个时候会让经验不够丰富的测试人员有种无从入手的感觉。其实由于思考方式、对需求的理解程度、开发和编写UC的经验、以及文字描述的习惯不同,开发人员首次提交的UC,并不一定能立即指导测试人员编写出一系列相对健壮的TC。  虽然说测试人员有权利退回需求不明的测试任务,但是在遇到“不得已而为之”的时

2015-12-24 10:22:34 1079

原创 优秀的界面设计技巧

原文地址:Good UI http://goodui.org并且不时会有更新。。。

2015-12-23 11:27:57 412

原创 junction.exe的使用方法

junction.exe 是 Sysinternals 出品的命令行工具,其可以创建和删除符号链接。要创建一个符号连接:junction连接名称 要连接哪一个目录例如:C:\>junction test_www d:\wwwJunction v1.05 - Windows junction creator and reparse point viewerCopy

2013-08-27 13:18:34 2442

转载 腾讯副总裁张小龙谈用户体验

点击打开链接

2012-06-01 10:26:05 5066

转载 MongoDB最佳实践

将MongoDB加入到我们的服务支持列表中,是整个团队年初工作计划中的首要任务。但我们感觉如果先添加一项对NoSQL存储的支持,而不是先升级已支持的关系型数据库,可能对用户不太好,毕竟目前的用户都使用关系型数据库。所以我们决定将引入MongoDB这项工作放到升级MySQL和PostgreSQL之后来做。到目前为止,MySQL 5.5的Beta版已在进行中,而PostgreSQL的9.1 Bet

2012-02-14 15:57:22 587

原创 仿百度文库、豆丁在线阅读(FlashPaper,FlexPaper)参考资料

1.FlashPaper实现比较快,但是只能在32位机器上使用(在64位机器上安装失败)2.FlexPaper虽然比较麻烦,但是支持64位机器,下面我介绍一下实现的步骤:实现步骤:(免费的)     文档(TXT/Word/Excel/PPT)----> 转换为pdf ----> 转换为SWF   -----> 使用FlexPaper在线浏览第一步:文档--->转换为pdf。用op

2011-10-28 11:45:02 4679

原创 ISO分割方法

可以用UltraISO提供的ISZ镜像压缩功能,不过不是用来压缩,是用来分割的 具体如下:1 安装UltraISO(版本尽量新一点) 2 打开UltraISO->选项-〉配置-〉压缩 压缩方式选择 “不压缩”,选择 “分割成文件段”,然后在下面选择你要分割的大小,比如:700M

2011-07-21 10:03:41 5834

原创 删除某目录下的所有文件以及删除文件夹

void DelFile(const string& strCurrentDirectory){WIN32_FIND_DATA fdDesktop = {0};char strDesktopPath[_MAX_PATH];sprintf(strDesktopPath,"%s\\*

2011-07-21 10:02:03 710

原创 UltraISO命令行参数

一、UltraISO命令行参数:-volume string    设置卷标  Volume Label-sysid string     系统ID    System ID-appid string     应用程序  ID Application ID-v

2011-07-05 11:04:20 9048

原创 性能监视类

// PerfMon.h: interface for the CPerfMon class.////////////////////////////////////////////////////////////////////////// By Mike Ryan ([email protected])// Copyright (c) 2000, portions (c) Allen Denve

2011-06-30 13:59:00 1042

原创 #pragma data_seg用法总结

Windows在一个Win32程序的地址空间周围筑了一道墙。通常,一个程序的地址空间中的数据是私有的,对别的程序而言是不可见的。但是执行STRPROG的多个执行实体表示了STRLIB在程序的所有执行实体之间共享数据是毫无问题的。当您在一个STRPROG窗口中增加或者删除一个字符串时,这种改变将立即反映在其它的窗口中。 在全部例程之间,STRLIB共享两个变量:一个字符数组和一个整数(记录已储存

2011-06-30 13:49:00 763

原创 VC下利用ADO连接Access数据库

<br />#include <iostream.h>#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename ("EOF", "adoEOF") int main(){ //使用ADO连接数据库... //-------------------------------------------------------------------------------

2011-03-07 11:22:00 772

原创 收集的代码相关网站是以C/C++为主的

<br />http://search.csdn.net/<br />CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。<br />http://snippets.org/<br />简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。<br />http://www.codase.com/index.html<br />它是一个代码搜索引擎,特别是搜索c/c++的开源代码,可以通过函数名、类名等搜

2011-01-25 11:47:00 555

原创 c++ 文件操作

<br />1.直接I/O文件操作<br />  这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和fcntl.h中定义,在使用时要加入相应的头文件。<br />函数 说明

2011-01-24 11:21:00 456

原创 C++ std::string --- 你可能不知道的一些用法

<br />toupper, tolower<br />地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:<br />string s("heLLo");<br />transform(s.begin(), s.end(), s.begin(), toupper);<br />cout << s << endl;<br />transform(s.begin(), s.end(), s.begin(), tolower);<br />cout <<

2011-01-24 11:18:00 617

原创 Base64编码

<br />#include "StdAfx.h"<br />#include "Base64.h"<br /><br />string<br />CBase64::encode(const vector<unsigned char>& plainSeq)<br />{<br />    string retval;<br />    if(plainSeq.size() == 0) <br />    {<br />        return retval;<br />    }<br /> <br /

2010-12-29 16:56:00 457

原创 UTF8与GB2312之间转换的工具函数

<br />// UTF8转GB<br />std::string UTF8ToGB(const char* str)<br />{<br /> std::string result;<br /> WCHAR *strSrc;<br /> TCHAR *szRes;<br /> //获得临时变量的大小<br /> int i = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);<br /> strSrc = new WCHAR[i+1];<br /> Mu

2010-12-29 16:41:00 769

原创 c++ 连接ACCESS数据库所需要的东西

<br />#import "../bin/msado15.dll" no_namespace rename ("EOF", "adoEOF")<br />#import "../bin/msjro.dll" no_namespace<br /> <br />// 压缩Access数据库<br />static bool compressMDB(const std::string& strFileName, const std::string& strNewFileName)<br />{<br /> Co

2010-12-29 16:40:00 3452 1

原创 创建路径

<br />BOOL CreatePath(LPCTSTR lpszDir)<br />{<br /> if(lpszDir==NULL || _tcslen(lpszDir)==0)<br />  return FALSE;<br /> <br /> // base case . . .if directory exists<br /> if(IsPathExist(lpszDir))<br />  return TRUE;<br /> CString strDir(lpszDir);<br /> if(

2010-12-21 12:30:00 720

原创 NSIS制作自己的安装包

想必大家都用过WinAMP 来播放MP3音乐,也都熟悉了WinAMP 的安装界面。它的安装程序小巧玲珑,简单直观。想为你自己编的程序制作一个这样的安装界面吗?完全可以,因为有免费的NSIS。它的全称是Nullsoft Installation System,和著名的WinAMP一样,都是出自Nullsoft公司之手,而且它也是免费的,不存在任何时间限制或功能限制。<br />NSIS安装程序使用‘MakeNSIS’程序来编译一个 NSIS 脚本(.NSI) 成为一个可执行的安装程序的。<br /><br /

2010-11-10 10:15:00 18048 1

原创 DNS解析协议的C语言简单实现

<br />仔细看了看DNS协议的相关东西,其实实际编程的时候根本用不到DNS细节的东西,要获取域名的时候经终端下用host或者nslookup指令就可以,在c里面使用gethostbyname或者getaddrinfo都能很轻松得将dns域名解析为ip地址,写这个纯粹出于个人兴趣,或者说是闲得吧。<br />在进行域名解析的时候,解析程序向域名服务器发起请求,域名服务器也就是在操作系统网络配置的时候写进去的那个DNS服务器地址,或者也有可能是由ISP提供的自动获取的,原理都一样,域名服务器收到请求后进行处

2010-11-10 10:09:00 7404 1

原创 MIME编码介绍

<br />MIME的编码介绍(由网上资料和实践经验整合) <br />一、MIME: Multipurpose Internet Mail Extensions <br />英国帝国大学计算机在线字典FOLDOC对MIME的解释为:“多部分(multi-part)、多媒体电子邮件和WWW超文本的一种编码标准,用于传送诸如图形、声音和传真等非文本数据。MIME定义于RFC1341,用MIMENCODE的方法将二进制数据转换成为一种被称为BASE64的ASCII子集的字符的组合。” <br />Interne

2010-11-10 10:07:00 1689 1

原创 MIME协议分析

<br />第1章.     MIME概述<br />MIME, 全称为“Multipurpose Internet Mail Extensions”, 比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049(注意RFC1521和RFC1522是它的过时版本)。<br />MIME试图在不改变SMTP协议和RFC822(邮件格式标准)的基础上,使得邮件可以传送任意二进制文件。为此,它在这些协议之上,采取了一些措施,这就是我们下面所要重点

2010-11-10 10:05:00 625

原创 Test_RAND()

<br />// test.cpp : Defines the entry point for the console application.<br />//<br />#include "stdafx.h"<br />#include <vector><br />#include <fstream><br />#include <sstream><br />#include <iostream><br /> using namespace std;<br />int _tmain(int argc, _

2010-08-30 17:04:00 611

原创 总结一下SHFileOperation的用法,希望对大家有用

<br /><br />总结一下SHFileOperation的用法,希望对大家有用<br />//删除文件或者文件夹<br />bool DeleteFile(char * lpszPath) <br />{ <br />SHFILEOPSTRUCT FileOp={0}; <br />FileOp.fFlags = FOF_ALLOWUNDO |   //允许放回回收站<br />      FOF_NOCONFIRMATION; //不出现确认对话框<br />FileOp.pFrom = lpszP

2010-08-11 11:59:00 679

原创 1.设置窗体的位置2.调用进程3.

1.SetWindowPos(&wndTopMost,0,0,201,30,SWP_NOMOVE | SWP_SHOWWINDOW);2.char achDir[_MAX_PATH]; GetModuleFileName(NULL, achDir, _MAX_PATH); CString strTemp = (CString)achDir; int nIndex = strTemp.Rever

2010-04-08 16:40:00 399

原创 钩子函数学习

------------------------------------------------设置钩子-------------------------------------------------------------------SetWindowsHookEx( idHook: Integer;  {钩子类型} lpfn: TFNHookProc; {函数指针} hmod: HINS

2009-10-27 10:26:00 501

原创 SQL Server 数据库导入导出部分

1.在查询分析器下查询Excel文档Select * from OpenDataSource(Microsoft.Jet.OLEDB.4.0,Data Source = "c:/测试.xls";User ID = Admin;Password=;Extended properties=Excel8.0)....Sheet1$2.从数据库中导出数据并存到文件中EXEC mast

2009-09-24 23:16:00 443

原创 .NET框架与COM-.NET教程.NET Framework

可复用软件不是一个新概念。八年来,人们一直在使用各种形式的组件对象模型(com)。事实证明,它是最为成功的可复用软件模型。com引进了“组件”的概念——它是可复用的代码块,可以将多个独立函数的功能进行组合,从而扩充成诸如microsoft word这样的应用程序。 大多数开发人员使用ole时深刻体验了com功能。ole是基于com形成的一组功能,使得用户能将一种文档嵌入到另一种文档中。这个功能

2009-07-28 17:04:00 654

原创 一些好的学习网址

地址: http://chs.gotdotnet.com/quickstart/ 描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。 **************************************************** 名称:微软官方.NET指导站点 地址: http://www.gotdot

2009-07-28 16:59:00 363

原创 Afx全局函数  数据类型 字符串转化函数

Afx全局函数及MFC常见数据类型AfxBeginThread:开始一个新的线程AfxEndThread:结束一个旧的线程AfxFormatString1:类似printf一般地将字符串格式化AfxFormatString2:类似printf一般地将字符串格式化AfxMessageBox:类似Windows API 函数 MessageBoxAfxOuputDebugString:将字符串输往除错

2009-07-28 16:57:00 687

原创 C++文件流

在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准

2009-07-28 16:56:00 457

原创 c/vc++ 环境下不同的文件长度获取方法

(一)对文件操作时有时获得文件的大小时必要的.下面是获得其大小小的较简单方法.#include   //C语言头文件#include   //for system();using namespace std;int main(){  int handle;  handle = open("test.txt", 0x0100); //open file for read  long length =

2009-07-28 16:56:00 1459

原创 C++中文件的输入输出

C++ 通过以下几个类支持文件的输入输出:ofstream: 写操作(输出)的文件类 (由ostream引申而来) ifstream: 读操作(输入)的文件类(由istream引申而来) fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(Open a file)对这些类的一个对象所做的第一个操作通常就是将它和一个真正的文件联系起来,也就是说打开一个文件。被

2009-07-28 16:55:00 1426

原创 四种程序启动画面的制作方法(VC)

使用启动画面一是可以减少等待程序加载过程中的枯燥感(尤其是一些大型程序);二是可以用来显示软件名称和版权等提示信息。怎样使用VC++制作应用程序的启动画面呢?本文提供四种方法,前三种适用于基于文档的应用程序,第四种适用于基于对话框的应用程序。 1.利用组件库中的Splash Screen组件实现  (1)用Photoshop等制作启动画面图像,保存为bmp格式。   (2)用Appwiza

2009-07-28 16:54:00 574

原创 MFC绘图1--使用不同DC 

//使用HDC绘图/*HDC hdc;hdc=::GetDC(m_hWnd);MoveToEx(hdc,m_ptOrigin.x,m_ptOrigin.y,NULL);LineTo(hdc,point.x,point.y);::ReleaseDC(m_hWnd,hdc);*///所有跟窗口相关的操作都被封装在CWnd类中 //所有跟绘图相关的操作都被封装在CDC类中//使用CDC绘图/*CDC

2009-07-28 16:53:00 404

原创 VC 常见的108个问题

guomei的专栏登录 注册 欢迎 退出 我的博客 配置 写文章 文章管理 博客首页   全站 当前博客  空间 博客 好友 相册 留言 用户操作 [发私信]  [加为好友]  李泽敏ID:guomei共8677次访问,排名14705(-3),好友3人,关注者5人。能精通VC编程,嵌入式开发,以及精通软硬件编程的朋友guomei的文章原创 47 篇翻译 0 篇转载 35 篇评论 0 篇订阅我的

2009-07-28 16:51:00 618

CuteFTP 6.0 中文破解版

CuteFTP 6.0 中文破解版

2012-04-10

mongodb学习手册.pdf

初学Mongodb的好帮手,简要清晰,希望对大家有帮助

2012-04-10

EasySize - Dialog resizing in no time!

Introduction Have you ever thought of how annoying it actually was to spend a lot of time doing a basic GUI for your simple applications instead of focusing on the actual 'content'? Take for example a resizing dialog or property page. You need to write code for each control that will tell it where to go when the thing is resized, and this can take up a lot of time. Now I know that I'm not the first one to give a solution to this (CResizableDialog), but this article is on my approach. Description Basically, all you need to do is design your dialog the way you want it to look in the resource editor (don't forget to make it resizable), and then define how the controls will behave when the dialog is resized using one single macro for each control. Usage Note that all this works exactly the same way with both CDialog and CPropertyPage 1.#include EasySize.h to your stdafx.h (or put it in your include directory and #include <EasySize.h> , which I recommend) 2.Add DECLARE_EASYSIZE anywhere in your class declaration: Collapse | Copy Code class CEasySizeDemoDlg : public CDialog { DECLARE_EASYSIZE ...3.Create an OnInitDialog handler if it doesn't already exist, and put this in the end of it: "INIT_EASYSIZE;" : Collapse | Copy Code BOOL CEasySizeDemoDlg::OnInitDialog() { CDialog::OnInitDialog(); ... INIT_EASYSIZE; return TRUE; // return TRUE unless you set the focus to a control } 4.Create an OnSize handler and add the UPDATE_EASYSIZE; macro to it: Collapse | Copy Code void CEasySizeDemoDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); UPDATE_EASYSIZE; } 5.Optional - If you want your dialog to have a minimum size, then create an OnSizing handler and add the EASYSIZE_MINSIZE macro as below: Collapse | Copy Code void CEasySizeDemoDlg::OnSizing(UINT fwSide, LPRECT pRect) { CDialog::OnSizing(fwSide, pRect); EASYSIZE_MINSIZE(280,250,fwSide,pRect); } //(in this example, 280 is the minimum width and 250 the //minimum height we want our dialog to have)6.Now you have to create the "EasySize Map" (or whatever you want to call it) in which you will specify the behavior of each dialog item. It can be placed anywhere inside your class implementation. The map looks like this: Collapse | Copy Code BEGIN_EASYSIZE_MAP(class_name) ... EASYSIZE(control,left,top,right,bottom,options) ... END_EASYSIZE_MAP The map from the demo application looks like this: Collapse | Copy Code ... //}}AFX_MSG_MAP END_MESSAGE_MAP() BEGIN_EASYSIZE_MAP(CEasySizeDemoDlg) EASYSIZE(IDC_TITLE,ES_BORDER,ES_BORDER, ES_BORDER,ES_KEEPSIZE,ES_HCENTER) EASYSIZE(IDC_RADIO1,ES_BORDER,ES_BORDER, ES_KEEPSIZE,ES_KEEPSIZE,0) EASYSIZE(IDC_RADIO2,ES_BORDER,ES_BORDER, ES_KEEPSIZE,ES_KEEPSIZE,0) EASYSIZE(IDC_CONTENT,ES_BORDER,ES_BORDER, ES_BORDER,ES_BORDER,0) EASYSIZE(IDC_STATUSFRAME,ES_BORDER,ES_KEEPSIZE, ES_BORDER,ES_BORDER,0) EASYSIZE(IDC_STATUS,ES_BORDER,ES_KEEPSIZE, ES_BORDER,ES_BORDER,0) EASYSIZE(IDOK,ES_KEEPSIZE,ES_KEEPSIZE, ES_BORDER,ES_BORDER,0) EASYSIZE(IDCANCEL,ES_KEEPSIZE,ES_KEEPSIZE, ES_BORDER,ES_BORDER,0) EASYSIZE(IDC_MYICON1,ES_BORDER,IDC_RADIO2,IDC_CONTENT, IDC_STATUSFRAME,ES_HCENTER|ES_VCENTER) EASYSIZE(IDC_MYICON2,ES_BORDER,ES_BORDER,IDC_TITLE, ES_KEEPSIZE,ES_HCENTER) END_EASYSIZE_MAP /////////////////////////////////////////////////////////////// // CEasySizeDemoDlg message handlers ... Looks confusing? It's not once you get the point (and I know I'm not good at explaining it) Read on. EASYSIZE Macro The EASYSIZE macro is used in the EasySize Map to specify what behavior your controls will have on dialog resize. It looks like this: Collapse | Copy Code EASYSIZE(control,left,top,right,bottom,options)control is the ID of the dialog item you want re-positioned (which will be referred to as the 'current control' further on). left, top, right and bottom can be either the ID of another control in the dialog (not the current control), or one of the special values, ES_BORDER and ES_KEEPSIZE. Basically, if you specify an ID, the distance from the current control and the item designated by the ID will remain the same when the dialog is resized: The current control will 'stick' to the other item. ES_BORDER works the same way as if you had specified a control ID, except that it's the distance between the current control and the dialog border that will be kept constant. Specifying ES_KEEPSIZE in, let's say left, will keep the width of the current control the same, and will make the current control right-aligned to whatever you specified in right. The width (or height, if you specified ES_KEEPSIZE in top or bottom) of the current control will always remain what it is in the dialog resource. (I know this explanation sucks, but look at the demo application if you are confused or post you question in the board below). Obviously ES_KEEPSIZE cannot be specified in both "left and right" or "top and bottom". options can be a combination of ES_HCENTER, ES_VCENTER and 0 (use 0 if you don't want any of the other). ES_HCENTER horizontally centers the control between the two items specified in left and right (both of those can not be ES_KEEPSIZE!). The width of the current control will always remain the same as in the dialog resource. ES_VCENTER works the same way, but for vertical centering (using top and bottom, and where the height will remain constant).

2011-05-16

FTPTestDevCPP

控制台调用ftp封装类实例,很好用,希望对大家有所帮助

2011-03-17

FTP Client Class

很好用的FTP封装类 not based on MFC-sockets not using other MFC-stuffs like CSring(uses STL) supports Firewalls supports resuming can be easily extended

2011-03-17

空空如也

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

TA关注的人

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