VC++
文章平均质量分 64
luxiaoyu_sdc
这个作者很懒,什么都没留下…
展开
-
MINA服务端与C++客户端通讯(1)
2011-07-09 08:53:02 我来说两句 收藏 我要投稿最近学习了Apache MINA通讯,在使用过程中碰到了一些问题,记录下一些心得。在服务端和客户端都使用MINA提供的库时,通讯一切正常,当我把客户端改为C++代码时,发现客户端发送给服务端的二进制流中的整形数据,位置被倒置了。C++客户端16进制 :0x00000013MINA服务端1转载 2013-07-11 15:55:45 · 1392 阅读 · 0 评论 -
MFC UI库知多少
了解到的如下:CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit收费了)http://www.codejock.com/BCGControlBar(收费,mfc扩展开发包,功能很强大)http://www.bcgsoft.comSkinMagic(收费,看起来像Office)http://appspeed.com/html/download.原创 2011-06-21 11:42:00 · 3390 阅读 · 0 评论 -
加壳 脱壳工具简介
<br /> <br /> <br /> <br />http://www.pediy.com/tools/unpacker.htm原创 2011-04-26 17:04:00 · 920 阅读 · 0 评论 -
费解的NTDLL断点
除虫记之十二:费解的NTDLL断点处理在NTDll中意外的用户断点很久没有写东西了,这次是为了完善很久很久以前写的一个培训ppt(VC的使用与调试技巧),才想起来写点东西的。 下面的文章参考了http://www.debuginfo.com/tips/userbpntdll.html。我们在调试程序的过程中,有时会突然的显示一个对话框,上面显示这样一条信息: User brea转载 2011-06-13 17:51:00 · 1127 阅读 · 0 评论 -
VC++ 通过进程名或进程ID获取进程句柄
VC++ 通过进程名或进程ID获取进程句柄 HANDLE GetProcessHandle(int nID)//通过进程ID获取进程句柄{return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);}HANDLE GetProcessHandle(LPCTSTR pName)//通过进程名获取进程句柄{HANDLE hS原创 2011-06-09 18:45:00 · 19388 阅读 · 0 评论 -
提高VS2010的运行速度
有的时候VS2010运行真的实在是太卡了, 奇卡无比, 下面几个技巧可以稍微让你觉得它没那么卡!!一、VS2010选项视觉体验设置 工具->选项->环境 视觉体验的勾选都去掉。不解释,你懂得。(不过还是建议打开硬件加速)二、禁用Intellisense 工具->选项->文本编辑器->C/C++->高级 禁用IntelliSense设为True 这个功能很好用。相较于Visual Assist X,Intellisence结果更加准确,但活动也更加频繁,项目一庞大时修改头起原创 2011-06-01 15:00:00 · 1572 阅读 · 0 评论 -
如何根据异常提示信息找出程序出错代码(VC6)
<br />看到网上说在debug下可以找到预料的崩溃地址行,但是实际上没有什么用呀。<br />(既然在debug下,那直接用调试器找不更好吗?费这么大劲干什么)(转的文章在后面)<br /><br />Release版本(指编译器优化后的),要找崩溃地址行就比较费劲了。<br />linux下的方法:<br />1、使之生成core dump文件<br />2、gdb调试该core文件<br />3、根据大概的堆栈信息,运行disassemble (具体用法见gdb帮助)<br />4、根据崩溃地址找到原创 2011-06-01 13:10:00 · 7454 阅读 · 2 评论 -
利用VS2005进行dump文件调试(2008,2010适用)
利用VS2005进行dump文件调试前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件。使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置。本文将讨论以下内容:1、 程序编译选项2、 利用VS2005 分析dump文件3、 常见问题讨论一、 程序编译选项PDB files contains a原创 2011-06-03 18:16:00 · 3997 阅读 · 0 评论 -
VS2005(vs2008,vs2010)使用map文件查找程序崩溃原因
LINUX 编程 2010-06-23 22:44:10 阅读263 评论0 字号:大中小 订阅 看到网上说在debug下可以找到预料的崩溃地址行,但是实际上没有什么用呀。(既然在debug下,那直接用调试器找不更好吗? 费这么大劲干什么)(转的文章在后面) Release版本(指编译器优化后的),要找崩溃地址行就比较费劲了。 linux下的方法: 1、使之生成core dump文件 2、gdb调试该core文件 3、根据大概的堆栈信息,运行disassemble (具体用法见gdb帮助) 4、根据崩溃地址转载 2011-06-01 11:36:00 · 12076 阅读 · 7 评论 -
CEGUI安装、编译、运行总结
花了两天时间,总算把Sample下的例子跑成功了,真不容易啊,呵呵,现把遇到的问题解决等做个小小的总结吧,供初学者交流参考,若有说错的地方,欢迎指正。1、 下载:http://www.cegui.org.uk/wiki/index.php/Downloads最新版本为0.7.1,点进去后会发现有多个download链接,简单翻译下:a) CEGUI 0.7.1 L转载 2011-06-21 17:55:00 · 867 阅读 · 0 评论 -
MFC ui(未整理)
MFC-界面库BCG使用指南 - MFC - 雪浪狐http://www.cublog.cn/u2/62117/showart_2083144.html 校错:http://kb.cnblogs.com/a/1743176/ 国外的:http://3d2f.com/programs/120-599-dskinlite-gui-library-download原创 2011-06-21 16:09:00 · 889 阅读 · 0 评论 -
MINA服务端与C++客户端通讯(2)
Java与C++通讯还有编码转码的问题存在,假设通讯编码采用UTF-8C++客户端发送时需要转码成UTF-8编码,接收服务端应答消息后再转回Unicode或者GBK编码下面给出完成的C++客户端通讯示例:void Transcoding(LPCTSTR src, UINT srcCode, string& dest, UINT destCode) { int l转载 2013-07-11 15:54:51 · 1285 阅读 · 0 评论 -
vc6.0 调试小结
现在都用vs2008了,VC6的速度还是很怀念,来个小结吧。断点相关快捷键:1.F9在当前光标所在的行下断点,如果当前行已经有断点,则取消断点. F5调试状态运行程序,程序执行到有断点的地方会停下来. F10单步执行程序. CTRL+F10运行到光标所在行. F11和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面. SHIFT+F11跳出当前所在原创 2012-03-30 09:19:22 · 853 阅读 · 0 评论 -
VC中用于调试程序的几个宏的使用技巧
VC中用于调试程序的几个宏的使用技巧 一、TRACE宏当选择了Debug目标,并且afxTraceEnabled变量被置为TRUE时,TRACE宏也就随之被激活了。但在程序的Release版本中,它们是被完全禁止的。下面是一个典型的TRACE语句:int nCount = 9;Cstring strDesc("total");TR转载 2012-03-27 10:39:03 · 551 阅读 · 0 评论 -
基于Hessian协议实现异构系统通讯
说明:1,本文实现的是VC与Java(服务端)通信2,现已实现了java与.net,java与VC的互通;其他语言不熟,但应该没什么问题补充:需要用到boost库和官网示例的库,因为用的是VC,所以windows版的setupssh也是需要的;比较麻烦。这里要特别感谢朋友龙**的无私帮助。VC与java服务端通讯: 1,服务地址:http://219.2原创 2012-03-26 11:06:22 · 981 阅读 · 0 评论 -
Windows平台的计时器
Windows平台下,常用的计时器有两种:1, TimeGetTime计时器,它可以提供毫秒级ms的计时。但这个精度对很多应用场合而言还是不够精确的。例子:#include #include #pragma comment(lib, "winmm")//告诉程序要链接winmm.lib,VC中路径:VC98-->lib-->winmm.libmain(){DWORD原创 2012-03-26 17:35:41 · 1986 阅读 · 0 评论 -
utf8 BOM:EF BB BF
<br />Unicode规范中有一个BOM的概念。BOM——Byte Order Mark,就是字节序标记。在这里找到一段关于BOM的说明:<br />在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE原创 2011-04-28 22:28:00 · 3296 阅读 · 0 评论 -
ASCII,Unicode和UTF-8(转帖)
字符编码笔记:ASCII,Unicode和UTF-8<br />作者: 阮一峰<br />日期: 2007年10月28日<br />今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。<br />结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。<br />下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。<br />1. A转载 2011-04-28 22:19:00 · 640 阅读 · 0 评论 -
Qt和Visual Studio 2010集成使用
Qt和Visual Studio 2010集成使用尽管NOKIA官方还没有正式发布支持Visual Studio 2010的版本的Qt,但是你仍然可以通过自己构建支持Visual Studio 2010的Qt.我使用的版本是4.7 beta2.下载的档案包是:qt-win-opensource-4.7.0-beta2-vs2008先安装,到任意目录,接着添加环境变量Path原创 2011-06-21 18:01:00 · 1300 阅读 · 0 评论 -
使用命名管道的OVERLAPPED方式实现非阻塞模式编程
<br /> 命令管道是进程间通讯的一种常用方式,对于命令管道的介绍可以参考别的资料和书籍,这里推荐一个《VC++下命名管道编程的原理及实现》这篇博文,写得比较清楚。但是都是介绍了阻塞模式的编程,我这里主要是介绍利用命令管道OVERLAPPED方式使用非阻塞模式编程。注:文中使用的方法就是函数的意思。<br /> 参考MSDN,服务器端创建命令管道(使用CreateNamedPipe方法),不使用FILE_FLAG_OVERLAPPED模式时,当使用ConnectNamedPipe方法时,服务器端会进入阻塞转载 2011-04-08 11:50:00 · 3742 阅读 · 0 评论 -
VC 管道通信
<br />尽管TCP/IP协议现在已发展成为Internet的标准,但仍不能确保C/S应用程式的顺利进行。命名管道作为一种通信方法,有其独特的优越性,这主要表现在他不完全依赖于某一种协议,而是适用于任何协议——只要能够实现通信。 <br /><br /> 命名管道具备很好的使用灵活性,表现在: <br /><br /> 1) 既可用于本地,又可用于网络。 <br /><br /> 2) 能够通过他的名称而被引用。 <br /><br /> 3) 支持多客户机连接。 <br /><br /> 4)转载 2011-04-07 20:56:00 · 6903 阅读 · 0 评论 -
Win32的文件夹遍历方法之递归写法
<br />Win32的文件夹遍历方法之递归写法文章关键字:|递归|Win32|文件夹|遍历| <br /><br /> 文件夹遍历技术是一种非常有用的技术,在文件的搜索以及杀毒软件中都使用了这种技术。以下我将讨论如何在Win32下实现这种技术。文件夹遍历技术的核心就是使用递归算法,关于递归算法我这里就不多介绍了,不明白的朋友请参阅相关内容。 <br /><br />以下是我的算法伪代码: <br />void function(LPCTSTR lpszPath) <br />{ <br />开始查找;转载 2011-03-21 09:20:00 · 842 阅读 · 0 评论 -
VC编写DLL几种方法的简介. 收藏
<br /> VC编写DLL几种方法的简介. 收藏<br />动态连接库最大的特点就是能节省磁盘空间.当多个进程共享同一个DLL的时候,内存中只有一个DLL的代码.通过映射来使各个进程得以调用.<br />1.用VC建立一个WIN32 DLL<br />我们利用VC编写DLL有几种方法.如果用VC建立一个WIN32 DLL 工程.那这个工程就应该只导出C++的类或全局变量.和全局函数.方法就是在CPP文件中编写你的代码,为每个需要导出的元素进行导出办法是增加如下语句:<br />_declspec(dll转载 2011-03-13 17:19:00 · 609 阅读 · 0 评论 -
vc2010导入DLL库
导入DLL库:①如图所示,导入Lib库(函数导入表,非静态库)②把DLL文件copy到程序运行目录当然,使用前要导入相应的头文件 呵呵原创 2011-03-09 14:34:00 · 3169 阅读 · 0 评论 -
用WM_COPYDATA实现进程通信
<br />用WM_COPYDATA实现进程通信<br />用WM_COPYDATA的前提:<br />1,知道接收消息进程的句柄。<br />2,接收消息进程重载了WM_COPYDATA消息映射,能对其做出反应(否则不是发送端自作多情了?)<br />看过前提,得出结论:在自己写的两个进程间用WM_COPYDATA再好不过。<br />下面CODE几行就说明了一切。<br />获得句柄的方法,最简单的方法就是使用FindWindow,找窗口类,或者名,如果你觉得这样不把握,那就利用SetProp个窗口做个原创 2011-02-16 16:08:00 · 1082 阅读 · 0 评论 -
vc6 unicode编码
<br />VC6默认建立的工程是ANSI模式,ANSI模式在繁体中文系统中会出现乱码,需要将ANSI版程序转换成UNICODE<br />1. 添加 UNICODE 和 _UNICODE 预处理定义<br />位置:Project Settings -> C/C++ -> Preprocessor definitions<br />添加了这两个定义后,MFC的一些内置类型如 TCHAR、CString 都将转为支持宽字符类型(wchar_t)<br />2. 使用宽字符相关类型,如:<br />char转载 2011-02-15 17:00:00 · 2132 阅读 · 0 评论 -
vc中常用的方法
vc中常用的方法<br /> 一、打开CD-ROM <br />mciSendString("Set cdAudio door open wait",NULL,0,NULL); <br />二、关闭CD_ROM <br />mciSendString("Set cdAudio door closed wait",NULL,0,NULL); <br />三、关闭计算机 <br />OSVERSIONINFO OsVersionInfo; //包含操作系统版本信息的数据结构 <br />OsVersionIn转载 2011-02-15 13:22:00 · 649 阅读 · 0 评论 -
Windows/MFC数据类型
<br /> Windows/MFC数据类型 <br /> <br />#define FALSE 0 afx.h<br />#define TRUE 1 afx.h<br />#define NULL 0 afx.h<br />typedef void VOID winnt.h<br /> <br />// 短整型typedef unsigned short<br />typedef转载 2011-01-20 09:14:00 · 655 阅读 · 0 评论 -
线程的同步对象
线程的同步对象(2010-05-15 20:55:30)转载标签:临界区信号量线程类对象函数分类:多线程编程使同一进程的各线程协调一致地工作称为线程的同步。MFC提供了多种同步对象,通过这些类,我们可以比较容易地做到线程同步。最常用的四种:<br />1、临界区(CCriticalSection)<br />2、事件(CEvent)<br />3、互斥量(CMutex)<br />4、信号量(CSemaphore)<br /> <br />一、使用临界区——CCriticalSection类<br />转载 2011-01-18 15:19:00 · 707 阅读 · 0 评论 -
互斥类(Cmutex)——MFC
<br />互斥类(Cmutex)——MFC(2010-05-29 14:20:33)转载标签:mfcwin32api构造函数互斥量it分类:多线程编程<br />一、关于CMutex类<br /> 1、CMutex只是对 win32API 的互斥操作进行了封装<br /> 2、它的参数与 win32 API 中的 CreatMutex() 相对应<br /> 3、CMutex的构造函数调用 CreatMutex() 创建并检查<br /> 4、其Lock操作从基类继承,调用WaitForS转载 2011-01-18 15:13:00 · 11054 阅读 · 0 评论 -
程序模块架构图 收藏
<br />程序模块架构图 收藏<br />服务器端<br />原创 2011-03-13 17:45:00 · 1681 阅读 · 0 评论 -
vc2010转化vc2005或低版本VC过程后,编译错误 解决方法
<br />转化为vc2010后,出现以下错误:<br />“C:/Program Files/Microsoft Visual Studio 10.0/VC/atlmfc/include/atlcore.h(35): fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.”<br /> <br原创 2011-03-11 13:47:00 · 7921 阅读 · 2 评论 -
细说 #pragma pack(n)(转帖)
<br /> <br /><br />在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。<br />例如,下面的结构各成员空间分配情况:<br />struct test <br />{<br /> char x1;<b转载 2011-03-18 16:09:00 · 480 阅读 · 0 评论 -
文件操作 复制移动删除重命名文件文件夹(转帖)
<br />文件操作 复制移动删除重命名文件文件夹<br />转自:http://blog.csdn.net/jacky_qiu/archive/2010/12/04/6054759.aspx<br />━━━━━━━━━━━━━━━━━━━━━━━━<br />说明:<br />1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile<br />2.每个函数都先拷贝了原来的路径,保证了路径是以2个/0/0结尾。(如果不以2个/0/0结尾,往往会出错)<b原创 2011-03-16 16:31:00 · 2857 阅读 · 0 评论 -
文件操作 复制移动删除重命名文件文件夹(转帖)
<br />文件操作 复制移动删除重命名文件文件夹<br />转自:http://blog.csdn.net/jacky_qiu/archive/2010/12/04/6054759.aspx<br />━━━━━━━━━━━━━━━━━━━━━━━━<br />说明:<br />1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile<br />2.每个函数都先拷贝了原来的路径,保证了路径是以2个/0/0结尾。(如果不以2个/0/0结尾,往往会出错)<b原创 2011-03-16 16:31:00 · 807 阅读 · 0 评论 -
利用socket安全发送一段数据
<br />利用socket安全发送一段数据:<br /> <br />int X_SafeSend(SOCKET s, char * buf, DWORD bufLen)<br />{<br /> int iSend;<br /> int remainLen=bufLen;<br /> int tryCnt=5;<br /> while(remainLen>0 && tryCnt>0 ){<br /> iSend = send(s,buf+(bufLen-remainLen),remainLen,0);原创 2011-03-16 14:26:00 · 910 阅读 · 0 评论 -
VC 文件路径常用操作
文件路径常用操作━━━━━━━━━━━━━━━━━━━━━━━━#include #include #include using namespace std;void GetFileNameInPath(const TCHAR* FilePath,TCHAR* FileNameBuf,UINT BufSize);void GetPathWithoutFileName (TCHAR* FilePath);void GetPathWithoutFileName (const TCHAR* FilePath,TC转载 2011-03-16 16:33:00 · 2416 阅读 · 0 评论 -
Windows 2000 和 Windows Server 2003 TCP 功能的说明
Windows 2000 和 Windows Server 2003 TCP 功能的说明<br />微软官方RFC:<br /> <br />http://support.microsoft.com/kb/224829<br /> <br /> TCP交互数据流,成块数据流<br />目前建立在TCP协议上的网络协议特别多,有telnet,ssh,有ftp,有http等等。这些协议又可以根据数据吞吐量来大致分成两大类: (1)交互数据类型,例如telnet,ssh,这种类型的协议在大多数情况下只是做原创 2011-03-16 03:45:00 · 1257 阅读 · 0 评论 -
socket发送结构体 小结
<br />前提:结构体类型只能为值类型和字符串数组(保持定长)<br />结构体实例:<br /> <br />struct UsrData{<br />TCHAR usr_id[16];<br />TCHAR usr_pwd[16];<br />TCHAR usr_nickname[16];<br />int i;<br />struct aa{<br />int bbb;<br />TCHAR aaStr[16];<br />} a_s;<br />};<br /> <br />发送:<br /><b原创 2011-03-15 17:14:00 · 1497 阅读 · 0 评论 -
CListCtrl使用总结
http://blog.csdn.net/sherlockhua/archive/2009/11/23/4857016.aspxhttp://blog.sina.com.cn/s/blog_4b44e1c00100d493.html以上参考谢谢!转载 2011-03-11 16:49:00 · 630 阅读 · 0 评论