随笔分类 - C/C++/SDK/VC/MFC
摘要:;王爽汇编语言实验七assume cs:code,ds:data,es:tabledata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987','1988','1989','1990',
阅读全文
摘要:assume cs:codesg , ss:stacksg , ds:datasgstacksg segmentdw 0,0,0,0,0,0,0,0stacksg endsdatasg segmentdb '1. display 'db '2. brows 'db '3. replace 'db '4. modify 'datasg endscodesg segmentstart:mov ax , stacksgmov ss , axmov sp , 16mov ax , datasgmov ds , axmov bx , 0mo
阅读全文
摘要:assume cs:codea segmentdb 1,2,3,4,5,6,7,8a endsb segmentdb 1,2,3,4,5,6,7,8b endsc segmentdb 0,0,0,0,0,0,0,0c endscode segmentstart: mov cx , 8 mov bx , 0s:mov dl , 0 mov ax , a mov ds , ax add dl , ds:[bx] mov ax , b mov ds , ax add dl , ds:[bx] mov ax , c mov ds , ax add d...
阅读全文
摘要:三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加载与文件关联的应用程序,ShellExecute还可以打开网页,启动相应的邮件关联发送邮件等等。 CreateProcess 一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的...
阅读全文
摘要:详细解说STL string详细解说STL string0 前言: string 的角色1 string 使用1.1 充分使用string 操作符1.2 眼花缭乱的string find 函数1.3 string insert, replace, erase2 string 和 C风格字符串3 string 和 Charactor Traits4 string 建议5 小结6 附录7 参考文章0 前言: string 的角色C++ 语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没
阅读全文
摘要://Made by syx //Time 2010年8月15日 09:01:57 //1465 不容易系列之一 // //总结:递推求解的基本方法:首先,确认:能否容易的得到简单情况的解? 然后,假设:规模为N-1的情况已经得到解决。最后,重点分析:当规模扩大到N时,如何枚举出所有的情况,并且要确保对于每一种子情况都能用已经得到的数据解决。强调: 1、编程中的空间换时间的思想 2、并不一定只是从N-1到N的分析//1465 不容易系列之一//基本形式:d[1]=0; d[2]=1 //递归式:d[n]= (n-1)*( d[n-1] + d[n-2]) //这就是著名的错排公式1、当N=1和.
阅读全文
摘要://Made by syx //Time : 2010年8月14日 16:20:34 // ////1071 The area//可令抛物线表达式为y= a(x-x1)^2+y1; //直线表达式为y=kx+b; //面积可通过微积分来计算a(x-x1)^2+y1 -(kx+b)在x2到x3区间内的定积分的值则为面积结果。#include <stdio.h>int main(){int n;scanf("%d",&n);while(n--){ double x0,y0,x1,y1,x2,y2,area=0; scanf("%lf %lf %lf
阅读全文
摘要:qsort函数声明如下:void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));参数说明如下: base: 要排序的数组 nmemb: 数组中的元素数目 size: 每个数组元素占用内存空间,可使用sizeof获得 compar: 比较两个数组元素的比较函数。本比较函数的第一个参数值小于、等于、大于第二参数值时,本比较函数的返回值应分别小于、等于、大于零。也就说你要实现一个这样的函数:int cmp(const void *a, const void *b) 如果a
阅读全文
摘要:学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)1、cin 2、cin.get() 3、cin.getline() 4、getline() 5、gets() 6、getchar()附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include <iostream> using namespace std; main () { int a,b;
阅读全文
摘要:下载源代码摘要:本文结合作者在代码性能测试工作中的经验,介绍一组自己封装的的计时函数。使用该组函数可以简化测试工作,从而把更多的精力放在主要工作上,不需要过多地维护计时代码,仅仅使用两个宏就可以方便、精确地实现多个模块、多方式的时间性能测试,并且计时结果以一个文本文件独立保存,清晰直观。关键字:精确计时;性能测试;在系统测试时,尤其在需要测试算法或者某些模块的运行时间时,往往需要调用一些时间函数库(如VC中的timeGetTime等可以获取毫秒级的时间),在待测试的模块前后分别测试时间,然后,计算前后两个时间的差值,就得到模块的运行时间,如图 1。图 1 一个典型的模块计时方法但是,使用原始的
阅读全文
摘要:#include <stdio.h> #include <windows.h> #include <tlhelp32.h>//声明快照函数的头文件DWORD g_arList[1024]; //地址列表 int g_nListCnt=0; //有效地址个数 HANDLE g_hProcess; //目标进程句柄bool CompareAPage(DWORD dwBaseAddr,DWORD dwValue) { //读取一页内存 BYTE arBytes[4096]; if(!::ReadProcessMemory(g_hProcess,(LPVOID*)d
阅读全文
摘要:CreateToolhelp32Snapshot枚举进程 每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序。但是也有为数不少的在后台运行的程序是没有可视界面的,对于这类应用程序用户只能通过CTRL+ALT+DEL热键呼出"关闭程序"对话框显示出当前系统进程列表,从中可以结束指定的任务。显然,该功能在一些系统监控类软件中还是非常必需的,其处理过程大致可以分为两步:借助系统快照实现对系统当前进程的枚举和根据枚举结果对进程进行管理。本文下面即将对此过程的实现进行介绍。 当前进程的枚举 要对当前系统所有
阅读全文
摘要:STARTUPINFO si = {sizeof(si)};PROCESS_INFORMATION pi;char * szCommandLine = "cmd"; si.dwFlags = STARTF_USESHOWWINDOW;si.wShowWindow = TRUE;BOOL bRet =::CreateProcess( NULL, szCommandLine, NULL, NULL, 0, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi);if(bRet){ ::CloseHandle(pi.hProce...
阅读全文
摘要:GDI+ 的使用、1.在你将要使用GDI+的工程中,完成初始化工作,将以下代码加入StdAfx.h头文件中://加入的头文件#include <comdef.h>//初始化一下com口#ifndef ULONG_PTR#define ULONG_PTR unsigned long*#include "GdiPlus.h"using namespace Gdiplus;#endif#pragma comment(lib,"gdiplus.lib")2.在程序初始化部分加入//gdi+用到的两个变量 装载gdi+ GdiplusStartupIn
阅读全文
摘要:一、插入图片到资源:如ID为(IDB_BMP),在这里可以插入256色、16位色或更高色的图片。二、为按钮添加一个变量,类型为:CBitmapButton(需要手动改)三、在初始化程序中加入如下代码:((CBitmapButton *)GetDlgItem(按钮的ID))->LoadBitmaps(按钮可用时显示图片的ID,按钮可用时按下按钮的ID,按钮不可用时显示图片的ID,按钮不可用时按下按钮的ID);((CBitmapButton *)GetDlgItem(按钮的ID))->Invalidate(true);((CBitmapButton *)GetDlgItem(按钮的ID
阅读全文
摘要:发现程序2编译之后所得的.exe文件比程序1的要大得多。发现在程序1.asm中ar的定义如下: _BSS SEGMENT ?ar@@3PAHA DD 0493e0H DUP (?) ; ar _BSS ENDS 而在程序2.asm中,ar被定义为: _DATA SEGMENT ?ar@@3PAHA DD 01H ; ar DD 02H DD 03H ORG $+1199988 _DATA ENDS区别很明显,一个位于.bss段,而另一个位于.data段,两者的区别在于:全局的未初始化变量存在于.bss段中,具体体现为一个占位符;全局的已初始化变量存于.data段中;而函数内的自...
阅读全文
摘要:C/C++内存与运行时深入研究 ----------------------------------------------------------------------------------- (一)整数符号的陷阱 (二)浮点数的本质 (三)堆栈的内存管理结构 (四)符号解析 (五)对齐和总线错误 (六)函数指针 (七)虚函数的实现机理 (八)引用的实现机理 (九)虚拟继承对象的内存结构 (十)混合编程时的初始化顺序 (十一)数组和指针的异同 (十二)const限定的传递性 (十三)数据类型的限定性检查 (十四)使用STL时的类型限制 (十五)迭代器自身的类...
阅读全文
摘要:包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。一、TransparentBlt 函数的使用 TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。 Windows98下的TransparentBlt会产生资源泄漏,所以不建议在WIN98下使.
阅读全文
摘要:一、简介: 象flashget、迅雷、BT等都有浮动窗口,能详细地显示下载的详细信息,该类型的窗口有一下几个特点:1、窗口无标题栏,窗口的大小跟位图一样大。2、前端显示。3、在客户区内按下鼠标左键可以随意拖动窗口的位置。4、可以改变窗口的透明度。5、双击可以将主窗口激活,并显示。下面就该类型窗口的各个功能实现予以说明。 二、代码的详细说明: 1、窗口无标题栏,窗口的大小跟位图一样大。建立一个对话框资源,设置为POPUP类型,并取消Title Bar属性。在上面插入一个图片控件,设置为导入的位图。//得到位图 CBitmap m_Bitmap; HBITMAP hBitmap = m_L...
阅读全文
摘要:禁止拖动对话框方法:在WM_HITTEST对应的消息处理函数OnNcHitTest中直接返回TRUE, 或者当指向对话框标题栏时,返回客户区的值HTCLIENT例子:UINT CWelcomeDlg::OnNcHitTest(CPoint point) { // TODO: Add your message handler code here and/or call default return HTCLIENT; }拖动对话框方法:在WM_HITTEST对应的消息处理函数OnNcHitTest中, 当指向对话框客户区时,返回标题区的值HTCAPTION例子:UINT CDlg::O...
阅读全文

浙公网安备 33010602011771号