VC++
文章平均质量分 73
TXH0001
这个作者很懒,什么都没留下…
展开
-
MFC ComboBoxEx对象中使用字符串类型隐藏值
1、插入数据TCHAR *pBuf = new TCHAR[MAX_PATH];memset(pBuf,_T('\0'),MAX_PATH * sizeof(TCHAR));_tcscpy(pBuf,自定义数值);COMBOBOXEXITEM item={0};item.mask = CBEIF_TEXT |CBEIF_LPARAM; //这里很重要,CBEIF_LPARAM不能缺少,否则lParam无法设置item.iItem = iIndex; //设置选项的下标item.p原创 2021-07-04 18:11:48 · 381 阅读 · 0 评论 -
多态与new和delete
在使用多态时,在new和delete时一定要保持原有对象类型,不能在new时就进行强制转换,否则会在析构时出现问题。其他时候可以使用如下面的例子:class CBase{public: CBase(){_tprintf(_T("class CBase \n"));} ~CBase(){_tprintf(_T("class CBase析构\n"));} virtu原创 2012-10-04 11:35:46 · 1170 阅读 · 0 评论 -
WINAPI宏、__cdecl、__stdcall、__fastcall
一直搞不懂为什么在函数前面加上WINAPI、CALLBACK等是什么意思 又不是返回值 为什么加在前面 今天终于知道了 这是一个呼叫声明(姑且称之吧)。引子:看看这个函数:int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmdLine, int sw){MSG msg;/* Call initiali转载 2012-10-10 16:01:33 · 1926 阅读 · 0 评论 -
set_se_translator 用法 + C++异常与windows异常
使用c++异常时,包含对象编译不过,百思不解。补一补关于异常的知识代码:void func( ){CString strTest; // 错误!结构化异常无法解析C++ 对象__try{...}__except(...){...}}编译信息:warning C4509: nonstandard extension used: 'func' use转载 2012-10-17 16:35:44 · 881 阅读 · 0 评论 -
VC6.0 配置 wxWidgets(跨平台界面控件库)
VS2008 中配置方法和 GTK、QT、SWT、SWING 一样,wxWidgets 也是一种开源跨平台的 GUI 框架。因 wxWidgets 和 MFC 有些渊源,有些亲近,故要体验一番 wxWidgets。现在最新版是 2.8.7。wxWidgets 程序还可运行于 Windows CE、Palm OS。不但包括 GUI,还有 Media、Socket、ODBC 等库。详情请见转载 2012-11-12 10:59:31 · 1990 阅读 · 0 评论 -
vs2010 调试快捷键
命令名 快捷键 说明 调试.应用代码更改Alt + F10启动生成操作,利用它可以通过“编辑并继续”功能应用对正在调试的代码所作的更改。调试.自动窗口Ctrl + D,Ctrl + A显示“自动”窗口,以查看在当前过程中,目前所执行中的变量的值。调试.全部中断转载 2012-11-26 09:47:33 · 1906 阅读 · 0 评论 -
wxWidgets编译问题一例
前两天帮同事编译一个调用wxwidgets做的项目,用到了它的图形功能,从网上查资料,编译wxwidgets库时都要求做以下设置C/C++ --> Code Generation --> Runtime Library 选 多线程调试(/MTd)在编译项目主程序时总是出现“无法解析的外部符号 wxGraphicContext”或者“无法解析的外部符号 wxGraphicPath”之类的东东原创 2012-12-26 15:12:16 · 916 阅读 · 0 评论 -
GetWindowRect、GetClientRect、ScreenToClient与ClientToScreen
GetWindowRect是取得窗口在屏幕坐标系下的RECT坐标(包括客户区和非客户区),这样可以得到窗口的大小和相对屏幕左上角(0,0)的位置。GetClientRect取得窗口客户区(不包括非客户区)在客户区坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置,因为这个矩阵是在客户区坐标系下(相对于窗口客户区的左上角)的。 用GetClientRect返回的RECT结转载 2013-01-15 15:27:56 · 899 阅读 · 0 评论 -
C++子类调用父类覆盖的函数
C++子类调用父类覆盖的函数 /* * main.cpp * C++子类调用父类覆盖的函数 */ #include class base { public: base(){} ~base(){} virtual void print() {printf("i'm base!\n");} };转载 2013-04-15 11:53:55 · 1621 阅读 · 0 评论 -
CMap详解
CMap详解(第一部分)如何声明CMap许多人对Cmap的声明模式CMap感到迷惑,为什么不用CMap呢?实际上,CMap中的的数据最终会是CPair,而CPair内部是(KEY,VALUE)。因此,CMap其实存储的是KEY,而非ARG_KEY。然而,如果你查看MFC的源代码,几乎CMap所有的内部参数传递都是访问ARG_KEY和ARG_VALUE,因此,使用KEY&来代替ARG转载 2011-12-11 18:55:36 · 11526 阅读 · 0 评论 -
插入块参照后,将块内对象坐标换算为其当前dwg中的坐标
//以下代码通过选择一个块参照,将块内的圆对象的坐标转换为该圆在当前dwg中的坐标并输出。相当于炸开块参照后再读取圆对象坐标的效果 ads_name ObjName; ads_point pnt; AcDbObjectId objId; if (RTNORM != acedEntSel(_T(""),ObjName,pnt)) { return; }原创 2013-08-19 10:35:15 · 4290 阅读 · 0 评论 -
std::map用法
std::map用法 STL是标准C++系统的一组模板类,使用STL模板类最大的好处就是在各种C++编译器上都通用。 在STL模板类中,用于线性数据存储管理的类主要有vector, list, map 等等。本文主要针对map对象,结合自己学习该对象的转载 2011-03-12 13:40:00 · 83986 阅读 · 5 评论 -
setPlotWindowArea函数使用问题的分析与解决
现象:使用AcDbDatabase readDwgFile dwg文件,然后使用setPlotWindowArea函数设置模型空间打印区域,保存退出。打开dwg后,预览发现设置的打印区域与实际需要的区域有偏移。 分析方法: 1、检查发现设置区域的min点和max点的x、y值均正确 2、执行图纸修复,无错误,问题依旧 3、调整setPlotWindow原创 2015-03-30 18:28:06 · 3674 阅读 · 2 评论 -
VS2010和VS2012在Microsoft.Cpp.Win32.user中设置VC++目录冲突的解决
网上常见的置VC目录的方法,例如http://blog.chinaunix.net/uid-21375345-id-2953297.html所提的,如果只用VS2010没有问题,但是在arx开发下,需要用到多个版本的VS。但是,这个方法修改的是“C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32原创 2016-05-25 17:12:20 · 5297 阅读 · 0 评论 -
使用MFC为何要调用CAcModuleResourceOverride/试图执行系统不支持的操作
知道使用MFC窗体前都要调用 CAcModuleResourceOverride myResources;但是原因一直不是很理解,直到今天调试一个之前已经做好的界面时,提示“试图执行系统不支持的操作”,上网一查说是DDX_Control中使用resource.h的对应的控件被删除或者ID重复导致,后检查resource.h发现还真有重复,一发狠用excel表格累加让每个值都不一样了,但是依旧提示“...原创 2017-09-03 20:36:15 · 1605 阅读 · 0 评论 -
VC中Release版本调试及单步跟踪方法
VC6:选中菜单Project->Settings-> 打开窗口,选择Settings For:为ReleaseD 在C/C++ -> Category-> General 中 -> Optimization-> Disable(Debug) -> Debug Info-> Program DataBase 在-> Link---> Generate Debug转载 2011-11-30 11:06:26 · 2013 阅读 · 0 评论 -
deelx执行replace方法后释放字符串例子
char * s1 = "https://www.google.com.hk/default.aspx";CRegexpT char> regexp("(google)");// new_str 字符串是替换过程中分配的内存 char * new_str = regexp.Replace(s1,"baidu"); printf("%s/n", new_str);// new_s转载 2012-05-25 17:35:51 · 1438 阅读 · 0 评论 -
VC中如何使窗口居中
在OnShowWindow函数中完成窗口居中。共三种方法:(1) CenterWindow( ); //Relative to it's parent(2) CenterWindow(CWnd:: GetDesktopWindow( )); // Relative to Screen(3) AfxGetMainWnd( ) -> Center Window( ); //Re转载 2012-06-12 09:48:32 · 4830 阅读 · 0 评论 -
VC++中,提示cannot add new member的解决方法
VC++中,提示cannot add new member的解决方法 当我们为对话框上的控件添加事情时,不知道大家没有像我一样在双击控件,为其添加响应函数时,出现cannot add new member这样的提示信息,我想,可能有朋友遇到过。只要出现这种情况,那么在该对话无论你转载 2011-07-23 20:34:49 · 1715 阅读 · 0 评论 -
printf格式控制(你所不知道的printf妙用)
(1)输出格式控制综述: printf的格式控制的完整格式:% - 0 m.n l或h ①%:格式说明的起始符号,不可缺少。 ②-: 有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。转载 2011-09-01 15:27:10 · 824 阅读 · 0 评论 -
VC简单调用MSXML
首先 安装msxml sdk 1、包含头文件#include #include #pragma comment(lib, "comsuppw.lib")2、例子代码CComPtr pDoc;HRESULT hr转载 2011-09-11 16:32:16 · 925 阅读 · 0 评论 -
VC中一个关于宏的使用问题 A2W W2A
这儿是个关于宏的问题,我曾用过ATL的串转换宏,包括W2A,开始有些东西我还不太明白。为了使用这些宏,必须在函数的开始处用USES_CONVERSION来初始化某些局部变量。用就用吧,但是看看这个宏的定义,它有类似下面的代码: // 在atlconv.h文件中#def转载 2011-10-07 16:13:58 · 6984 阅读 · 0 评论 -
memset函数详细说明
1。void *memset(void *s,int c,size_t n)总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c。2。例子#includevoid main(){char *s="Golden Global View";clrscr();memset(s,'G',6);printf("%s",s);getchar()转载 2011-11-17 12:32:03 · 744 阅读 · 0 评论 -
debug与release的区别
一、Debug和Release编译方式的本质区别 Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug和Release的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd转载 2011-11-30 11:09:37 · 1693 阅读 · 0 评论 -
VC程序在非MFC中使用CString
CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen,strcpy,strstr等等,本文讨论的是在非mfc程序中使用CString类的方法,算是个引子,如果有更好的实现方法,欢迎大家讨论。 为了使用CString类,首先源文件必须是以cpp结尾转载 2012-02-03 17:28:42 · 720 阅读 · 0 评论 -
关于GetActiveObject失败的灵异现象的解决
最近做一个WORD AUTOMATION的程序,封装成DLL来实现WORD的自动化。开始进行的很顺利,在中文系统下没有任何问题,可是当拿到俄文系统时,问题出现了。而且出现得很是灵异。现象是,当把程序做成EXE时,没有任何问题,封装成DLL时,GetActiveObject就取不到活动的WORD文档了。反复测试发现了非常非常灵异的情况,就是当打开两个以上的文档时,GetActiveObject就可用转载 2012-02-04 14:28:22 · 5629 阅读 · 2 评论 -
vc6.0编译c++程序后在vc2008中调试的技巧(符号信息和链接)
遇到的问题:公司有个项目的源码是要vc6.0来编译的,我试过用vc2008来编译也是可以的,但编译出来dll文件拿去运行的时候是有异常的,因为加载的exe是第三方的,好像没有源代码,出了错显示也是在exe里面不好跟进去。同事告诉我他们都是用vc6.0来编译dll,然后拿去用就没问题。可能第三方的很多exe和dll都是用vc6.0来编译的,vc2008有些运行库有点变化不兼容了,没有ex转载 2012-02-10 10:49:50 · 5169 阅读 · 0 评论 -
mfc宽字节widechar与多字节multiChar相互转换
string WideCharToMultiChar( wstring in_str){string return_str;int len=WideCharToMultiByte(CP_ACP,0,in_str.c_str(),in_str.size(),NULL,0,NULL,NULL);char* buffer=new char[len+1];WideCharToMulti转载 2012-02-27 09:31:20 · 1747 阅读 · 0 评论 -
visual C++中最常用的类与API函数
这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处。 常用类CArchive类:用于二进制保存档案 CBitmap类:封装Windows的图形设备接口(GDI)位图 CBrush类:封装图形设备接口(GDI)中的画刷 CButton类:提供Windows按钮控件的功能 CB转载 2012-03-16 14:47:47 · 1069 阅读 · 0 评论 -
汇编指令语言速查
数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次转载 2012-03-21 15:06:12 · 709 阅读 · 0 评论 -
Help! I Have a Memory Leak
Recently i had a project which had some of the worst memory leaks in C++ i’ve ever had to deal with. It had just about every memory leak problem you could think of, all of which could have been solved转载 2012-03-12 16:34:46 · 706 阅读 · 0 评论 -
c++快速排序实例
//////////////////////////////快速排序与查找////////////////////////////////////////////int compare( char **arg1, char **arg2 ){ /* Compare all of both strings: */ return _strcmpi( *arg1, *arg2 );}转载 2012-05-11 15:43:19 · 664 阅读 · 0 评论 -
VC技巧大全
VC Studio 使用技巧大全没办法呀!,我网上东抓一条西抓一条,看起来真累,所以今天进行整理出来与大家分享! 黄森堂(vcmfc).1.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号2.查看一个宏(或变量、函数)的宏定义把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE转载 2012-05-19 21:48:32 · 741 阅读 · 0 评论 -
VC++简单工厂模式
<br />//接口类<br />interface IMyInterface{<br />public: <br /> int m_value;<br /> virtual void Run()=0;<br />};<br /><br />//实现类1<br />class ImplClass1 : public IMyInterface{ //注意这里,必须要public类型继承,否则会出错!!!<br />public: <br /> <br /> void Run(){<br />原创 2011-03-11 18:24:00 · 1706 阅读 · 0 评论