
vc
susubuhui
QQ:867289975
展开
-
C++ 莫名编译错误总结
1 static 变量没有在 cpp 中初始化2 c 文件 在c++ 工程中没有 用 #ifdef __cplusplusextern "C"{#endif #ifdef __cplusplusextern "C"}#endif3 忘了 #include <string>原创 2018-06-01 10:40:31 · 656 阅读 · 0 评论 -
BCD INT 转换
unsigned long BCDToDec(const unsigned char *bcd, int length) { int tmp; unsigned long dec = 0; for(int i = 0; i < length; i++) { tmp = ((bcd[i] >> 4) & 0x0F) * 10 +转载 2012-06-11 15:13:47 · 4098 阅读 · 1 评论 -
谨慎使用USES_CONVERSION
谨慎使用USES_CONVERSION;,下面是从网上找到的两篇文章,大概意思就是这个宏不能使用在大的循环体和大的函数中,因为其分配的内存在函数结束的时候才能释放,所以存在堆栈溢出的问题。文章给出了解决之道以外,更深入的比较了ATL7里面的新的处理方法。文章1原文URL: http://untidy.net/blog/2004/12/17/uses_conversion/文章2原文URL:转载 2012-05-21 12:49:45 · 899 阅读 · 0 评论 -
CMap map
在MFC中,有CMap相关的map类, 在 map中有map。// Maps (aka Dictionaries) class CMapWordToOb; // map from WORD to CObject* class CMapWordToPtr; // map from WORD to void* class CMapPtrT转载 2012-06-08 15:31:52 · 1803 阅读 · 0 评论 -
VS2010检查内存泄漏 LeakDiag
http://www.codeproject.com/Articles/108529/LeakDiag-An-Effective-Memory-Leak-Analysis-Toolhttp://leakdiag.software.informer.com/download/【转】VS2010检查内存泄漏 LeakDiagLeakDiag是微软一款检测memory leak的工具转载 2012-06-07 10:14:50 · 4342 阅读 · 0 评论 -
Winsock的五种套接字I/O模型之select
http://zixiaoruixue731.blog.163.com/blog/static/336606020085253855750/Winsock提供了两种套接字模式:锁定和非锁定.当我们使用锁 定套接字的时候,我们使用的很多函数,例如accpet,send,recv等等, 如果没有数据需要处理,这些函数都不会返回,也就是说,你的应用程 序会阻塞在那些函数的调用处.而转载 2012-05-15 09:56:26 · 1619 阅读 · 0 评论 -
Select模型与ioctlsocket的使用方法
Select模型与ioctlsocket的使用方法 2011-03-29 11:38:26| 分类:软件开发C++| 标签:ioctlsocket socket 阻塞 select |字号大中小 订阅 int iMode = 1; //0:阻塞 ioctlsocket(socketc,FIONBIO, (u_long FAR*) &转载 2012-05-15 13:46:16 · 12091 阅读 · 0 评论 -
socket同步与异步
转自:网易wxy0619的博客 http://wxy0619.blog.163.com/blog/static/4471987320078611412838/ socket同步与异步 前面说了socket建立与传输的函数,但是光这些函数,还不能达到网络通信程序的全部要求。因为accept, send和recv函数默认是同步的,也就是阻塞的。send还好说,发不出去就等着,有情转载 2012-05-10 18:22:45 · 1398 阅读 · 0 评论 -
将基于MFC的对话框应用程序修改为服务程序
Windows(NT/2000)下有很多服务程序(它们在系统登录前运行),它们一般都没有界面,我们可以在服务管理器(运行services.msc)中启动和关闭它们。下面我试着修改一个有界面的MFC对话框程序,使它成为一个服务程序。网上提到了一种方法就是,从建立一个COM服务程序入手,然后将一个MFC项目改造成服务程序,最后让这一程序在启动时可以显示图形界面。这种方法的优点就是,程序向导已经帮我们写转载 2012-05-11 13:52:01 · 584 阅读 · 0 评论 -
c++ Lock
头文件ZhkMutex.h#pragma once#include #pragma comment(lib, "Kernel32.lib")#define synchronized(M) for(ZhkLock M##_lock=M; M##_lock; M##_lock.SetUnlock())class ZhkMutex{public: ZhkMutex(v原创 2012-05-24 13:16:12 · 4207 阅读 · 0 评论 -
CString的安全与效率[转]
CString的安全与效率[转]2011年07月01日 星期五 8:581. 安全使用CString 今天我花了差不多一下午的功夫,解决了一个很隐蔽的bug,包括修改和排除相关的可能存在隐患代码。就是一个关于CString的使用问题,重点体现在Format上。目前我们的代码里,对于Format的应用可以分为下面的几种方式:转载 2012-06-20 09:50:00 · 3808 阅读 · 0 评论 -
CriticalSection 和Mutex 性能比较
Windows下100万次加/解锁测试:CriticalSection用时:31msMutex用时:953ms结论:CriticalSection性能远远高于Mutex(高出约30倍)。因此,在能用CriticalSection时绝不用Mutex,当然,后者可命名,而前者不行,因此,Mutex可用于进程间通信,但CriticalSection通常只能用于线程间通信。另外,Windows上Mutex...转载 2018-05-28 10:32:08 · 747 阅读 · 0 评论 -
c++ 中的锁
这个是在中兴面试中被面试问到的一个题“你知道线程中的自旋锁么?”,我当时一脸懵逼,不知道。回来后整理下,在这里对线程中的锁进行一个学习。线程之间的锁有:互斥锁、条件锁、自旋锁、读写锁、递归锁。一般而言,锁的功能越强大,性能就会越低。1、互斥锁互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务...转载 2018-05-28 10:16:04 · 1192 阅读 · 0 评论 -
在Win32应用程序中使用MFC类库(转)
在Win32应用程序中使用MFC类库(转) 转发 评论 2010-04-30 10:38 由于MFC中的辅助类,如 CFileDialog,CFileFind,CString等使用起来非常的方便如果用API来完成相应的工作,则需要自己完成大量的重复工作,使用 MFC的辅助类可以节省大量的开发时间,具体方法如下: 1.加入相应的头文件 由于在SDK程序中一定要包含window转载 2013-08-03 09:15:34 · 9433 阅读 · 0 评论 -
有用博客
http://www.cnblogs.com/zhuweisky/http://www.vckbase.com/index.php/wv/1169http://www.cppblog.com/kangnixi/archive/2010/02/15/107878.aspxhttp://www.2cto.com/kf/201204/127728.htmlhttp://www原创 2012-06-20 18:14:55 · 557 阅读 · 0 评论 -
替换STL的queue
替换STL的queuehttp://blog.youkuaiyun.com/fxfeixue/article/details/7587381分类: C/C++2012-05-21 15:03 25人阅读 评论(0) 收藏 举报STL库是个伟大的作品,不过,有的时候,它也有一点点小问题。我写的一个服务器程序,在运行大约8小时候,出现Program received转载 2012-06-26 13:23:03 · 602 阅读 · 0 评论 -
调试Release发布版程序的Crash错误(二)
上篇给出的方案一还要补充几句。通过“crash地址 + MAP文件”来定位出错代码位置虽然需要经过比较复杂的地址计算,但却是最简单实现的方式。如果仅仅想通过崩溃地址定位出错的函数,就更加方便了。我在网上找到一个解析MAP文件的小工具,可以非常清晰的列出每个函数的地址,并且可以将分析表格导出为Excel文件。工具下载地址:http://e.ys168.com/?tinyfun,工具目录下VCMapp转载 2012-06-27 09:42:59 · 508 阅读 · 0 评论 -
VC:快速侦测断言错误导致的内存泄露
VC:快速侦测断言错误导致的内存泄露 2010-09-18 21:40:16| 分类: 疑难杂症 |字号 订阅 程序在退出时,由于断言错误,导致内存大量泄露。之前曾经遇到过类似的情况,当时是一步一步地调试,最后解决。这次再次遇到,而且情况更加复杂,所以,我想出了一个快速侦测的方法。 替换系统默认的断言语句:(加在stdafx.h文件的前面转载 2012-06-24 15:55:54 · 815 阅读 · 0 评论 -
使用 /clr 编译 MFC 可执行文件或规则 DLL
一、使用 /clr 编译 MFC 可执行文件或规则 DLL 1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。 2、展开“配置属性”旁边的节点并选择“常规”。在右侧窗格中的“项目默认值”下,将“公共语言运行库支持”设置为“公共语言运行库支持 (/clr)”。 3、在相同的窗格中,确保将“MFC 的使用”设置为“在共享转载 2012-06-20 17:59:04 · 1833 阅读 · 1 评论 -
Winsock的异步模式的I/O模型
Winsock的异步模式的I/O模型闲的没事看了下Winsock的异步模式的I/O模型,写些体会和感悟,记录一下。1.Winsock同步阻塞方式的问题1 C0 l/ W8 {2 k在异步非阻塞模式下,像accept(WSAAccept),recv(recv,WSARecv,WSARecvFrom)等这样的winsock函数调用后马上返回,而不转载 2012-05-10 18:18:00 · 3537 阅读 · 0 评论 -
VC ANSI字符集和UNICODE字符集的相互转化
http://hi.baidu.com/%B3%CC%D0%F2%D4%B1%D3%A3%C4%BE%CB%AE%B5%C0/blog/item/a7f59e009817ec034bfb51a8.htmlVC ANSI字符集和UNICODE字符集的相互转化2010-04-09 11:36ANSI 字符集中的字符串使用一个字节的空间来存放一个字转载 2012-05-10 10:48:27 · 1439 阅读 · 0 评论 -
CString详解以及CString转换成char*
http://hi.baidu.com/ljzcome/blog/item/eac3eb256104176834a80f1f.htmlCString 型和 char* 类型的相互转化1.CString 转化成 char* 之一:强制类型转换为 LPCTSTR; 这是一种略微硬性的转换,有关“正确”的做法,人们在认识上还存在许多混乱,正确的使用方法有转载 2012-05-10 10:17:15 · 476 阅读 · 0 评论 -
char * bstr CComBSTR 转换
char* tmpDeviceList=NULL;... CComBSTR valret=tmpDeviceList; free(tmpDeviceList);bstr result=valret.Copy();原创 2011-11-07 10:20:06 · 498 阅读 · 0 评论 -
vc or ocx 改变窗体大小
void COcxCzyCtrl::SetWndSize(LONG v_width, LONG v_height){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); // TODO: 在此添加调度处理程序代码 /*::SetWindowPos(this->m_hWnd,HWND_BOTTOM,0,0,v_width,v_height,SW原创 2011-11-07 09:47:21 · 2599 阅读 · 0 评论 -
关于VC中的数据类型转换BSTR、char*和CString的深入研究
#include #pragma comment(lib, "comsupp.lib");使用 _bstr_t 需要添加库连接,不然会出现无法解析的外部链接http://jingyan.baidu.com/article/c1a3101ee590e8de656deb1a.htmlchar*转换成CString 若将char*转换成CString,除转载 2011-11-07 11:26:33 · 639 阅读 · 0 评论 -
ActiveX 点滴
CRect rc=rcBounds;; if(m_ClientDlg) { //MessageBox(_T("COcxCzyCtrl::OnDraw 0...."),NULL,0); //m_Client_Dlg->RedrawWindow(); m_ClientDlg->GetWindowRect(&rc); int cx,cy; GetControlSize(&cx原创 2011-11-03 15:29:10 · 466 阅读 · 0 评论 -
VC2005与IE8的冲突解决
今天将系统重新折腾了一遍以后,安装了VS2005打上SP1,完了把IE8给装上后每当增加变量的时候就弹出个错误,说是安全性问题,造成显示不完全。此时不能设置变量的具体类型,这对于软件的使用有十分大的影响,上网搜出个解决方法,具体做法如下:1.打开注册表编辑器(regedit);2.在"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentV转载 2011-10-28 17:00:32 · 472 阅读 · 0 评论 -
windows C++ 用信号量控制线程
windows C++ 用信号量控制线程2010-08-11 09:09很好的控制线程,让线程互斥,互相协调工作,共享数据,这个问题有很多种解决办法,不过我个人觉得使用信号量控制线程特别方便。会想到用多线程控制程序,是由于上学期我们要做一个控制电机转速的课程设计,开始编写的程序都是一个线程控制的。后来课程设计结束了,一次在看多线程的演示程序的时候突然想到,原来的那个电机控制程序完全转载 2011-10-24 15:57:40 · 5856 阅读 · 0 评论 -
用VC实现抓图功能[转载]
用VC实现抓图功能[转载] 常常需要将屏幕图像或程序图形保存成图像格式,对于不太熟悉设备上下文和DDB、DIB的新手来说,无疑是一个难题,下面给出简单实现抓图功能的两个函数,只要稍加改动就可实现图像的保存。函数1: CopyScreenToBitmap //将屏幕转载 2011-10-08 14:39:45 · 770 阅读 · 0 评论 -
解决在VS2005中“当前不会命中断点。源代码与原始版本不同”的问题
解决在VS2005中“当前不会命中断点。源代码与原始版本不同”的问题2011-06-07 14:33 15人阅读 评论(0)收藏 举报 【转载】今天在Visual Studio 2005中调试某个程序时遇到一个奇怪问题,就是在某个源文件中设置的转载 2011-10-14 12:27:48 · 677 阅读 · 0 评论 -
ocx 有安全提示的问题
在 *Ctrl.cp 中找到/ 初始化类工厂和 guidIMPLEMENT_OLECREATE_EX(COcxCzyCtrl, "OCXCZY.OcxCzyCtrl.1", 0x2a81cd33, 0xccf0, 0x4426, 0x9a, 0xe3, 0xa, 0xb, 0xba, 0xe5, 0xf4, 0x44)const GUID CDECL CLSID_SafeItem =原创 2011-11-30 17:13:48 · 833 阅读 · 0 评论 -
srvtcp
对于开发一款高性能服务器程序,广大服务器开发人员在一直为之奋斗和努力.其中一个影响服务器的重要瓶颈就是服务器的网络处理模块.如果一款服务器程序不能及时的处理用户的数据.则服务器的上层业务逻辑再高效也是徒劳.所以一个服务器程序的网络处理能力直接影响到整个服务器的性能, 本文主要介绍在windows平台下开发高性能的网络处理模块以及自己在设计开发服务器网络模块遇到的一些问题和开发心得.本篇主要介绍TC转载 2012-01-15 14:16:26 · 674 阅读 · 0 评论 -
iocp 修改
感谢原作者:http://blog.youkuaiyun.com/phunxm/article/details/6140858《A Simple IOCP Server/Client Class》 一.项目概述1.pre:预编译器文件stdafx。 2.app:MFC主线程。 BOOL CIOCPApp::InitInstance() {转载 2012-03-09 13:01:28 · 1780 阅读 · 0 评论 -
srvudp
http://www.cnblogs.com/onlytiancai/archive/2009/04/06/1430256.html上一篇文章我详细介绍了如何开发一款高性能的TCP服务器的网络传输层.本章我将谈谈如何开发一个高性能的UDP服务器的网络层.UDP服务器的网络层开发相对与TCP服务器来说要容易和简单的多,UDP服务器的大致流程为创建一个socket然后将其绑定到完成端口上并投递转载 2012-01-15 14:14:59 · 570 阅读 · 0 评论 -
malloc,new,VirtualAlloc,HeapAlloc性能(速度)比较
http://www.cppblog.com/woaidongmao/archive/2011/12/02/153160.html这里比较的VC++编译的C++代码中的性能 我用的是VC6.0测试的就不介绍这几个的用法了我写了一段简单的测试代码测试结果是:malloc:390new:391VirtualAlloc:454HeapAlloc:47很明显的是He转载 2012-03-03 15:04:47 · 5916 阅读 · 1 评论 -
IOCP知识点及疑惑
http://hzdiy.iteye.com/blog/7781941. IOCP发送大数量的问题 2. IOCP发送大数量的问题 有A,B两块数据,如AB两块数据,如果A数据比较大,异步只发送了一部分就返回了,B数据已经提交,¬这时候再发A剩下的部分就乱顺序了 ,该如何处理。 所有重叠操作可确保按照应用程序投递的顺序执行. 然而, 不能转载 2012-02-19 20:59:40 · 1856 阅读 · 0 评论 -
BSTR CSTRING
# CString------>BSTRCString sName = _T("Hello");BSTR bsName = sName.AllocSysString();SysFreeString(bsName);# CString------>CComBSTRCComBSTR cbsName(sName); //编译环境为UNICODE:调用构造函数CComBSTR(LPCO转载 2012-02-17 15:50:40 · 712 阅读 · 0 评论 -
vc 定时器
在VC中,定时有三种方法,一是利用WM_TIMER消息的API函数,二是使用多媒体定时器,三是多线程定时器(不知道是不是可以这样分啊)。1、WM_TIMERSetTimer函数是用来设立一个定时器,SetTimer函数的原型如下:UINT_PTR SetTimer(HWND hWnd, // 窗口句柄UINT_PTR nIDEvent, // 定时器IDU转载 2012-02-24 15:47:08 · 1065 阅读 · 0 评论 -
IOCP
下载源代码原文网址:http://www.codeproject.com/KB/IP/iocp_server_client.aspx源码使用了高级的完成端口(IOCP)技术,该技术可以有效地服务于多客户端。本文提出了一些IOCP编程中出现的实际问题的解决方法,并提供了一个简单的echo版本的可以传输文件的客户端/服务器程序。程序截图:1.1 环境要求本文转载 2012-01-16 10:10:43 · 720 阅读 · 0 评论 -
vs2008 技巧
1. 怎样调整代码排版的格式?选择:编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。格式化cs代码:Ctrl+k+f 格式化aspx代码:Ctrl+k+d2. 怎样跳转到指定的某一行?两种方法:Ⅰ. Ctrl+G Ⅱ. 单击状态栏中的行号3. 怎样创建矩形选区?两种方法:Ⅰ. 摁住alt键,然后拖动鼠标即转载 2012-01-16 09:44:36 · 436 阅读 · 0 评论