![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC++就业培训宝典
心情第一
请不要假装努力,人生不会陪你演戏
展开
-
CStringW 和CStringA互转
CStringACUserPacketToolDlg::CStrW2CStrA(const CStringW &cstrSrcW) { int len = WideCharToMultiByte(CP_ACP, 0, LPCTSTR(cstrSrcW), -1, NULL, 0, NULL, NULL); char *str = new char[len]; ...转载 2018-07-16 16:21:26 · 924 阅读 · 0 评论 -
使用c++实现一个FTP客户端(二)
客户端使用了Windows Socket提供的API,支持上传、下载、删除、查看文件,断点续传,二进制/ASCII模式切换,被动模式切换,记录操作日志等功能。 代码包含的类如下: ①MySocket类,对SOCKET进行了简单的封装//对winsock SOCKET的封装 class MySocket { public: MySocket(); //...转载 2018-07-17 15:56:45 · 2254 阅读 · 1 评论 -
使用c++实现一个FTP客户端(一)
之前使用c++实现了一个FTP客户端,在这里做一些记录。 一、需要注意的几点 ①FTP是一种文件传输协议,基于TCP,所以客户端与服务器建立的连接是可靠、安全的,并且要经过三次握手的过程。 ②FTP传输数据默认采用二进制模式,即将文件内容转换为二进制表示后再传送,而若HTML等文本文件传输时需要转换成ASCII模式。 ③FTP客户端在连接服务器时需要用到两个...转载 2018-07-17 15:51:53 · 2381 阅读 · 0 评论 -
CreateDIBSection 函数详解
CreateDIBSection分辨率我们常说的屏幕分辨率为640×480,刷新频率为70Hz,意思是说每行要扫描640个象素,一共有480行,每秒重复扫描屏幕70次。 调色板 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R、G、B三个分量表示。因为每个分量有256个级别,要用8位(bit),即一个字节(byte)来表示,所以每个象素需要用3个字节。整个...原创 2018-10-29 11:46:15 · 6645 阅读 · 1 评论 -
MFC用WM_COPYDATA在进程间发送数据
在VC中用WM_COPYDATA在进程间发送数据用WM_COPYDATA的前提:1,知道接收消息进程的句柄。2,接收消息进程重载了WM_COPYDATA消息映射,能对其做出反应(否则不是发送端自作多情了?)看过前提,的出结论:在自己写的两个进程间用WM_COPYDATA再好不过。下面CODE几行就说明了一切。获得句柄的方法,最简单的方法就是使用FindWindow,找窗口类,或者名,如果你觉得这样...转载 2018-07-13 10:08:16 · 1090 阅读 · 0 评论 -
C++临界区 多线程同步互斥
临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进入后其他所有试图访问此临界区的线程将被挂起,并将一直持续到进入临界区的线程离开。临界区在被释放后,其它线程可以继续抢占,并以此达到用原子方式操作共享资源的目的。临界区包含两个操作原语:进入临界区---Enter...原创 2018-07-16 16:19:35 · 281 阅读 · 0 评论 -
AfxBeginThread的介绍/基本用法
AfxBeginThread 用户界面线程和工作者线程都是由AfxBeginThread创建的。现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一个用于工作者线程,分别有如下的原型和过程:用户界面线程的AfxBeginThread 用户界面线程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThr...转载 2018-07-13 09:55:03 · 5193 阅读 · 1 评论 -
HOOK钩子 - 钩子函数说明
通过SetWindowsHookEx方法安装钩子,该函数指定处理拦截消息的钩子函数(回调函数),可在钩子函数中自定义消息的处理,可修改消息或屏蔽消息。钩子函数的格式是固定为:LRESULT CALLBACK CallBackProc( Int nCode, WPARAM wParam, LPARAM lParam);...转载 2018-11-29 11:10:10 · 687 阅读 · 0 评论 -
钩子函数(HOOK)完整的教程
钩子函数(HOOK)完整的教程基本概念 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,...转载 2018-06-26 13:13:20 · 18056 阅读 · 0 评论 -
c++钩子函数
结合自定义消息映射方面,作为学习的一个总结.Step1:创建win32动态链接库(an empty project DLL),命名为HookDLL1:增加一个类,命名为DLL.cpp2:增加头文件#include <windows.h>#include "DLL.h"3:创建全局变量#pragma data_seg("Shared")HHOOK mHoo...转载 2018-07-22 00:51:34 · 2668 阅读 · 0 评论 -
钩子(HOOK)函数教程
http://blog.sina.com.cn/s/articlelist_1585708262_3_1.html钩子(HOOK)函数教程(一)我们可以首先从字面上了解钩子,钩子是干什么的呢?日常生活中,我们的钩子是用来钩住某种东西的,比如,说,鱼钩是用来钓鱼的,一旦鱼咬了钩,钩子就一直钩住鱼了,任凭鱼在水里怎么游,也逃不出鱼钩的控制。同样的,Windows的钩子Hook也是用来钩东西的,比较抽...转载 2018-06-26 13:09:22 · 56968 阅读 · 10 评论 -
MFC里_T("")的意思
_T("")就是把引号内的字符串转换为宽字节的Unicode编码,和TEXT("")作用是一样的。宽字节就是unicode.一般来说建议使用unicode,因为操作系统内部就是使用的unicode(win98不是),如果用多字节的话,操作系统还要帮你转一遍.unicode每个英文也占两个字节,多字节占一个字节,汉字都是占两字节.evc中全部是使用unicode.windows用很多api,象Set...转载 2018-07-07 14:08:10 · 7570 阅读 · 0 评论 -
SendMessage和PostMessage的区别
对于SendMessage 和 PostMessage 平时口头的解释是SendMessage 发送消息后等待返回,PostMessage 发送消息后立即返回 。但是这样解释还是不具体,什么叫等待 什么叫立即?下面的代码可以解释,SendMessage 必须要等到消息响应函数结束,才继续执行。#define USER_MSG WM_USER+1/*使用SendMessage的例子 程序执行的步骤 */void fun(){// 第一步 SendMe...原创 2020-11-17 11:06:35 · 720 阅读 · 0 评论 -
MFC多线程编程总结
在MFC程序中使用AfxBeginThread函数来创建一个线程,该函数因参数不同而具有两种重载函数,分别对应工作者线程和用户接口(UI)线程。一、工作线程1、创建线程MFC API函数 CWinThread *AfxBeginThread( AFX_THREADPROC pfnThreadProc, //线程函数 ...转载 2018-07-05 14:56:40 · 618 阅读 · 0 评论 -
__declspec(dllexport) 的意思与DEF导出函数的区别(转)
__declspec(dllexport) 的意思与DEF导出函数的区别(转)先看代码:以下是在dev-c++里建立自已的dll时的dll.h里面的代码,这里面有一个:_declspec(dllexport)#ifndef _DLL_H_#define _DLL_H_//防重复定义#if BUILDING_DLL# define DLLIMPORT __declspec (dllexport)#e...转载 2018-06-23 11:40:18 · 270 阅读 · 0 评论 -
VS2013创建并使用DLL
VS2013创建并使用DLL1.DLL文件DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序...原创 2018-06-23 11:36:05 · 7105 阅读 · 0 评论 -
CStirng、CStringA、CStringW的使用
1.CString在多字节环境下(未定义UNICODE)为CStringA,在Unicode环境下(定义有UNICODE)为CStringW。2.对于涉及到char*与CStringA或CString转换时最好使用CStringA而不要使用内部存储结构不一定的CString,对wchar_t*与CStringW或CString同理。3.CStringA在UNICODE环境下可以正确转换为CStri...转载 2018-07-05 10:53:46 · 1833 阅读 · 0 评论 -
C++ debug和release版本的区别及调试技巧
一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /...转载 2018-06-21 19:08:30 · 22368 阅读 · 0 评论 -
第8章 文档、视图结构程序设计
文档、视图结构是面向对象开发的主要技术,MFC支持文档/视图结构应用程序的开发,使用文档/视图结构可以使开发过程模块化。本章主要通过文档对象、视图对象和框架对象讲解文档/视图及结构应用程序的设计。8.1 文档、视图结构概述 文档、视图结构是利用MFC开发应用程序的一种规范。该规范说明用户的数据可以理解为是一个文档,对用户数据的读取和保存操作都应该通过该文档类进行...原创 2019-05-05 18:53:36 · 379 阅读 · 0 评论 -
第11章 自定义窗口
前面的章节的内容是关于使用系统内现有的窗口或控件,将窗口或控件关联到对应的窗口派生类在调用类库函数实现对窗口的操作。本章研究的内容是关于如何注册和创建新类型的窗口,即自定义窗口和控件的开发。第01节 手动创建控件 在非对话框窗口中,就不能通过可视化编辑来自动创建控件了,只能调用控件类的Create函数手动创建。这是一种包含框架、视图以及对话框等各种类型窗口通用的...原创 2018-07-08 21:50:42 · 161 阅读 · 0 评论