
VC++
贾晓凯2008
这个作者很懒,什么都没留下…
展开
-
vc++汇总
一. 代码相关1. ********vc中debug版程序正常但release版崩溃******* I. 内存分配问题 1. 变量未初始化。 为debug中会自动给变量初始化found=FALSE,而在release版中 则不会。所以尽可能的给变量、类或结构初始化。 2. 数据溢出的问题 如:char buffer[10]; int counter; lst转载 2017-07-05 16:07:53 · 627 阅读 · 0 评论 -
C++ Hook(钩子)编程,通过内联汇编,使类成员函数代替全局函数(静态函数)
编程语言:C/C++编译环境:Visual Studio 2008核心方法::通过内联汇编,构造类对象独享的函数(委托),完成了类成员函数到普通全局函数的转化,并在Windows Hook(钩子)编程中得到成功的实践。关键字:C++,委托,内联汇编,Hook,成员函数 引文:前段时间曾编写了一个自认为很完善的.NET平台上的Hook(钩子)动态链接库(DLL),并进一转载 2017-05-11 18:29:19 · 4718 阅读 · 1 评论 -
C++操作mysql方法总结(1)
http://www.cnblogs.com/joeblackzqq/p/4332945.htmlC++通过mysql的c api和通过mysql的Connector C++ 1.1.3操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名为booktik表为book转载 2017-03-06 20:47:20 · 358 阅读 · 0 评论 -
VC多线程编程之线程创建与示例
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){ Sleep(6000)转载 2017-01-12 16:51:08 · 4577 阅读 · 0 评论 -
c++ 遍历目录下文件
function:遍历目录下所有文件,返回文件总数,子文件夹总数(修改一下可以获得全部文件名等)。[cpp] view plain copy #include "stdlib.h" #include "direct.h" #include "string.h" #include "io.h" #includ转载 2016-11-25 17:25:24 · 357 阅读 · 0 评论 -
HTTP协议详解(真的很经典)
引言HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议的主要特点可概括如下:1.支转载 2016-09-18 16:44:40 · 378 阅读 · 0 评论 -
Win32串口编程(转:韩耀旭)
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以使转载 2016-04-28 15:07:10 · 331 阅读 · 0 评论 -
一些系统类的头文件(四)
CPtrList afxcoll.hCReBar afxext.hCReBarCtrl afxcmn.hCRecentFileList afxadv.hCRecordset afxdb.hCRecordView afxdb.hCRect atltypes.hCRectTracker afxext.hCResourceException afxwin.hCRgn转载 2016-04-12 14:14:29 · 708 阅读 · 0 评论 -
一些系统类的头文件(三)
CMultiLock afxmt.hCMultiPageDHtmlDialog afxdhtml.hCMutex afxmt.hCNotSupportedException afx.hCObArray afxcoll.hCObject afx.hCObList afxcoll.hCOccManager afxocc.hCOleBusyDialog afxodlgs.转载 2016-04-12 14:13:42 · 1526 阅读 · 0 评论 -
一些系统类的头文件(二)
CFileException afx.hCFileFind afx.hCFindReplaceDialog afxdlgs.hCFont afxwin.hCFontDialog afxdlgs.hCFontHolder afxctl.hCFormView afxext.hCFrameWnd afxwin.hCFtpConnection afxinet.hCFtp转载 2016-04-12 14:11:33 · 667 阅读 · 0 评论 -
一些系统类的头文件(一)
Class Header_fileCAnimateCtrl afxcmn.CArchive afx.hCArchiveException afx.hCArray afxtempl.hCAsyncMonikerFile afxole.hCAsyncSocket afxsock.hCBitmap afxwin.hCBitmapButton afxext.h转载 2016-04-12 14:09:19 · 1142 阅读 · 0 评论 -
__declspec(dllimport)的作用
是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理解的呢?这是一种很自然的思路,开始我也是这样理解。转载 2016-03-31 20:44:51 · 272 阅读 · 0 评论 -
windows异常处理 __try __except
try-except用法 try except是windows 系统独有的异常处理模型,windows的异常处理模式,称为SEH( structured exception handling ), SEH的异常处理模型主要由try-except语句来完成,与标准的try catch相似。与C++异常处理模型使用catch关键字来定义异常处理模块,而SEH是采用__ex转载 2016-03-25 20:50:15 · 1411 阅读 · 0 评论 -
启动调试时总是提示此项目已经过期的解决方案
首先在Visual Studio里如果编译没过,那么这个提示就是正常的。因为此项目已经过期表示你改了某些文件或项目配置或者上次没有编译成功,需要重新编译,否则调试会出错。如果你上次编译通过了,按F5调试还是出现此提示,那可能就有问题了。如果每次都出现这样的问题,那么这个解决方案很适合你。当然解决方案不是选择“不要再显示此对话框”,这个只是不显示,但是每次调试还会先编转载 2016-03-18 14:39:54 · 62201 阅读 · 23 评论 -
Unicode字符集和多字节字符集关系
Unicode字符集和多字节字符集关系在计算机中字符通常并不是保存为图像,每个字符都是使用一个编码来表示的,而每个字符究竟使用哪个编码代表,要取决于使用哪个字符集(charset)。 在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8转载 2015-12-20 10:39:15 · 377 阅读 · 0 评论 -
try ... catch ...
#include "stdafx.h"#include #include#include using namespace std;double fuc(double x, double y) //定义函数{ if(y==0){ throw y;原创 2015-11-17 13:59:47 · 221 阅读 · 0 评论 -
32位MD5算法
对于学过密码学的同学来说,md5算法肯定不会很陌生。但是,对于我来说,md5是一个新的命题。那什么是md5呢?md5就是对已有的数据进行加密处理。当然,它还有别的用处,什么呢?比如说,可以验证下载的软件是否完整,可以验证保存的字符串是否发生重名等等。我在这里提到这个算法,主要是为了后面一个目的,防止url重名使用的。整个算法的内容其实比较复杂的,我们自己只要学会使用就可以了。这里使用的就两个文件,转载 2015-10-15 16:31:05 · 1469 阅读 · 0 评论 -
多线程的那点儿事(之顺序锁) 读写锁的升级
在互斥数据访问中有一种多读少写的情况。正对这么一种情形,我们也提出了读写锁的方案。但是呢,这个锁有些缺陷。什么缺陷呢?那就是,这个写锁需要在所有的读锁完成之后才能写。否则的话,写锁需要这么一直等下去。 那么,有没有什么办法能使得写操作快速一点进行呢?那就是顺序锁。[cpp] view plaincopytypedef struc转载 2015-10-15 16:15:57 · 604 阅读 · 0 评论 -
代码测试之代码调试
代码测试是我们开发过程中很重要的一步。很多新入行的朋友都会习惯地认为测试只是测试部门的工作,事实上并不是这样。每一位软件工程师对应该本着对自己代码负责的态度,在入库或者进行集成测试之前对自己的代码进行充分的测试。那么掌握代码的调试技巧和编写测试用例就成为我们日常生活中很重要的一个部分。本文就针对代码调试问题进行分析和解决。 调试工具: VisualStudio 6.0转载 2015-10-15 16:00:40 · 256 阅读 · 0 评论 -
多线程的那点儿事(之多线程调试)
软件调试是我们软件开发过程中的重要一课。在前面,我们也讨论过程序调试,比如说这里。今天,我们还可以就软件调试多讲一些内容。比如说条件断点,数据断点,多线程断点等等。[cpp] view plaincopy#include int value = 0; void test() { int total;转载 2015-10-15 15:59:18 · 234 阅读 · 0 评论 -
多线程的那点儿事(之避免死锁)
预防死锁的注意事项:(1)在编写多线程程序之前,首先编写正确的程序,然后再移植到多线程(2)时刻检查自己写的程序有没有在跳出时忘记释放锁(3)如果自己的模块可能重复使用一个锁,建议使用嵌套锁(4)对于某些锁代码,不要临时重新编写,建议使用库里面的锁,或者自己曾经编写的锁(5)如果某项业务需要获取多个锁,必须保证锁的按某种顺序获取,否则必定死锁(6)编写简转载 2015-10-15 15:48:02 · 206 阅读 · 0 评论 -
多线程的那点儿事(之嵌套锁)
嵌套锁这个概念,主要是为了根据编程中的一种情形引申出来的。什么情况呢,我们可以具体说明一下。假设你在处理一个公共函数的时候,因为中间涉及公共数据,所以你加了一个锁。但是,有一点比较悲哀。这个公共函数自身也加了一个锁,而且和你加的锁是一样的。所以,除非你的使用的是信号量,要不然你的程序一辈子也获取不了这个锁。[cpp] view plaincopy转载 2015-10-15 15:40:41 · 554 阅读 · 0 评论 -
多线程的那点儿事(之读写锁)
在编写多线程的时候,有一种情况是十分常见的。那就是,有些公共数据修改的机会比较少。相比较改写,它们读的机会反而高的多。通常而言,在读的过程中,往往伴随着查找的操作,中间耗时很长。给这种代码段加锁,会极大地降低我们程序的效率。那么有没有一种方法,可以专门处理这种多读少写的情况呢? 有,那就是读写锁。 (1)首先,我们定义一下基本的数据结构。[cpp转载 2015-10-15 15:35:33 · 311 阅读 · 0 评论 -
多线程的那点儿事(之原子锁)
原子锁是多线程编程中的一个特色。然而,在平时的软件编写中,原子锁的使用并不是很多。这其中原因很多,我想主要有两个方面。第一,关于原子锁这方面的内容介绍的比较少;第二,人们在编程上面习惯于已有的方案,如果没有特别的需求,不过贸然修改已存在的代码。毕竟对很多人来说,不求有功,但求无过。保持当前代码的稳定性还是很重要的。 (1)查找函数中原子锁 在一些函转载 2015-10-15 15:27:35 · 796 阅读 · 0 评论 -
多线程的那点儿事(之C++锁)
编写程序不容易,编写多线程的程序更不容易。相信编写过多线程的程序都应该有这样的一个痛苦过程,什么样的情况呢?朋友们应该看一下代码就明白了,[cpp] view plaincopyvoid data_process() { EnterCriticalSection(); if(/* error转载 2015-10-15 15:12:19 · 277 阅读 · 0 评论 -
多线程的那点儿事(之windows锁)
在windows系统中,系统本身为我们提供了很多锁。通过这些锁的使用,一方面可以加强我们对锁的认识,另外一方面可以提高代码的性能和健壮性。常用的锁以下四种:临界区,互斥量,信号量,event。 (1)临界区 临界区是最简单的一种锁。基本的临界区操作有,[cpp] view plaincopyInit转载 2015-10-15 15:04:20 · 261 阅读 · 0 评论 -
VC 常见问题百问
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。转载 2015-06-29 17:09:06 · 315 阅读 · 0 评论