Visual C++
文章平均质量分 66
eulb
这个作者很懒,什么都没留下…
展开
-
ShellExecute隐式调用批处理并等待返回
SHELLEXECUTEINFO ShExecInfo = {0};ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;ShExecInfo.hwnd = NULL;ShExecInfo.lpVerb = NULL;ShExecInfo.lpFile = "E://My Do原创 2007-04-29 12:47:00 · 8562 阅读 · 0 评论 -
C++字符串完全指引一
原文出处:CodeProject:The Complete Guide to C++ Strings, Part I2005089632引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各转载 2008-05-19 15:32:00 · 1140 阅读 · 0 评论 -
跨进程传递字符串(数据)的一点心得
想用发送自定义消息的方式跨进程传递字符串,尝试过并失败的方法有:1, new一个CString2, TCHAR 数组3, API GlobalAlloc()皆因为分配的内存都在发送方进程的heap内这里使用GlobalAlloc()也失败的原因是,在win32内,该函数与LocalAlloc()已没有分别,但好像如果不使用GMEM_FIXED参数,而是GMEM_MOVEABLE原创 2008-05-26 16:13:00 · 3504 阅读 · 4 评论 -
逻辑坐标和设备坐标的区别
备忘fromhttp://www.lzu.edu.cn/netteach/jiaochen/vc++5.0/vc++5.0/chap7/chap7_3.htm在Windows中,文档坐标系称作逻辑坐标系,视图坐标系称为设备坐标系。它们之间的关系如下图所示:图7-11文档坐标和视图坐标 在视图滚动后,如果用户在视图中单击鼠标,那么会得到鼠标位置的设备(视图)坐标。在使用这个数据处转载 2008-06-06 13:44:00 · 1589 阅读 · 1 评论 -
提高GDI+绘制效率的一些方法
GDI+因为其较好的代码封装使得程序员代码的编写更高效,但随之而来的是对其绘图效率低下的诟病,究竟它的绘图效率是不是低下我不好说(个人觉得就算低下其程度也十分有限,据说Visio就是用GDI+写的),但下面一些编程中的trick相信能较大程度上提高GDI+的绘图效率1,Graphics.SetSmoothingMode(SmoothingModeHighSpeed); //高速、低画质原创 2008-06-17 21:07:00 · 5123 阅读 · 0 评论 -
隐藏任务栏最大化程序窗口中碰到的一些问题及应对方法
在最大化程序窗口时可能会碰到这样的问题:有时最大化窗口后会遮挡任务栏,而有时当你想全屏显示隐藏任务栏,那任务栏区域却死活无法被占用,哪怕任务栏已被隐藏经过一轮google,终于找到了解决方法,该方法源自某位网页的答复,转载如下://------------------------------------------ from pomelowu(羽战士)回复于 2005-05-08 15原创 2008-06-19 16:35:00 · 3934 阅读 · 0 评论 -
用Windbg分析程序意外崩溃
可以针对Release版本程序的以为崩溃进行源代码级的定位:Usage of Error LocaterStep 1: Add following file to your projectCrashFileNames.hdbghelp.hExceptionHandler.hFunctionStackTrace.hGetWinVer.hMiniVersion.h原创 2008-06-20 14:38:00 · 2424 阅读 · 0 评论 -
仅通过崩溃地址找出源代码的出错行
标 题:仅通过崩溃地址找出源代码的出错行 (11千字)发信人:老罗时 间:2003-2-7 14:01:56详细信息:作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃! “该程序执行了非法操作,即将关闭。请与你的软件供应商联系。”,呵呵,这句 M$ 的“名言”,恐怕就是程序员最担心见转载 2008-06-21 22:09:00 · 1067 阅读 · 0 评论 -
备忘:用Visual C++编写DLL
VC支持三种DLL,它们是(转自http://dev.csdn.net/Develop/article/19/19966.shtm): 1.Non-MFC Dlls 指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用 2.Regular Dlls Regular DLL:和下述的Extension Dll转载 2008-06-20 21:43:00 · 2321 阅读 · 0 评论 -
用VC写DLL中"error LNK2005: _DllMain@12 already defined"的应对
用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面,把WIN32,NDEBUG转载 2008-06-24 09:42:00 · 10674 阅读 · 11 评论 -
the format control string
The format-control string contains format specifications that determine the output format for the arguments following the lpFmt parameter. Format specifications, discussed below, always begin with a p转载 2008-06-27 14:36:00 · 1569 阅读 · 1 评论 -
C++字符串完全指引二
http://www.w3sky.com/2/2618.html转载 2008-05-19 15:39:00 · 1003 阅读 · 0 评论 -
VC中char,wchar_t,TCHAR及相应字符串处理函数辨析(附常用数据类型转换)
1, VC中char,wchar_t,TCHAR(fromhttp://blog.csdn.net/yanonsoftware/archive/2005/12/05/544428.aspx)wchar_t是Unicode字符的数据类型,它实际定义在里: typedef unsigned short wchar_t;不能使用类似strcpy这样的ANSI C字符串函数来处转载 2008-05-16 10:15:00 · 2938 阅读 · 0 评论 -
常用数据类型使用转换详解
(作者:程佩君, from http://www.vckbase.com/study/article/data_convert.htm)int i = 100;long l = 2001;float f=300.2;double d=12345.119;char username[]="程佩君";char temp[200];char *buf;CString str;_variant_t v转载 2008-05-16 10:19:00 · 568 阅读 · 0 评论 -
CString的几个字符串处理函数的index问题
CString Mid( int nFirst ) const;throw( CMemoryException );CString Mid( int nFirst, int nCount ) const;throw( CMemoryException );Return ValueA CString object that contains a copy of the specified原创 2007-05-02 14:14:00 · 3241 阅读 · 0 评论 -
控件Radio Button的常用用法
先为对话框加上2个radio button,分别是Radio1和Radio2。问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了?关键是选上,“默认”只要放在OnInitDialog()即可。三种方法可以让它选上,第一种:((CButton *)GetDlgItem(IDC_RADIO1))->SetCheck(TRUE);//选上((CButton *)GetDlgIt转载 2007-05-14 20:02:00 · 1940 阅读 · 0 评论 -
修改已经打开的对话框的浏览路径
CWnd * pWnd = FindWindow(NULL,"另存为");CString sCtrlName;CWnd *pedit;CString filename;TCHAR BUF[512];if(pWnd){ CWnd *pwnd=pWnd->GetWindow(GW_CHILD);//枚举保存对话框的所有子控件 char *buf=new char[512];转载 2007-08-15 21:34:00 · 690 阅读 · 0 评论 -
解析#pragma指令
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。其格式一般为: #Pragma Para其中Para 为参数,下面来看一些常用的参数。转载 2008-02-02 15:12:00 · 775 阅读 · 0 评论 -
MFC多线程同步方法
MFC提供了多种同步对象,下面我们只介绍最常用的四种: 临界区(CCriticalSection) 事件(CEvent) 互斥量(CMutex) 信号量(CSemaphore)A、使用 CCriticalSection 类 当多个线程访问一个独占性共享资源时,可以使用“临界区”对象。任一时刻只有一个线程可以拥有临界区对象,拥有临界区转载 2008-02-04 11:40:00 · 7734 阅读 · 0 评论 -
在CFormView或对话框中动态添加CScrollView、CFormView
本代码可以在CFormView中,根据事先画好的控件位置创建CScrollView也可以在CDialog中创建CScrollView、CFormView等注:若以下代码放在CMainRightView::OnCreate(LPCREATESTRUCT lpCreateStruct)内,则GetDlgItem()函数将调用失败,因为此时控件都还未被创建!void CMainRi原创 2008-03-06 14:28:00 · 4074 阅读 · 0 评论 -
VC进程间通信之消息传递
source: const UINT WM_MYMESSAGE = WM_USER + 1; CWnd *pWnd=CWnd::FindWindow(NULL,"GMS Version 1.1");//目标进程的窗口的captain if(pWnd) ...{ pWnd->SendMessage(WM_MYMESSAGE, NULL,原创 2008-03-10 10:46:00 · 3983 阅读 · 0 评论 -
等待函数(wait function)的一点释疑
MSDN:A thread gets ownership of a mutex by specifying a handle to the mutex in one of the wait functions(WaitForSingleObject, etc.)While a thread has ownership of a mutex, it can specify the same转载 2008-03-12 16:47:00 · 1357 阅读 · 0 评论 -
VC中使窗体无法被移动(move)和放大缩小(resize)的方法
只须拦截WM_WINDOWPOSCHANGING消息,并对其做如下修改即可 void CMainFrame::OnWindowPosChanging(WINDOWPOS* lpwndpos){ lpwndpos->flags |= SWP_NOMOVE | SWP_NOSIZE; CFrameWnd::OnWindowPosChanging(lpwndpos);}原创 2008-03-25 16:09:00 · 2092 阅读 · 0 评论 -
CPaintDC及其与BeginUpdate、EndUpdate的前因后果
我们知道,CPaintDC类在其ctor和dtor中调用了BeginUpdate()和EndUpdate(),因此它也只能用在WM_PAINT的消息响应函数中,那为什么会这样呢?这样就要牵涉到BeginUpdate()和EndUpdate()做了那些事 MSDN上说到:The BeginPaint function automatically sets the clipping regio原创 2008-07-08 13:32:00 · 1020 阅读 · 0 评论 -
VC中导出能被excel正确识别的UNICODE格式文本
在VC中导出文本,特别是含有中文字符的文本,常会碰到用excel打开为乱码,而用记事本打开则正常的状况,经研究,用下述方法可以解决该问题关键方法:1, 使用MultiByteToWideChar() API2, 用CFile写入文件而非CStdioFile3, 写入0xFF,0xFE至文件头部,以告知excel等外部编辑器打开的文本是unicode编码4, CFile::Wri原创 2008-07-11 12:34:00 · 2160 阅读 · 0 评论 -
SAFEARRAY的使用
以下就是SAFEARRAY的Win32定义: typedef struct tagSAFEARRAY { unsigned short cDims; unsigned short fFeatures; unsigned long cbElements; unsigned long cLocks; void * pvData; SAFEARRAYBOUND转载 2009-03-03 12:44:00 · 4600 阅读 · 2 评论