- 博客(60)
- 资源 (4)
- 收藏
- 关注
转载 慎用USES_CONVERSION
USES_CONVERSION是ATL中的一个宏定义。用于编码转换(用的比较多的是CString向LPCWSTR转换)。在ATL下使用要包含头文件#include "atlconv.h"使用USES_CONVERSION一定要小心,它们从堆栈上分配内存,直到调用它的函数返回,该内存不会被释放。如果在一个循环中,这个宏被反复调用几万次,将不可避免的产生stackoverflow。
2012-11-30 11:23:12 570
转载 使用DrawIcon绘制图标时大小
使用DrawIcon绘制图标时大小问题使用DrawIcon绘制图标的时候,发现绘制出来的图标偏大,我本来是要绘制一个16x16的图标,可是绘制出来的出现明显的拉伸。原来,DrawIcon绘制出的图标大小是GetSystemMetrics(SM_CXICON),GetSystemMetrics(SM_CYICON)得到的大小,如果想要绘制自定义大小的图标,就不能调用DrawIcon了,可
2012-11-30 11:02:54 8177
转载 获取窗口矩形的四种方法: GetClientRect、ClientRect、GetWindowRect、BoundsRect
其中 GetClientRect、ClientRect 获取的是窗口的客户区矩形;GetWindowRect、BoundsRect 是获取窗口矩形;另外, 还有一个 Windows.GetClientRect(使用方法同 GetWindowRect, 它们都是 API 函数), 这里使用的 GetClientRect 是 Forms.GetClientRect.本例
2012-11-30 10:53:50 6564
转载 用GetSystemMetrics函数获取系统分辨率
可以用GetSystemMetrics函数可以获取系统分辨率,但这只是其功能之一,GetSystemMetrics函数只有一个参数,称之为「索引」,这个索引有75个标识符,通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。为了使使GetSystemMetrics的功能,我们以获取系统分辨率为例,并将其中的两个值用TextOut输出到窗体中。第一
2012-11-30 10:48:41 927
转载 MFC控件(三)(进度条控件和滑块控件)
进度条控件使用进度条显示操作进度:进度条控件封装在CProgressCtrl类中。1、SetRange和SetRange32方法用来设置进度条显示范围。语法格式:void SetRange(short nLower, short nUpper);void SetRange32(int nLower, int nUpper);nLower:最小值,默认0;nUpp
2012-11-30 10:29:24 3229
转载 CWnd::SetIcon究竟做了什么事?
用VC向导生成的基于对话框的程序中,在对话框的OnInitDialog()函数中,总可以看到如下的代码段: BOOL CXXXDlg::OnInitDialog(){ ...... // Set the icon for this dialog. The framework does this automatically // when
2012-11-30 10:25:26 902
转载 MFC中PreTranslateMessage函数浅析
作用: PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制
2012-11-29 22:18:33 977
转载 ON_WM_SYSCOMMAND响应函数OnSysCommand()
一、 OnSysCommand()这个函数主要是截获控制命令的,msdn上的解释如下: The framework calls this member function when the user selects a command from the Control menu, or when the user selects the Maximize or th
2012-11-29 21:59:03 8579 1
转载 说说DoDataExchange(CDataExchange* pDX)
DoDataExchange(CDataExchange* pDX) 是MFC CWnd的一个重要的函数。在此函数中可以利用一系列的DDX_xxxx(..)函数实现UI与data的数据交互,以及用DDV_xxx(...)来实现数据验证。如:// simple text operationsvoidAFXAPI DDX_Text(CDataExchange* pD
2012-11-29 21:44:03 1255
转载 MFC中对话框的数据交换(DDX)和数据校验(DDV)
MFC中对话框的数据交换(DDX)和数据校验(DDV)DDX : dialog data exchangeDDV : dialog data validation文档描述MFC中的DDX DDV机制,如何使用DDX_和DDV_ 函数和定制自己的DDX_ ,DDV_函数;Dialog Data Exchange概要:对话框的数据交换不依赖于任何宏来实现,全部依赖于C++代
2012-11-29 21:19:53 1191
转载 MFC 模态对话框dlg.DoModal()返回值
查了很多资料,都说DoModal()返回值为OK或CANCEL键的ID 其实,这种说法是错误的 MSDN是这样说明其返回值的 If successful, the value of the nRetCode parameter specified in the call to EndDialog; otherwise, -
2012-11-29 17:29:40 3730
转载 MFC应用程序接收命令行参数的实现
有些时候我们需要我们的可执行程序在启动时获得用户指定的参数值,比如windows中常用的ping命令:ping 192.168.0.1 –t 其中192.168.0.1 和-t都是该可执行程序ping的参数。MFC中提供了比较便捷的方式来实现参数值的传入,也就是本文要讲述的CCommandLineInfo类。通过MFC向导生成的应用程序框架,在主App
2012-11-29 17:09:58 1273
转载 VC开发支持ActiveX控件工程
近日使用VC开发一个带对话框的ActiveX控件第一步:创建ActiveX控件,正常使用第二步:ActiveX控件添加对话框,正常,参见http://blog.csdn.net/ljz9425/article/details/7192786第三步:对话框添加常用控件,测试正常第四步:对话框添加ActiveX控件,测试错误:debug assertion failed f:\rtm\vc
2012-11-29 16:49:40 1447
转载 VC中MessageBox与AfxMessageBox用法与区别
MessageBox()用法消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。 1.MessageBox("这是一个最简单的消息框!"); 2.MessageBox("这是一个有标题的消息框!","标题"); 3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL );
2012-11-29 16:45:49 8268 2
转载 VC 自定义消息 postmessage用法
VC 自定义消息 postmessage用法1. 在 resource.h文件添加如下代码 定一个自己的消息#define WM_MY_MESSAGE WM_USER + 100 //---------------------by tyds2.在...view.h的文件添加如下://{{AFX_MSG(CPostmessageView)
2012-11-29 15:18:31 7028
转载 由SendMessageTimeout想到的。SendMessageTimeout 和 SendMessage
SendMessageTimeout 和 SendMessage闲来无事,查找下如何实现修改注册表立即生效的功能。下面举个例子:比如修改光盘为不自动运行,如果单单通过写注册项修改NoDriveTypeAutorun属性,则要使其生效必须重起电脑,但是TweakUI就可以立即生效,到网上查发现必须先通知Windows外壳更新信息。最后去MSDN查了一下SendMessageTimeOut,觉
2012-11-29 14:46:18 4667 1
转载 GetSafeHwnd()函数解释
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由: CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器 HWND hwnd = pwnd->m_hwnd; //得到它的HWND 这样
2012-11-29 14:38:28 2470
转载 MultiByteToWideChar和WideCharToMultiByte用法详解
//========================================================================//TITLE:// MultiByteToWideChar和WideCharToMultiByte用法详解//AUTHOR:// norains//DATE:// 第一版:Monday 25-Decembe
2012-11-29 14:24:58 497
转载 ATL字符串类型转换
ATL提供了宏来进行unicode和MBCS字符串之间的转换,ATL 提供的转换宏。A2BSTROLE2AT2AW2AA2COLEOLE2BSTRT2BSTRW2BSTRA2CTOLE2CAT2CAW2CAA2CWOLE2CT
2012-11-29 14:17:53 926
转载 MFC中CString.Format的详细用法
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c
2012-11-29 14:13:51 554
转载 CString的GetBuffer用法
一.函数原型CString::GetBufferLPTSTR GetBuffer( int nMinBufLength );throw( CMemoryException );Return ValueAn LPTSTR pointer to the object’s (null-terminated) character buffer.ParametersnMinBuf
2012-11-29 11:27:33 674
转载 __FILE__,__LINE__,FUNCTION__实现代码跟踪调试
root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H #define GLOBAL_H #include int funca(void); int funcb(void);#endifroot@xuanfei-desktop:~
2012-11-29 11:14:44 1260
转载 multicast vs broadcast 2
12.1 引言 在第1章中我们提到有三种IP地址:单播地址、广播地址和多播地址。本章将更详细地介绍广播和多播。 广播和多播仅应用于UDP,它们对需将报文同时传往多个接收者的应用来说十分重要。TCP是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接。 考虑包含多个主机的共享信道网络如以太网。每个以太网帧包
2012-11-29 10:51:50 607
转载 multicast vs broadcast
一、multicast概述: 多媒体应用集成了声音、图形、动画、文本以及视频,这种应用在现在的网络环境中也越来越多。多媒体流量在网络中主要有三种传播方式:1、unicast (单播)2、broadcast (广播)3、multicast (多播)每种传播方式对网络带宽都有不同的影响。 unicast会对每个客户端分别发送一份流量的拷贝
2012-11-29 10:22:02 871
转载 Python的subprocess子进程和管道进行交互
今天发现了更方便的方式,就是用subprocess模块,创建子进程,然后用管道来进行交互,而这种方式在shell中非常普遍,比如:cat xxx.file | test.py 就是用的管道,另外,在hadoop中stream模式就是用的管道。其实在python中,和shell脚本,其他程序交互的方式有很多,比如:os.system(cmd),os.system只是执行一个shell
2012-11-28 09:44:22 3769
转载 c++和Python互操作高级应用(5)
把我在实际过程中遇到的问题,总结一下,请先阅读:python教程,python FAQ1.如果封装的c++类没有拷贝构造函数怎么办?定义class的时候,加入模板参数boost::noncopyable,同时指定no_init class_("ExpandEmitter",no_init);拷贝构造的目的是,c++对象实例传递给python时,可以通过拷贝构
2012-11-28 09:22:38 863
转载 C++调用Python(4)
其实,C++调用Python有两种方式,我前面介绍了第一种方式:通过找到Python模块,类,方法,构造参数来调用。第二中方式,就是通过构造出一个Python的脚本,用python引擎来执行。第一种方式可能更为优雅,符合大多数的反射调用的特点。(我在以前的一个项目中,实现了c#的反射机制,c#调用Com+,c#调用javascript脚本等)。 还有一个问题,两种语言互相调用的时候,需要做数
2012-11-28 09:21:15 575
转载 C++调用Python(3)
前两篇都是介绍Python调用C++的,换句话说,就是需要把C++封装成Python可以“理解”的类型。这篇,我打算说一下,C++怎么去调用Python脚本。其实这两者之间是相通的,就是需要可以互操作。按照惯例,先贴代码。test.cpp[cpp] view plaincopy/* * test.cpp * Created
2012-11-28 09:20:12 884
转载 Python调用采用Boost Python封装的c++(2)
上次我写了利用Python提供的API封装c函数,并调用。但是由于利用API的方式过于原始,对于类或者结构极度麻烦。因此,我选择了Boost的Python的来封装类,类似的工具还有SWIG等,选择Boost的原因是它不需要引入其他的接口描述语言,封装也是c++代码;另外,它支持的c++特性比较全。 Boost Python的文档,我推荐:http://www.maycode.com/
2012-11-28 09:18:50 1142
转载 Python调用c/c++函数(1)
Python开发效率高,运行效率低。而c/c++恰恰相反。因此在python脚本中调用c/c++的库,对python进行扩展,是很有必要的。使用python api,http://www.python.org/doc/ ,需要安装python-dev。test.cpp文件如下[cpp] view plaincopy#include //
2012-11-28 09:16:49 648
原创 我的w3m快捷键备份
(apply-define-key global-map `(("M-M" w3m-goto-url-new-session) ("C-x M-B" view-w3m-bookmark) ("C-x M-m" switch-to-w3m))) (apply-define-key w3m-mode-map `(("" w3m-previous-anchor)
2012-11-23 21:36:57 1307
转载 使用CPU时间戳进行高精度计时
这个贴子记不起来是在哪里看的了。向原作者表示一下敬意!我在FreeBSD下试验成功过,CPU是P4 1.7G。 使用CPU时间戳进行高精度计时对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。
2012-11-23 14:17:07 1256
转载 Python中的__metaclass__=type什么意思
PYTHON中的new classhttp://wiki.woodpecker.org.cn/moin/PyNewStyleClass################分享下自己对python的metaclass的知识。一 你可以从这里获取什么?1. 也许你在阅读别人的代码的时候碰到过metaclass,那你可以参考这里的介绍。2. 或许你需要设计
2012-11-22 09:34:25 3738
转载 python面向对象-理清object与type的关系
一 Python中一切都是对象。 既然python所有的一切都是对象,那么从另一个角度去对待python中的面向对象---没有传统的类型,只有对象,类型也是对象。那么又怎么去判断哪个是类型哪个是实在的对象呢?python中有两类对象,一类就是type,一类就是实例对象,通过'class'语句来创建类型(type)对象(传统的定义一个类),通过'()'来创建普通的非类型对象
2012-11-22 09:15:28 736
转载 Python模块学习 ---- struct 数据格式转换
Python是一门非常简洁的语言,对于数据类型的表示,不像其他语言预定义了许多类型(如:在C#中,光整型就定义了8种),它只定义了六种基本类型:字符串,整数,浮点数,元组,列表,字典。通过这六种数据类型,我们可以完成大部分工作。但当Python需要通过网络与其他的平台进行交互的时候,必须考虑到将这些数据类型与其他平台或语言之间的类型进行互相转换问题。打个比方:C++写的客户端发送一个int型(4字
2012-11-21 19:59:13 583
转载 Python读写文件
目录(?)[+]1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object = open('thefile.txt')try: all_the_text = file_object.read( )finally: file_ob
2012-11-21 19:48:25 628
转载 Python读二进制文件遇到的问题
近日,需要用Python读取二进制文件(见上图),然后解析出想要的数据,转化成16进制,在显示出来 [python] view plaincopyfp = open(path,'r+') s= fp.read(ioneblock) while '' != s :
2012-11-21 09:59:37 1492
转载 ntsd生成dump文件
在Linux下,如果有内存访问异常等问题,可以生成core文件,协助开发人员定位问题所在。那么在Windows下,出现类似问题怎么办?其实Windows下也有类似的命令行工具——ntsd,可以用来生成dump文件,然后使用WinDbg进行分析。 ntsd的生成dump文件的方式为: ntsd -pv -p $PID -c ".dump /mf d:\aaa.d
2012-11-19 22:53:54 1453
转载 学会用core dump调试程序错误
最来在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core dump的知识。 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明者为王安),线圈就叫作core ,用线圈做的内存就叫作“core memory”。(线圈的单词应该是co
2012-11-19 22:37:20 847
转载 emacs编辑二进制文件
ALT+X hexl-mode 进入16进制模式选中你要修改的位置ALT+X hexl-insert-hex-char 插入16进制字符或者CTRL+ALT+X 命令然后输入16进制数回车比如输入40,就代表0x40.退出命令ALX+X hexl-mode-exit
2012-11-19 21:52:05 2992 1
黑客与画家 epub
2012-06-15
kscope-1.6.2
2012-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人