Proc/C/C++/数据结构
真爱无限
学习编程,提高自己的能力和思维方式。
一步一步,越来越好。
展开
-
使用vs2010编写c++Win32 Console Project时会出“error LNK1123” 错误解决方法
终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为 将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误转载 2014-03-14 15:26:39 · 1297 阅读 · 0 评论 -
C++windows内核编程笔记day07_day08,可视化建菜单、加速键使用、绘图等
可视化操作创建的菜单,加载到窗口。方法1:注册时指定菜单wce.lpszMenuName=MAKEINTRESOURCE(IDR_MENUMAIN);//数字形式的资源ID转换为字符串形式的资源方法2://创建窗口时加载菜单资源HMENU menumain= LoadMenu(g_hinstance,MAKEINTRESOURCE(IDR_MENUMAIN));menuma原创 2014-07-27 19:13:41 · 2476 阅读 · 0 评论 -
c++windows内核编程笔记day12 硬盘逻辑分区管理、文件管理、内存管理
windows系统磁盘文件存储:分区格式:NTFS / FAT32GetSystemDirectory();//获取系统路径GetWindowsDirectory();//获取windows路径GetCurrentDirectory();//获取当前工作目录SetCurrentDirectory();//修改当前工作目录CreateFile/ReadFile/WriteFi原创 2014-07-28 12:38:45 · 2044 阅读 · 0 评论 -
C++windows内核编程笔记day06 代码创建菜单
菜单:创建菜单:HMENU CreateMenu(VOID);添加菜单项:BOOL AppendMenu( HMENU hMenu, // handle to menu UINT uFlags, // menu-item options UINT_PTR uIDNewItem, // identifier, menu, or subme原创 2014-07-26 19:21:52 · 1294 阅读 · 0 评论 -
C++windows内核编程笔记day13 进程、线程与信号量
Windows进程进程是一个容器,包含程序执行需要的代码、数据、资源等信息,windows进程的特点:每个进程都有自己的ID号每个进程都有自己的地址空间,进程之间无法访问对方的地址空间。每个进程都有自己的安全属性每个进程至少包含一个线程。获取和释放环境信息GetEnvironmentStringsFreeEnvironmentStrings获取或设置 本程序原创 2014-07-28 13:23:11 · 1591 阅读 · 0 评论 -
C++windows内核编程笔记day11 win32静态库和动态库的使用
windows库程序:静态库:源代码被链接到调用的程序或动态库,被调用时,代码最少有1份,文件后缀.LIB动态库: 函数被程序或其他动态库调用,被调用时,代码只有1份,文件后缀.DLL静态库(C语言):创建时,选择文本类型文件,输入Clib.c,设置输出路径 ../lib/Clib.libint Clib_add(int a,int b){retur原创 2014-07-28 12:07:40 · 2434 阅读 · 0 评论 -
标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型
函数声明: 1、隐式声明:在没有声明的情况下,系统可根据参数类型判断去调用函数(有可能出错) 2、显式声明:声明在被调用之前,如:double add(double,double); 函数声明参数可只写类型,不需要写函数体。文件操作: fopen --打开文件,FILE *pFile=fopen("a.txt","w"); fopen的打原创 2014-08-01 17:03:14 · 1399 阅读 · 0 评论 -
C++windows内核编程笔记day03_day04_day05
windows消息机制、消息格式和消息处理入门原创 2014-07-26 19:14:57 · 995 阅读 · 0 评论 -
C++windows内核编程笔记day01_day02
windows编程介绍、windows 库和头文件介绍原创 2014-07-26 19:02:44 · 941 阅读 · 0 评论 -
qtday02 qt做简单的加法器和模拟登陆功能
//在3t2目录下//adder.h/*qt简单加法计算器*/#ifndef ADDER_H#define ADDER_H#include#include#include#includeclass Adder:public QDialog{ Q_OBJECT//让自定义的槽函数生效 private: QLineEdi原创 2014-06-08 21:06:01 · 2061 阅读 · 0 评论 -
qtday03 简单版的贪吃蛇游戏
//snakegame.h#ifndef SNAKEGAME_H#define SNAKEGAME_H#include#include#include#include#include/*枚举,表示方向*/enum Direction{D_UP,D_DOWN,D_LEFT,D_RIGHT};class SnakeGame:public QDialog{原创 2014-06-08 21:10:50 · 1477 阅读 · 0 评论 -
qtday01 ubuntu 下手动编写第一个qt程序
//qt 5.2.1//1t目录下//1t.cpp/* 第一个qt程序 */#include #include#include#includeint main(int argc,char** argv){ /*构造一个对象*/ QApplication app(argc,argv); QTextCodec* coder=QTex原创 2014-06-08 21:03:03 · 1448 阅读 · 0 评论 -
UC编程03-内存分配与内存映射函数sbrk/brk/mmap/munmap
#include#includeint main(){ void* empty=sbrk(0); void * p1=sbrk(4);//虚拟内存映最少射一个内存页4096字节 int *pi=p1; *(pi+2)=120;//给p3赋值 void* p2=sbrk(4); void* p3=sbrk(4); printf("p1=%p,p2=%p,p3=%p\n",p1,原创 2014-04-20 21:25:43 · 1138 阅读 · 0 评论 -
UC编程02-环境变量、errno错误查看函数
#include#include#include//extern char**envron;//第三个参数为环境表首地址int main(int argc,char ** argv,char **env){ extern char** environ;//外部全局变量,不改动 char **p=environ; //输出所有环境变量 /* while(*p!=NULL){原创 2014-04-20 21:21:08 · 873 阅读 · 0 评论 -
linux下练习 c++ 关联式容器map特性
/*map.cppmap特性不允许key重复key/value对key可以当下标访问value,key不存在则插入新的key/value对,以0初始化*/#include#include#include "print.h"#includeusing namespace std;typedef pair pairmp;#includeint main原创 2012-10-25 15:06:35 · 4606 阅读 · 0 评论 -
UC编程04-io读写write/read系统函数的使用
////myuc.h#include#include#include#include#include#include#include#include#include#include#include//#include//#include#include#includeint main(){ //系统会减去other组的写权限 i原创 2014-04-20 21:31:48 · 1829 阅读 · 0 评论 -
c++ windowsSocket通讯连接效时服务器并获取返回消息简单用例
#include "stdafx.h"#include #include #include #include "resource.h"#include "MainDlg.h"#define HIGHTIME 21968699#define LOWTIME 4259332096 /**/BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WP原创 2014-03-25 17:06:01 · 2341 阅读 · 0 评论 -
C++windows内核编程笔记day09_day10,对话框和窗口基本控件等的使用
//设置字体颜色SetTextColor(hdc,RGB(255,0,0));//窗口背景//wce.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);//wce.hbrBackground=CreateSolidBrush(RGB(0,0,255));//设置字体背景SetBkColor(hdc,RGB(0,0,200));原创 2014-07-27 19:27:41 · 2173 阅读 · 0 评论 -
C++windows内核编程笔记day14 其他线程同步技术
线程同步技术:原子锁临界区(段)互斥事件信号量(线程示例时已经使用过)可等候定时器使用范围:原子锁效率: 原子锁>临界区(用户态)>互斥(内核态)一般用临界区。//等候多个信号DWORD WaitForMultipleObjects( DWORD nCount, // number of han原创 2014-07-29 09:15:25 · 1510 阅读 · 0 评论 -
标C编程笔记day04 预处理、宏定义、条件编译、makefile、结构体使用
预处理:也就是包含需要的头文件,用#include或#include "自定义的头文件"宏定义,如:#define PI 3.1415926查看用宏定义的值替换宏名称,如:gcc -E test.c带参数的宏:MAX(x,y) (x)>(y)?((x):(y)) //使用方法与函数一样宏运算: #define PRINT(n) printf(#n"=%d",n)原创 2014-07-31 15:36:35 · 2030 阅读 · 0 评论 -
标C编程笔记day06 动态分配内存、函数指针、可变长度参数
动态分配内存:头文件 stdlib.h malloc:分配内存 calloc:分配内存,并清零 realloc:调整已分配的内存块大小 示例: int *p=(int *) malloc(3*sizeof(int));//分配内存,成功返回首地址,失败返回NULL free(p);p=NULL;//释放分配的内存,并修改指原创 2014-08-01 17:40:38 · 1469 阅读 · 0 评论 -
标C编程笔记day01~day03 变量、运算符、指针、函数、输入输出
c/c++语法,运算符: sizeof() --参数为变量或类型,计算变量或类型的字节大小 a==b?c:d --三目运算符,a==b时,返回c,否则返回d 算术运算符:+,-,*,/,% 自加、自减运算:++,-- 位运算: ~ --取反,正数取反为 -(n+1) ,负数取反为 n-1 & --与,两个同原创 2014-07-30 17:15:57 · 933 阅读 · 0 评论 -
C++MFC编程笔记day03 MFC工具栏、状态栏、视图窗口
MFC工具栏相关类:CToolBarCtrl - 父类是 CWnd 封装了工具栏控件相关操作CToolBar - 父类是CControlBar 封装了工具栏和框架窗口之间的关系工具栏使用://把工具栏对象定义炎CMyFrameWnd成员:CToolBar toolbar;//在窗口创建时,加载工具栏资源int CMyFrameWnd::OnCreate(LPCREA原创 2014-07-30 08:37:24 · 4020 阅读 · 0 评论 -
C++MFC编程笔记day05 文档类-单文档和多文档应用程序
文档类 1 相关类 CDocument类-父类是CCmdTarget类,所以,文档类也可以处理菜单等 命令消息。作用保存和管理数据。 注意事项:如何解决断言错误 2 在视图中显示文档中的数据 2.1 CView::OnInitialUpdate 作用初始化视图,在附加文档之后,显示之前,由框架调用。原创 2014-07-30 08:59:53 · 6968 阅读 · 0 评论 -
C++MFC编程笔记day04 运行时类信息和窗口的动态、静态切分
运行时类信息程序在运行时,获取对象类的信息及类的继承关系实现:1、定义类继承自CObject类。2、类内声明宏DECLARE_DYNAMIC(),类外实现宏IMPLEMENT_DYNAMIC()3、使用:BOOL IsKindOf(CRuntimeClass* pClass)//对象是否属于某个类CRuntimeClass* GetRuntimeClass( );//获原创 2014-07-30 08:45:30 · 1789 阅读 · 0 评论 -
C++MFC编程笔记day02 MFC消息映射机制、菜单资源使用
机制3:MFC消息映射机制:类内声明,类外定义宏,绑定消息处理函数派生自CCmdTarget类内声明宏:DECLARE_MESSAGE_MAP()类外添加实现宏:BEGIN_MESSAGE_MAP(类名,父类名)END_MESSAGE_MAP()//数据结构struct AFX_MSGMAP_ENTRY{UINT nMessage; // 消息IDU原创 2014-07-29 16:17:18 · 2010 阅读 · 0 评论 -
C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理
一、MFC概念和作用1、全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的执行流程MFC就是一个库(动态库,静态库)MFC还是一个程序框架2、为什么使用MFC基于框架编程,提高工作效率,减少开发周期,节约开发成本。二、几个重要的头文件afx.h -绝原创 2014-07-29 09:46:43 · 4208 阅读 · 0 评论 -
C++MFC编程笔记day06 MFC向导、MFC绘图类使用
MFC绘图 MFC绘图类包括绘图设备类和绘图对象类 1 绘图设备类 CDC类-父类是CObject,封装的是一般的绘图设备,例如:显示器, 打印机等。 CWindowDC类-父类是CDC类,封装的是窗口对象,包括客户区和非 客户区。 CClientDC类-父类是CDC类,封装的仍然是窗口,但是只包括原创 2014-08-04 10:39:30 · 11239 阅读 · 1 评论 -
C++/c#修改hosts文件
c++#include#include#include #include using namespace std;int main(){ofstream outf;char * lpFileName="C:\\Windows\\System32\\drivers\\etc\\hosts";DWORD dwAttribute = ::GetFile原创 2011-11-21 20:34:34 · 8118 阅读 · 2 评论 -
UC编程01-预处理
#includeint main(){ #line 1550 int b=0; printf("%d",a); return 0;}原创 2014-04-20 21:16:39 · 979 阅读 · 0 评论 -
linux下练习 c++ 关联式容器multimap特性
/*multimap特性key可以重复不支持下标访问*/#include#include#include "print.h"#includeusing namespace std;typedef pair pairmp;typedef multimap MS;int main(){ MS m; m.insert(MS::value_原创 2012-10-25 15:47:37 · 1697 阅读 · 0 评论 -
linux下练习 c++ 关联式容器共性测试,使用
/*关联式容器共性:二叉查找树实现,自动根据关键字排序,自动平衡 set,multiset,map,multimap查找:.find(key) 失败返回.end()统计:.count(key)删除:.erase(key)插入:.insert(element)区间:.lower_bund(key) //取得关键字为key的第一个元素位置 .upper_boun原创 2012-10-25 12:46:04 · 1107 阅读 · 0 评论 -
linux下练习 c++ 容器的deque的特性
/*deque特性下标:.operator[](i)不检查越界,.at(i) 删除:.pop_front(),.pop_back()*/#includeusing namespace std;#include#include "print.h"int main(){ deque dq; dq.push_back('c'); dq.push_bac原创 2012-10-18 21:11:34 · 2011 阅读 · 0 评论 -
linux下练习 gcc 静态库/动态库 编译示例
//iotool.c#include int inputInt(const char *info){ int r; printf("%s:",info); scanf("%d",&r); return r;}graphic.c#include void diamond(int r){ int x,y; for(y=0;y<=2*r;y原创 2012-10-27 15:35:54 · 887 阅读 · 0 评论 -
linux下练习 c++ 类库中list的特性、关联式容器共性介绍
/*库模版中 list 特性:双向链表增删:.push_front(element),.pop_front(),.remove(element)不支持下标访问除去重复:.unique() 相邻的重复元素只保留一个排序:.sort(),默认用'<'号比较,自定义类型要重载运算符倒置:.reverse()转移:.aplice(pos,list2),.aplice(pos原创 2012-10-18 21:14:04 · 2837 阅读 · 0 评论 -
linux下练习 c++ 序列容器的使用
//sequence.cpp // sequence.cpp /*序列式容器:vector,deque,list插入:.insert(position,n,element), .insert(position,pos_begin,pos_end)赋值:.assign(n,element), .assign(pos_begin,pos_end)调整:.原创 2012-10-15 19:04:48 · 1017 阅读 · 0 评论 -
linux下练习 c++ 容器的vector的特性
//vector.cpp/*vector的特性当前容量:.capacity()约定容量:.reserve()下标:.operator[](i) ,.at(i) 越界抛出异常*/#includeusing namespace std;#include#include#include#include "print.h"void print(con原创 2012-10-15 20:50:10 · 7258 阅读 · 0 评论 -
linux下练习 c++ 普通容器的使用
/*迭代器.begin(),.end() ,.rbegin() , .rend()插入:.insert(position,element)删除:.erase(position),.erase(pos_begin,pos_end)清除:.clear()大小:.size(), .max_size(), .empty()交换:.swap(c2) , swap(c1,c2)原创 2012-10-15 11:20:41 · 1177 阅读 · 0 评论 -
linux下练习 c++ 库函数排序使用举例
//使用库函数排序举例#include #include #include //内有排序库函数using namespace std;#ifndef person_h_1 //预定义指令#define person_h_1class person{public: person(const char* name,int age):name(name),age原创 2012-10-14 21:53:02 · 1234 阅读 · 0 评论 -
linux下练习 c++ 函数模版例子
//函数模版使用//函数模版标准不支持参数默认值#include#includeusing namespace std;template void sort(T* a,int n)//普通冒泡排序{ bool changed; do { changed=false; for(int i=1;i<n;i++) { if(a[i]<a[原创 2012-10-13 11:48:47 · 2020 阅读 · 1 评论