
c/c++/vc
文章平均质量分 68
zxq80
这个作者很懒,什么都没留下…
展开
-
VC 常见问题百问
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHA转载 2008-11-26 17:54:00 · 592 阅读 · 0 评论 -
调试函数OutputDebugString 支持变参
void MyOutputDebugString( LPCSTR pszFormat, ...){ va_list argp; char pszBuf[ 256]; va_start(argp, pszFormat); vsprintf( pszBuf, pszFormat, argp); va_end(argp); OutputDe原创 2012-02-08 11:27:08 · 1065 阅读 · 0 评论 -
调试代码的宏定义
在程序调试时,我们经常需要输出一些调试信息,当调试完毕后,就不再需要使用了。那怎么快速的在调试状态和发布状态切换呢?通常我们使用预编译加宏定义来处理这个问题,例如:#ifdef DEBUG调试代码#endif如果我们使用printf来显示一些调试信息,那么每个地方都加上#ifdef和#endif就很麻烦了。我们可以定义一个DbgPrintf的函数来专门处理这些事情,只在DbgPri转载 2011-12-31 10:38:56 · 3297 阅读 · 0 评论 -
Source Insight 快捷键
退出程序 : Alt+F4重画屏幕 : Ctrl+Alt+Space完成语法 : Ctrl+E复制一行原创 2011-12-16 11:09:24 · 597 阅读 · 0 评论 -
GBK UTF8 ANSI UNICODE 互转
1、将GBK转换成UTF8string GBKToUTF8(const std::string& strGBK){ string strOutUTF8 = ""; WCHAR * str1; int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0); str1原创 2011-12-07 11:29:27 · 2866 阅读 · 0 评论 -
VC UNICODE CString 转double int
在UNICODE环境中的转换1.CString to intm_iDay = _ttoi(strTmp);1.CString to doublem_dFlowUp = _tcstod(strTmp,0);原创 2011-12-06 10:36:30 · 4740 阅读 · 0 评论 -
vc分割字符串的函数
void Split(CString content, CString pattern, CAtlArray& strlist){ int iPos = content.Find(pattern), iStart = 0; while (iPos != -1)原创 2011-07-12 16:31:08 · 833 阅读 · 0 评论 -
c/c++ vc产生任意范围内的随机数
大家都知道C语言中的随机函数random,可是random函数并不是ANSI C标准,所以说,random函数不能在gcc,vc等编译器下编译通过。那么怎么实现VC语言中的随机函数呢?其实,除了random函数,还有一个rand函数,这个函数也是一个随机函数,原创 2011-07-05 17:00:43 · 2097 阅读 · 1 评论 -
堆和栈的区别
<br />堆和栈的区别<br />一、预备知识—程序的内存分配 <br />一个由C/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其<br />操作方式类似于数据结构中的栈。<br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回<br />收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—,全局变量和原创 2010-08-12 17:05:00 · 408 阅读 · 0 评论 -
C语言指针的加减
<br /> int a[5] = {1,2,3,4,5};<br /> int *ptr = (int *) (&a + 1);<br /> TRACE(_T("%d, %d,%d/n"), *(a+1),*(ptr-1), ptr[-1]);<br />结果:<br />2,5,5原创 2010-08-02 10:37:00 · 550 阅读 · 0 评论 -
大小端模式
<br /> 所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; <br /> 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。 <br /> 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是原创 2010-08-02 10:30:00 · 397 阅读 · 0 评论 -
两个变量不用中间变量交换值的方法
<br />void FunA() <br />{ <br /> int x = 100; <br /> int y = 200; <br /> x = x+y; <br /> y = x-y; <br /> x = x-y; <br /> cout<<"x="<<x<<" y="<<y<<endl; <br />} <br /> <br />void FunB() <br />{ <br /> int x = 100;原创 2010-08-04 13:15:00 · 700 阅读 · 0 评论 -
strcpy,strcat,strcmp,strstr 实现函数
char* strcpy(char * dst, const char * src) { char * cp = dst; while( *cp++ = *src++ ) ; /* Copy src over dst */ return( dst ); } char* strcat ( char * dst , const char * src ) { char * cp =原创 2010-08-04 13:12:00 · 762 阅读 · 0 评论 -
自己写的日志函数
<br />void WriteLog(LPCTSTR strLog)<br />{<br /> SYSTEMTIME sysTime;<br /> ::GetLocalTime(&sysTime);<br /> ofstream OutputFile;<br /> OutputFile.open( "C://Log.txt" ,ios::app);<br /> OutputFile<<sysTime.wYear<<"-" /<br /> <<sysTime.wMonth<<"-"原创 2010-07-30 10:54:00 · 664 阅读 · 0 评论 -
vc命令行参数处理
<br />CString CommandLine = GetCommandLine();<br /> for(i=0;i<CommandLine.GetLength();i++)<br /> {<br /> if(CommandLine[i]=='-')<br /> {<br /> //处理后面的字符<br /> }<br /> }<br /> <br /> <br />其他用法<br />int ParamCount()<br />{<br /> CString CommandLine原创 2010-07-27 08:27:00 · 2287 阅读 · 0 评论 -
目前比较流行的缺陷跟踪系统简介
对于项目管理,缺陷跟踪是很重要的一个环节,它除了可以对需求的完成度进行控制,同时也可以对软件本身的质量进行控制,以保证软件开发迭代的顺利进行。原 来的软件项目开发中的缺陷跟踪都是通过EXCEL表格的形式来完成的,这种表格虽然也可以进行项目管理和项目执行度的交互,但效率与实时性不高,同时也不 好维护和统计,因此就出现了缺陷跟踪系统,通过软件技术来解决软件项目的管理问题。 目前缺陷跟踪系统还是原创 2009-03-18 16:02:00 · 1009 阅读 · 0 评论 -
VC/MFC Q&A
Q 如何处理ComboBox中的回车键?避免退出程序?A 在一般的EDIT中采用的方法是处理PretranlateMessage(),执行代码CWnd *pWnd = GetFocus();if(pWnd != NULL){ if(pWnd == GetDlgItem(IDC_EDIT1) { ...//IDC_EDIT1具有焦点 }} 但在ComboBox中好象不同,是ComboB转载 2008-11-26 17:36:00 · 737 阅读 · 0 评论 -
vc响应最大化最小化按钮的事件或消息
方法一。在OnSize消息事件中处理 最小化 SIZE_MINIMIZED,最大化 SIZE_MAXIMIZED,还原 SIZE_RESTORED,例如:void CMainDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: Add your message hand原创 2008-11-26 14:12:00 · 8618 阅读 · 0 评论 -
代码审查
代码审查在软件开发中是老生常谈的话题。很多人都认为代码审查的花销大而且又耗时,特别是当大家忙完软件项目又把它送去软件测试部门时,对一些开发人员来说,它更会引发更多的办公室政治和流言蜚语。一次代码审查可能会使代码逐渐得到改进,如果你认为从有效的代码审查中只是稍微改进了一下软件那就错了。开发人员若得知他们的代码会被评估会更加努力工作。因此,代码审查有利于导师制度,程序员们会学到更多,代码审查还转载 2012-11-09 15:51:31 · 938 阅读 · 0 评论