- 博客(43)
- 资源 (10)
- 收藏
- 关注
原创 CMarkup的保存与读取
CArray arTest; // 动态数组的创建 存的是指向结构体的指针 这样效率快 struct Stest { int nData; float fData; CString strData; } ArTest arTest; STest *pTest1 = new STest(1, 1.0f, _T("111")); STest *pTest2 = new STes
2015-05-15 13:40:55
1104
原创 MFC CArchive 使用实例 文件保存与读取
12:21:43张治国v老师 2015/5/8 12:21:43struct STestSer { friend CArchive &operator<<(CArchive &ar, STestSer const& aTestSer) { ar<<aTestSer.nData; ar<<aTestSer.fData; ar<<aTestSer.strData; return
2015-05-08 12:25:44
1741
原创 MFC 多线程拷贝文件开始暂停停止和进度条
如图建一个基于对话框 代码如下 一个头文件一个cpp// CopyFileDlg.h : 头文件//#pragma once#include "afxcmn.h"#include "afxwin.h"UINT MyThreadFun(LPVOID pParam);// CCopyFileDlg 对话框class CCopyFileDlg : public CDia
2015-04-30 15:35:58
2850
原创 基于MFC画时钟防闪烁通用
基于单文档的修改CChildView.h和CChildView.cpp即可CChildView.h// ChildView.h : CChildView 类的接口//#pragma once// CChildView 窗口class CChildView : public CWnd{// 构造public: CChildView();// 属性pub
2015-04-27 09:35:24
1336
原创 int类型转换成字符串和字符串转换成int类型以及在MFC静态文本框显示数字的方式方法
CString temp = L"1234"; int i = _ttoi(temp);//把字符串数字转换成int类型 int temp2=0; temp.Format(L"%d", temp2);//把int类型转换成CString对象的字符串必须使用的格式 SetDlgItemInt(IDC_STATIC2, i); //没有绑定变量的静态文本显示数字
2015-02-03 20:20:19
1743
原创 xx小火箭原理
遍历内存相关API获取内存信息GlobalMemoryStatusEx遍历进程相关APINtQuerySystemInformation 打开进程获取进程句柄hProcess = OpenProcess(SET_QUOTA,FALSE,dwProcessId);核心代码函数设置内存大小压到硬盘SetProcessWorkingSetSize(hP
2015-01-18 21:00:43
1076
原创 IOCP原理
// 完成端口.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "Winsock2.h"#pragma comment(lib,"WS2_32.lib")//完成键的结构体typedef struct _COMPLETIONKEY{ SOCKET sock; int ErrorCode;}COMPLETIONKEY
2015-01-15 15:45:05
594
原创 一个域名解析的举例
hostent * phostent; //指定hostent结构的指针in_addr in; //IPV4地址结构if((phostent = gethostbyname("www.15pb.com"))==NULL)printf("gethostbyname() 错误: %d",WSAGetLastError());else{//拷贝4字节的
2015-01-13 09:59:18
898
原创 SQL 基础用法语句
--CREATE DATABASE PRODUCTMANAGER--USE PRODUCTMANAGER--CREATE TABLE CLASS(--ID INT PRIMARY KEY IDENTITY(1,1),--C_NAME VARCHAR(30) NOT NULL--)--USE PRODUCTMANAGER----创建商品表--CREATE TABLE PRODUCTS
2015-01-11 15:05:17
599
原创 new模态和非模态对话框的建立和释放
非模态建立 在主窗口的ok按钮中添加 void CwscMFCDlg::OnBnClickedOk(){ MyDlog * dlg = new MyDlog; dlg->Create(IDD_DIALOG1, this); dlg->ShowWindow(SW_SHOW);}void CwscMFCDlg::OnBnClickedOk(){ MyDl
2015-01-08 21:45:37
801
原创 遍历对话框中的控件
在主对话框的cpp文件中 找到OnInitDialog()函数我自己对话框的命名下额外代码处添加的的遍历代码如下BOOL CMFCApplication2Dlg::OnInitDialog(){ CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((
2015-01-07 21:50:37
940
原创 dll远程注入
// ConsoleApplication16.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ if (szDllName[0] == NULL) return -1; //打开进程 HANDLE hProcess = OpenProcess(PR
2014-12-31 16:26:23
594
原创 内存映射文件夸进程通讯 a和b通讯
// ConsoleApplication10.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ //1.创建命令的文件映射 HANDLE hMapFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL,
2014-12-29 16:52:27
570
原创 内存映射文件 典型应用
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ HANDLE hFile; //文件句柄 HANDLE hMapFile; //文件内存映射区域的句柄 LPVOID lpMapAddress; //
2014-12-29 16:04:41
620
原创 添加一个可增长的堆
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include int _tmain(int argc, _TCHAR* argv[]){ LPVOID lpMem; //创建一个可增长的堆: HANDLE hHeap = HeapCreate(HEAP_NO_SERIALIZE, 0, 0);
2014-12-29 15:42:07
516
原创 虚拟内存管理-分配内存空间 VirtualAlloc使用
// ConsoleApplication9.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include int _tmain(int argc, _TCHAR* argv[]){ LPVOID lpvBase = VirtualAlloc( NULL, // 1024*64*5,
2014-12-29 15:05:03
1291
原创 信号量
// ConsoleApplication3.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include int g_nNum = 0;HANDLE g_hSemaphore = nullptr;DWORD WINAPI ThreadProc(LPVOID lpParam){ for (int i = 0; i < 5;i+
2014-12-28 16:20:52
600
原创 事件是在线程同步中最常用的一种同步对象,可手动自动状态。
// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include int g_nNum = 0;HANDLE g_hEventA = nullptr;HANDLE g_hEventB = nullptr;DWORD WINAPI ThreadProcA(LPVOID lpParam)
2014-12-28 15:23:58
575
原创 互斥对象是一个分成简单的多线程同步的内核对象。
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include int g_nNum = 0;HANDLE g_hMutex = nullptr;DWORD WINAPI ThreadProc(LPVOID lpParam){ for (int i = 0; i < 5; i++
2014-12-28 15:03:09
558
原创 临界区的api原型 EnterCriticalSection和 LeaveCriticalSection
// doit.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include int g_nNum = 0;CRITICAL_SECTION g_stcCtlStn = { 0 };DWORD WINAPI ThreadProc(LPVOID lpParam){ for (int i = 0; i < 5; i++){
2014-12-28 14:36:01
610
原创 效率测试函数代码
// ConsoleApplication8.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeint _tmain(int argc, _TCHAR* argv[]){//1.获取当前cpu的频率LARGE_INTEGER stcFrequency;QueryPerformanceFrequency(
2014-12-27 17:17:17
700
原创 线程返回建议使用_endthreadex()
1.ExitThread() 等系统api函数不知道这些事情 并不会释放这个数据结构所占用的空间 他无法对某种语言做特别的照顾。2.为了避免资源泄露 c++库提供的_beginthreadex()/_endthreadex() 函数,不能用老版本的的后面未加ex的。3.
2014-12-27 16:54:19
1955
原创 Edit Contrl 七种关方案详解
第一种:int nNum = 0;TCHAR ch[12] ={};TCHAR ch1[12] = {};GetDlgItem(IDC_EDIT1)->GetWindowText(ch,12); //获取nNum = _ttoi(ch) //通用版的字符转换成数字。 _itot(nNum,ch1,10) //数字转换成字符串GetDlgItem(IDC_EDI
2014-12-20 20:30:09
590
原创 stosb,stosw,stosd区别和功能解读
在vs2013下的控制台运行如下代码 #include "stdafx.h"void fun(int x, int y, int z, int c){ int b =x + y + z + c;}int _tmain(int argc, _TCHAR* argv[]){ //这个位置下
2014-12-02 22:14:20
1930
1
原创 Opcode Map 操作码映射表阅读指南
opcode Map 作用是详细列出各个汇编指令格式与opcode的对应关系如图1.1图1.1给你一个操作码 02 代表"ADD Gb,Eb"给你一个操作码03 代表“ADD Gv,Ev”上图ADD指令的行数代表OPCode的低4位,上面的列数代表OPCode的高4位。这里的Gb的大些“G"代表的是操作数的类型,例如 G代表REG这里的Gb第小写“b”代表的是此操作
2014-11-30 15:32:44
6004
原创 oPcode 指令代码分析
前缀字节码和code操作码绝对不重复 1.一个opcode可能有几个prefixes 2.如果有多个prefixes,那么他们的顺序可以打乱3.如果prefixes不能对它之后的opcode起作用,那么它就会被忽略LOCK MOV DWORD PTR ES:[EDX*4+ECX+0AA] ,11FO:26: C7 84 91 A
2014-11-30 10:11:10
2048
原创 OpCode 笔记
OpCode的6个域:PrefixescodeModR/MSIBDisplacementImmediate记住:在实际的使用中,并不是这所有的6个域都会被用到的,但是有一项却是一定会有的,那就是第2项:code,有些指令甚至只会用到code这一项。这6个域的排列顺序绝对不能乱,必须严格按照上面的顺序进行。有些域也许不会出现,但是只要出现了,编号小的域就绝对不允许出现在编号大
2014-11-29 16:17:26
828
原创 汇编摘要上课笔记
指令 操作码 操作数MOV AX, 12操作码 目的操作数 源操作数MOV dest , src //简写r8: 任意一个8位的通用寄存器AH AL BH BL CH CL DH DLr16:任意一个16位通用寄存器AX BX CX DX DI DI BP SPr
2014-11-26 11:20:18
496
原创 vector类方面的笔记
原贴如下:http://blog.youkuaiyun.com/longshengguoji/article/details/8507394#cpp但感觉代码有部分不妥,就最后一个而言进行如下修改
2014-11-18 15:48:10
601
转载 C++学习笔记精华
1.struct成员默认访问方式是public,而 class默认访问方式是private!2.exit函数终止程序执行会调用析构函数 ,abort函数终止程序不会调用析构函数!3.静态局部变量直到程序终止时才退出!4.通过public 函数返回 private成员的引用有可能会破坏类的封装 ,造成外部变量可以改变类私有成员值!5.常量对象只能调用常量成员函数,常量成员函数可以有非
2014-11-09 22:31:32
1089
原创 C++学习笔记之:虚函数之虚表地址打印方法
#include "stdafx.h"#include "Test.h"#include #include #include using std::cout;using std::endl;class CClassA {public: CClassA():m_nNum(0xAAAAAAAA) {} virtual void fun_a1() { cout<<"fun_a1:
2014-11-08 16:22:19
1149
看雪论坛软件加密解密第三版视频教程
2013-03-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人