随笔分类 -  040.C/C++/VC

C语言实现“计算器”
摘要:支持 加减乘除 混合运算。具体设计见代码。 #include <assert.h> #include <stdio.h> /////////////////////////////////////////////////////////////////////////////// typedef c 阅读全文

posted @ 2017-04-28 22:19 Waaaaaall-E 阅读(1382) 评论(0) 推荐(0)

我用C++的理由——关于C和C++的选择
摘要:摘自:http://www.xue163.com/32/6/325715.html,作者:王可。整理的很好! 首先,我不会使用Java或C#,能力上不会,主观上也不会,因为两点原因:1,他们都属于解释型的语言,这有很多问题是我无法容忍的,程序的速度和封装的安全性;2,他们都不够底层,没有指针,却加载了内存管理器,对我来说这些都是麻烦和束缚,对我而言他们都不是足够自由的语言。或者说,我无... 阅读全文

posted @ 2014-12-04 23:18 Waaaaaall-E 阅读(5875) 评论(0) 推荐(0)

位域使用及class对齐记录
摘要:1、位域变量符号位也占1bit,所以取1bit时需留意是否是无符号类型2、位域变量不能取地址3、初始化时,位域变量按定义顺序初始化,否则会有告警4、static成员变量不在sizeof计算内5、空类的sizeof值为16、有virtual函数的class,包含指向虚函数表的指针,在64位系统上时占8... 阅读全文

posted @ 2014-10-12 23:53 Waaaaaall-E 阅读(400) 评论(0) 推荐(0)

VC问题锦集
摘要:1. mfcs100ud.lib(dllmodul.obj) error LNK2005 _DllMain@12 already defined in MSVCRTD.lib(dllmain.obj)参考自:1、http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/d86b96a2-a5c9-4bfc-98e1-61b55e50ecae/mfcs80udlibdllmodulobj-error-lnk2005-dllmain12-already-defined-in-msvcrtdlibdllmainobj?forum=vc. 阅读全文

posted @ 2014-02-19 15:24 Waaaaaall-E 阅读(331) 评论(0) 推荐(1)

优化vs2010运行速度
摘要:整理自网络优化vs2010运行速度Tools -> Options -> Environment -> General: 取消 Visual experienceTools -> Options -> Text Editor -> General: 取消 Track changesTools -> Options -> Text Editor -> C/C++ -> Advanced: Disable IntelliSense: False->True (导致没有提示)Tools -> Options -> Text 阅读全文

posted @ 2014-02-19 14:52 Waaaaaall-E 阅读(500) 评论(0) 推荐(0)

C/C++编程锦集
摘要:记录C/C++中易混淆生僻的编程语法1.inti=0xAA;i^=0x0F-0x0F;//相当于:i^=(0x0F-0x0F);,计算得:i=0xAA//若是(i^=0x0F)-0x0F;,计算得1502.longlongm=0x10000;intn=0x10000;//计算中间临时结果为8Byte,没溢出doubler1=m*n;//r1=0x100000000;longlongr2=m*n;//r2=0x100000000;sizeof(longlong)=8intm=0x10000;intn=0x10000;//计算中间临时结果默认为4Byte,导致溢出。doubler1=m*n;//r 阅读全文

posted @ 2013-11-30 12:09 Waaaaaall-E 阅读(185) 评论(0) 推荐(0)

流处理类:std::ostringstream, ostream, istream, iostream, fstream等
摘要:使用流处理进行字符串处理、文件的读写,比较方便,而且听说效率也不错(我还没有研究过stl源码)。 详细可查阅:http://www.cplusplus.com/reference/istream/istream/ std::ostringstream用法浅析转自:http://www.cnblogs.com/520zijuan/archive/2013/02/16/2913736.html,文章很清晰,看着都很舒服,直接转过来了。ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中。ostringstream类通常用于执行C风格的串流的输出操作,格... 阅读全文

posted @ 2013-11-24 19:07 Waaaaaall-E 阅读(4464) 评论(0) 推荐(0)

光盘刻录小结
摘要:光盘刻录示例程序:Burning CD/DVD Media with the Image Mastering API Version 2.0 (IMAPI2)(Prize winner in Competition "Best C++/MFC article of December 2007")Download From: http://www.codeproject.com/Articles/22538/Burning-CD-DVD-Media-with-the-Image-Mastering-API程序中有个小错误: 原:①image->put_FileSyste 阅读全文

posted @ 2013-11-20 10:49 Waaaaaall-E 阅读(1816) 评论(0) 推荐(0)

控制台程序的 定时器 和 消息循环
摘要:SetTimer实现定时器,需要Windows消息循环!!!#include#includevoidCALLBACKTimerProc(HWNDhwnd,UINTuMsg,UINTidEvent,DWORDdwTime){std::cout<<"hello"<<std::endl;}voidmain(){inttimerID=1;MSGmsg;SetTimer(NULL,timerID,1000,TimerProc);while((GetMessage(&msg,NULL,NULL,NULL)!=0)&&(GetMessage 阅读全文

posted @ 2013-11-13 16:31 Waaaaaall-E 阅读(692) 评论(0) 推荐(0)

修改菜单Menu、工具栏ToolBar、状态栏StatusBar的背景色
摘要:修改菜单Menu的背景色在头文件中声明:HBRUSH m_hMenuBrush;CMainFrame::OnCreate中添加: m_hMenuBrush = CreateSolidBrush(#c8c8c8); // 菜单颜色 ::MENUINFO lpcmi; memset(&lpcmi, 0, sizeof(::LPCMENUINFO)); lpcmi.cbSize = sizeof(MENUINFO); lpcmi.fMask = MIM_APPLYTOSUBMENUS | MIM_BACKGROUND; lpcmi.hbrBack... 阅读全文

posted @ 2013-11-10 16:17 Waaaaaall-E 阅读(2500) 评论(0) 推荐(0)

VC编程锦集-1
摘要:记录vc编程的知识点。由于vc知识点小而零碎,所以使用小锦集记录较合适。1. 设置对话框的颜色或背景:OnEraseBkgnd():适合修改对话框背景OnPaint():适合完成复杂的显示操作OnCtlColor():适合修改对话框上控件的颜色调用顺序:对话框初始化完毕,显示时调用OnSize()->OnEraseBkgnd()->OnPaint()->OnCtlColor()2. Windows窗口刷新机制:当窗口出现无效区域时,刷新显示无效区域。1)当窗口没有无效区域,即使收到WM_PAINT消息,程序也不作处理;2)当窗口有无效区域,收到WM_PAINT消息后,调用On 阅读全文

posted @ 2013-10-27 20:33 Waaaaaall-E 阅读(303) 评论(0) 推荐(0)

VC窗口关闭调用顺序
摘要:模态对话框:CMyDialog::OnClose() -> CDialog::OnCancel() -> CDialog::EndDialog(IDCANCEL)-> CDialog::DestroyWindow() -> CDialog::OnDestroy()CMyDialog::OnOK() ->CDialog::EndDialog(IDOK) -> CDialog::DestroyWindow() -> CDialog::OnDestroy()非模态对话框:重载自己的OnOK或OnCancel,由于在OnOK和OnCancel只是隐藏窗口,所以 阅读全文

posted @ 2013-10-23 17:04 Waaaaaall-E 阅读(426) 评论(0) 推荐(0)

Windows消息WM_USER、WM_APP的区别
摘要:以下三段描述准确到位,均摘自网络。描述1: You should use WM_USER when creating a set of messages for a custom control. You should use WM_APP when you are ... subclassing controls, or need to send messages to your app... 阅读全文

posted @ 2013-10-23 16:52 Waaaaaall-E 阅读(906) 评论(0) 推荐(0)

Toolbar添加控件;创建多行toolbar;重新排列toolbar
摘要:内容整理自网络,已验证可行。1.Toolbar添加控件如何在工具栏上添加平面下拉控件:http://www.vckbase.com/index.php/wv/285 效果图如下: 2.创建多行Toolbar// ToolBar多行多列显示:if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED) ||!m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2)){T... 阅读全文

posted @ 2013-10-08 18:56 Waaaaaall-E 阅读(849) 评论(0) 推荐(0)

wprintf 输出中文
摘要:// 使用wprintf输出中文时,需调用setlocale(LC_CTYPE, ""); 将输出字符集设置为本地字符集setlocale(LC_CTYPE, ""); // 设为本地字符集……setlocale(LC_CTYPE, "C"); // 恢复默认值PS:下列函数不需要调用setlocale: wsprintfW() // include swprintf() // include MultiByteToWideChar // include 阅读全文

posted @ 2013-08-21 15:38 Waaaaaall-E 阅读(450) 评论(0) 推荐(0)

bit数组
摘要:代码展示:#defineMAXSIZE100000#defineBASE32//win32下int是32bit#defineSHITF5//2^5=32#defineMASK0X1F//取末5位inta[MAXSIZE/BASE+1];//+1是为保险起见。若数组下标从0开始,可以不+1//i>>SHIFT:找到对应数组元素下标//1>SHIFT]|=1>SHIFT]&=~(1>SHIFT]&(1>SHIFT]&|=~(1<<(i&MASK));} 阅读全文

posted @ 2013-08-11 18:41 Waaaaaall-E 阅读(308) 评论(0) 推荐(0)

Vs2010 Atl工程手工添加连接点
摘要:背景: 新建Atl工程:atlTT 添加ATL Simple Object:SimpleEvent,不选择支持连接点 修改atlTT.idl,摘录如下,红色为手工添加的部分 library atlTTLib{importlib("stdole2.tlb");[uuid(F6223641-CD95-44CF-B121-9DA1CC416522)]dispinterface _ISimpleEventEvents{properties:methods:[id(1)] HRESULT OnAdd(LONG lValue);};[uuid(B7560BBD-7D1D-4082-8A 阅读全文

posted @ 2013-08-11 12:26 Waaaaaall-E 阅读(777) 评论(0) 推荐(0)

dll非模态窗口不响应按钮消息
摘要:整理自网络,但未验证。解决方法:1.dll导出一条函数 DllPreTranslateMessageBOOL PASCAL DllPreTranslateMessage(MSG *pMsg){AFX_MANAGE_STATE(AfxGetStaticModuleState());return theApp.PreTranslateMessage(pMsg);}2.在主程序的CWinApp的PreTranslateMessage中直接调用DLL的DllPreTranslateMessage函数。但记住要先调用DLL中的函数。BOOL CMyApp::PreTranslateMessage(MSG 阅读全文

posted @ 2013-08-05 16:03 Waaaaaall-E 阅读(562) 评论(0) 推荐(0)

VC中给控件添加ToolTip
摘要:Msdn中,About Tooltip Controls Describes how tooltip controls work and how you create them. http://msdn.microsoft.com/en-us/library/windows/desktop/bb760250(v=vs.85).aspx Using Tooltip Controls This section contains examples that demonstrate how to create different types of tooltips. http://msdn.... 阅读全文

posted @ 2013-07-30 15:37 Waaaaaall-E 阅读(609) 评论(0) 推荐(0)

在Dialog中添加工具条
摘要:步骤如下:在资源中添加Toolbar,如资源名称为IDR_TOOLBAR1,并添加若干个按钮定义类成员变量CToolBar m_wndToolBar;在对话框初始化函数OnInitDialog中添加if(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_TOOLBAR1)){TRACE0("创建工具条失败\n") 阅读全文

posted @ 2013-07-25 17:12 Waaaaaall-E 阅读(303) 评论(0) 推荐(0)

导航