![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC深入浅出随堂笔记
chanchaw
这个作者很懒,什么都没留下…
展开
-
类中的内存泄露
class Student{private: char *pName;public: Student() { pName=new char(20); } ~Student() { delete[] pName; }} 上面类中 ~Student() 为析构函数,如果析构函数中没有: delete[] pName;原创 2012-01-29 19:05:58 · 472 阅读 · 0 评论 -
字符串与16进制之间的转换
这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。一、16进制字符串转数字 1、C/C++ I、最简单的办法:sscanf(“12AB”,,”%x”,&lngHex); //字符也可以为”0x12AB” II、有个朋友,自行编写函数实现了该功转载 2012-05-14 22:11:26 · 19457 阅读 · 1 评论 -
VC中char* 与 char[]的区别
举个例子:char buf1[128];char* buf2 = new char[128];buf2 = buf1; //正常编译通过buf1 = buf2; //编译错误,不能char[] convert to char*原因buf1为指针常量,指向的地址不能改变,buf2为指针变量,指向的地址可以改变可以通过字符拷贝函数实现内容复制:strcpy(buf1,buf转载 2012-05-13 17:26:17 · 10978 阅读 · 0 评论 -
VC获取键盘 虚拟码 扫描码
以下代码:A.BOOL CCcPlug_MapleStoryDlg::PreTranslateMessage(MSG* pMsg) {// TODO: Add your specialized code here and/or call the base classif (pMsg->message == WM_KEYDOWN){//获得键盘扫描码UINT nS原创 2012-05-13 12:27:07 · 5476 阅读 · 0 评论 -
VC 键盘 虚拟键码表
//字符按键#define VK_A 0x41#define VK_B 0x42#define VK_C 0x43#define VK_D 0x44#define VK_E 0x45#define VK_F 0x46#define VK_G 0x47#define VK_H 0x48#define VK_I 0x49#define VK_J原创 2012-05-13 12:27:50 · 2513 阅读 · 0 评论 -
打开多个VC6.0工程的方法与设置
在VC6.0中,我们经常想打开多个工程,但是打开一个工程后再打开下一个时就会覆盖当前工程或者打不开新工程.经过实践发现了问题的解决方法:(1)打开“我的电脑->工具->文件夹选项->文件类型”;(2)在 "已注册的文件类型" 的 "扩展名" 列中的选择 "DSW", 然后点右下角的 "高级";(3)在弹出的 "编辑文件类型" 框的 "操作" 中选择 "open"(安转载 2012-05-11 21:10:31 · 705 阅读 · 0 评论 -
VC PreTranslateMessage详解
1.函数原型:(MSDN)virtual BOOL PreTranslateMessage( MSG *pMsg );功能: Override this function to filter window messages before they are dispatched to the Windows func转载 2012-05-10 20:07:35 · 6388 阅读 · 0 评论 -
VC 强制类型转换
以下是一些VC下的强制类型转换的函数一、字符串转换1.CString 转化为整形Int CString str=_T("12345"); atoi((LPCSTR)str);//用LPCSTR转化为const char*即可 CString str="1"; int n=atoi(str.GetBuffer(0));2.将一个CString转到一个char的数组(cha转载 2012-05-11 21:01:48 · 7470 阅读 · 0 评论 -
关于键盘模拟的介绍
以前就想过如何模拟键盘按键向其他程序发送控制命令,但总是无功而返,这次也不例外。模拟按键的方法很多,如PostMessage(不能用SendMessage),SendInput,keybd_event。但最要命的是以上方法基本上都要窗口获取焦点时才有效。也就是想后台模拟键盘按键难度是很高的。当然有些特殊情况。一、模拟单个按键,如按下键A用::PostMessage(转载 2012-05-18 18:34:24 · 2408 阅读 · 0 评论 -
VC 双小于 双大于号
<<4 二进制左移4位,也就是*16如:int x = 10;int y = x printf( "%d", y );输出160 ;那么上面就是如果xx[i][j]的值*16后大于32而且小于或等于100的话,就执行下面的语句例:十进制10=二进制1010那么1010左移4位后为二进制10100000=十进制160C/C++语言本转载 2012-05-19 11:06:46 · 12030 阅读 · 0 评论 -
并口、串口、COM口区别
并行接口,简称并口。并口采用的是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,目前,并行接口主要作为打印机端口等。转载 2012-06-17 08:53:50 · 1507 阅读 · 0 评论 -
WDK与DDK的区别
WDK采用WDF驱动模型,意为Windows Driver Foudation,是Vista及以后版本OS所采用的驱动模型,以前的DDK,是WDM驱动模型,意为Windows Driver ModelWDK包含了以前的DDK和IFS,和驱动验证等等……XP下也可以使用WDK,它能编译Win2000-win2008的各种driver原创 2012-06-14 20:51:11 · 2414 阅读 · 0 评论 -
CALL是如何炼成的
遇到一个CALL应该如何写?这个是写一个内挂不可避免的问题.刚初学的朋友可能会不知道如何入手.想起刚学这方面的时候,绕过很多弯路,现在把一些经验写出来给大家参考参考吧,不是很高深的东西,但我觉得对某些人很有帮助.CALL是什么?CALL是汇编中的一个指令,CPU执行这条指令会执行2个动作 一:压入EIP入栈 二:跳转到后面的地址. 跟RETN指令配合就实现了汇编中子程序的作转载 2012-05-24 22:21:25 · 1234 阅读 · 0 评论 -
VC 输入码注入源码:
VC 输入码注入源码:ImmInstallIME("C:/WINDOWS/system32/123.dll","扩展输入法"); typedef int (CALLBACK * IMESetPubStringFunc)(LPCTSTR tmpStr,DWORD UnloadDLL,DWORD loadNextIme,DWORD DllData1,DWORD DllData2,DWORD转载 2012-05-24 20:00:32 · 3330 阅读 · 0 评论 -
C++中* (星号) 与取址 介绍
问题:C++里的星号是什么意思?1.不是数学计算里是乘号 2.解释下“用在指针前面是取内容运算符”的用法 3.解释下“声明指针”的用法*-*解释清楚上面个问题和下面TTable * tmpTable=FormTableMan->TableTable;这段代码的为最佳答案!**-**回答:*一般被称作指针运算符,又叫反向取址运算转载 2012-06-10 09:09:02 · 3613 阅读 · 0 评论 -
字符串处理函数
void *memset(void *dest, int c, size_t count);将dest前面count个字符置为字符c. 返回dest的值. void *memmove(void *dest, const void *src, size_t count);从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理. 返回d转载 2012-05-20 18:27:40 · 581 阅读 · 0 评论 -
VC switch case
switch case只支持整数和枚举类型不支持其他数据类型支持枚举类型的示例:你是想从屏幕里输入一个字符,然后将这个字符转换为对应的枚举吧。如:从屏幕上输入'a',则转换为set枚举中对应的a,如果是这个意思,我已经帮你实现了,源代码如下(见注释,不明白的地方可以hi我): #include using namespace std; enum set {a,b,c,原创 2012-05-20 13:08:18 · 6662 阅读 · 0 评论 -
VC continue break
contiune(跳出本次循环)会继续执行第一个define。break是结束循环。转载 2012-05-19 11:09:12 · 1682 阅读 · 0 评论 -
VC List控件使用经验总结二
作者:深邃天空蓝色海洋时间:06/03/2008列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多中属性值。MFC中使用CListCtrl类来封装列表控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyl转载 2012-05-11 20:16:05 · 1236 阅读 · 0 评论 -
VC关于键盘输入(转)
应用程序应该像接收鼠标输入一样可以接收键盘输入,Windows中的应用程序是以窗体消息的形式来获取键盘输入。 本节包括以下内容: 键盘输入模型 键盘聚焦及激活 按键消息 字符消息 键状态 按键及字符转换 热键支持 浏览及其他功能键 模拟输入 语言、场所及键盘布局 键盘输入模型转载 2012-05-11 10:51:06 · 4681 阅读 · 0 评论 -
_T("这里是字符串")的作用.MESSAGEBOX的用法
Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。_T一般同字常数相关,如_T("Hello")。如果你编译一个程序为ANSI方式,_T实际不起任何作用原创 2012-04-05 11:29:57 · 2014 阅读 · 0 评论 -
MFC AppWizard生成的APP解析
如上图通过MFC AppWizard生成的单文档工程,会生成如下的几个类: 其命名规则为:CAboutDlgCMainFrameC+工程名+APP 的一个类(外沿主窗体框架)C+工程名+Doc 的一个类C+工程名+View 的一个类(窗体内部供编辑的区域) 文件夹:Globals为工程中的全局变量 程序在进入WinMain之前,先原创 2012-04-04 12:12:15 · 549 阅读 · 0 评论 -
MFC基础知识综
1. 在windows.h中,以CS_开头的类样式(class style)标示符被定义为16位的常量,这些常量都只有某1位为1.详细解释见:P72. &一种为取地址 另一种为按位与(0&0=0,0&1=0,1&0=0,1&1=1) && 逻辑与(用于多个条件并且成立的判断) | 或(并列的意思) || 逻辑或原创 2012-01-31 20:43:29 · 739 阅读 · 0 评论 -
变量命名规则-匈牙利表示法
前缀 含义a 数组b 布尔值c 字符,字节rgb原创 2012-01-30 21:11:12 · 474 阅读 · 0 评论 -
WinMain与Main
#include struct Point{int x;int y;};void main(){Point pt;pt.x=0;pt.y=1;cout} 上面代码在创建工程时候如果选择Win32 Control Application则可以编译通过而选择Win32 Application的话则不能编译通过会报如下错误:unres原创 2012-04-02 20:46:13 · 540 阅读 · 0 评论 -
VC++ 6.0 集成开发环境操作介绍
F7编译ctrl+F5 运行程序F9 在光标所在行设置断点原创 2012-01-29 18:53:37 · 728 阅读 · 0 评论 -
SOCKET socket(int af,int type,int protocol)解说
以下解说来自SOCKET socket(int af,int type,int protocl);socket函数接受3个参数.第一个参数(af)指定地址族,对于TCP/IP协议的套接字,它只能是AF_INET(也可以写成PF_INET);第二个参数(type)指定Socket类型,对于1.1版本的Socket,他只支持两种类型的套接字,SOCKE_STREAM指定产生流式套接字,SOCK原创 2012-02-06 21:11:52 · 7763 阅读 · 0 评论 -
第一课.创建窗体类及窗体,窗体过程函数
//以下为cc.c源代码#include #include LRESULT CALLBACK WinCCProc(HWND hwnd, //窗体句柄 UINT uMsg, //消息标识 WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInst原创 2012-01-29 17:17:27 · 482 阅读 · 0 评论 -
用VC++建立Service服务应用程序
本文主要介绍了 OpenSCManager、CreateService、OpenService、ControlService、DeleteService、RegisterServiceCtrlHandler、SetServiceStatus、StartServiceCtrlDispatcher等操作服务程序的主要几个API的用法,具体的函数参数大家可以查阅MSDN。 为什么要使用服务应该程序转载 2012-04-04 22:34:33 · 487 阅读 · 0 评论 -
IP地址 DWORD与字符串转换
CString dwIP2csIP(DWORD dwIP) { CString strIP = _T(""); WORD add1,add2,add3,add4; add1=(WORD)(dwIP&255); add2=(WORD)((dwIP>>8)&255); add3=(WORD)((dwIP>>16转载 2012-04-08 20:39:10 · 1348 阅读 · 0 评论 -
VC 键盘 按键 虚拟码 表
符号常量 十六进制值 指定的鼠标或键盘按键VK_LBUTTON 01 鼠标左键VK_RBUTTON 02 鼠标右键VK_CANCEL 03 Control-break 过程VK_MBUTTON 04 鼠标中键VK_BACK 08 BACKSPACE 键VK_TAB 09 TAB 键VK_CLEAR转载 2012-05-12 21:42:12 · 2381 阅读 · 0 评论 -
VC List控件使用经验总结一
VC/MFC之ListCtrl控件使用经验总结作者:lixiaosan时间:04/06/2006以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn--------------------------转载 2012-05-11 20:15:27 · 964 阅读 · 0 评论 -
VC——SetTimer
This method installs a system timer. A time-out value is specified, and every time a time-out occurs, the system posts a WM_TIMER message to the message queue of the installing application or passes t转载 2012-05-11 21:19:01 · 3341 阅读 · 0 评论 -
在VC中实现模拟键盘,输入内容并显示在ListBox中。
模拟键盘按键 自动输入文字键盘对于每个操作电脑的人员来说是最熟悉不过的了。键盘上的按键可分为两类: 按下后会在电脑的输入窗口上出现对应字符的按键,如字母键和数字键等,我们称之为字符键;按下后虽然看不到字符但会产生控制作用的按键,如回车键、光标键等,我们称之为控制键。对于程序员来说,键盘上的每个按键都一样,无非是不同按键产生的键盘扫描码不同。在不同的操作系统下,键盘扫描码常常被转换为不同转载 2012-05-11 10:38:31 · 2329 阅读 · 0 评论 -
VC LIST控件使用方法
//首先初始化LIST控件m_list.InsertColumn(0,"学号",LVCFMT_CENTER,50);m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,75);m_list.InsertColumn(2,"数学",LVCFMT_LEFT,50);m_list.InsertColumn(3,"英语",LVCFMT_LEFT,50);m_l原创 2012-05-10 22:00:36 · 3481 阅读 · 0 评论 -
VC中Error spawning cl.exe错误的解决方法.( 无法打开文件 winresrc.h)
可能很多人在安装VC 6.0后有过点击“Compile”或者“Build”后被出现的 “Compiling... ,Error spawning cl.exe”错误提示给郁闷过。很多人的 选择是重装,实际上这个问题很多情况下是由于路径设置的问题引起的, “CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录/VC98/Bin”下面, 你可以到相应的路径下找到这个应用程序。转载 2012-05-07 18:31:13 · 2386 阅读 · 0 评论 -
添加窗体以及菜单弹出命令
1.创建单文档类型的MFC AppWizard(exe)工程2.通过菜单栏的"Insert"->"Resource... Ctrl+R",打开如下图所示的添加资源的窗体: 3.选中上图中的Dialog并且点击右边的New来创建一个窗体(或者通过双击左边列表中的Dialog) 至此只是建立了一个独立的窗体,和整个工程没有弹出命令上的链接,也就是说这时候编译的 工程是弹原创 2012-04-10 21:55:16 · 878 阅读 · 0 评论 -
VC强制类型转换
以下是一些VC下的强制类型转换的函数一、字符串转换1.CString 转化为整形IntCString str=_T("12345");atoi((LPCSTR)str);//用LPCSTR转化为const char*即可CString str="1";int n=atoi(str.GetBuffer(0));2.将一个CString转到一个char的数组(char*)中转载 2012-04-08 20:26:44 · 1101 阅读 · 0 评论 -
DebugView打印信息追溯与过滤
打开DebugView后有下图的打印,其中"Serviece Started!!! -end"是迅雷服务的打印信息(可以到任务管理器的进程页面找到PID是4092的进程)其他的打印信息类似处理想要在DebugView中过滤掉当前系统打印的信息(防止和自己调试的输出信息一起打印,造成混乱)可以使用DebugView的Filter功能,如下图所示:原创 2012-06-22 12:23:06 · 5414 阅读 · 0 评论