vc编程
gll028
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言中几种类型所占字节数
参考 最近经常会遇到C语言中各类型变量所占字节数的问题,索性在这里做一个整理总结。 其实C标准并没有具体给出规定哪个基本类型应该是多少个字节数,而且这个也与OS、编译器有关,比如同样是在32位操作系统,VC++的编译器下int类型为4个字节,而在tuborC下则是2个字节。 下面给出一个表格,方便查看个类型的字节数:类型 16位 32 位 64位char 1 ...转载 2018-05-30 19:49:11 · 1115 阅读 · 0 评论 -
string转化为char的几种方法
string a="hello world";const char* ch=a.c_str();1. string s="aaaaaaaaa";char *p=new char[s.size()+1];strcpy(p,s.c_str());2.string str = "abcdefg";char sz[20];for (int i = 0; i < st原创 2013-11-29 16:40:50 · 1514 阅读 · 0 评论 -
三种字符串分割方法(C/C++)
转载自:点击打开链接在C, C++程序开发过程中,经常碰到字符串分割的问题,参考互联网上其他朋友的实现, 这里总结下,也方便自己和他人以后使用。一、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符转载 2013-11-29 16:41:56 · 3515 阅读 · 0 评论 -
VC 6.0 中classView出问题
用VC 6.0 时,突然出现ClassView视图无法打开,一打开就vc6.0死机。然后头文件也无法修改和保存,只要修改后,点击保存或编译就会导致vc6.0无法响应。过了几个月,对于这个问题百思不得其解,总以为是vc6.0安装的不好。今天用另一台电脑打开项目时,出现对话框提示:“cannot access the ClassView information file, ClassV原创 2013-09-12 22:54:14 · 1204 阅读 · 0 评论 -
vc6.0 一编译就程序无法响应
最近在用vc6.0时,一点击编译就程序无法响应,只有强制关闭vc6.0再重新打开才可以解决。时好时坏。查资料发现,原来是要装vc6.0的sp6补丁。附:vc6.0 sp6的下载地址英文版:vc6.0 sp6 英文版下载地址中文版:vc6.0 sp6 中文版下载地址安装路径:C:\Program Files\Microsoft Visual Studio\VC原创 2013-07-16 13:05:45 · 1382 阅读 · 0 评论 -
MFC:Tab Control 控件的使用
1.先建立一个对话框MFC应用程序,然后在工具箱里面把Tab Control控件放到对话框中的合适位置上。再在对话框类中,声明一个CTabCtrl变量:CTabCtrl m_tab;变量m_tab用来与对话框中的Tab Control控件交互,为此要在DoDataExchange函数中加入DDX_Control语句:DDX_Control(pDX, IDC_TAB1转载 2013-06-03 16:04:51 · 787 阅读 · 1 评论 -
please enter the path for mfcs42d.pdb 提示解决方法
来源: 点击打开链接在VC开发中,可能遇到在Debug的时候遇到弹出“please enter the path for mfcs42.pdb”对话框,当然你可以选择取消跳过,但是带来的结果是你在Debug过程中Watch除了内建基本型别的变量外,不能获取其他类型变量的运行时期信息(如字符串、函数等),这其实也就很大程度上失去了Debug的意义了。这时候,如果你手动指定选择指定转载 2013-04-18 13:25:28 · 940 阅读 · 0 评论 -
c语言如何中止线程
终止线程有三种方法:1.线程可以在自身内部调用AfxEndThread()来终止自身的运行2.可以在线程的外部调用BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode )来强行终止一个线程的运行,然后调用CloseHandle()函数释放线程所占用的堆栈3.第三种方法是改变全局变量,使线程的执行函数返回,则该线程终止。unsign转载 2013-04-14 09:32:30 · 4156 阅读 · 0 评论 -
MFC中获取父窗口指针 从而调用其函数及变量
假设父窗口类名为CParentDlg,要在子窗口中调用父窗口的函数为pFunction,要调用父窗口中的变量为pVari。则代码实现是:CParentDlg *pDlg = (CParentDlg*)GetParent()->GetParent(); pDlg->pFunction();pDlg->pVari;用GetParent()获取父窗口指针。第一个GetPare原创 2013-04-14 09:26:20 · 5216 阅读 · 1 评论 -
MFC 判断线程是否结束
函数: GetExitCodeThread()功能: 获取一个结束线程的返回值函数原形: BOOL GetExitCodeThread( HANDLE hThread, LPDWORD lpExitCode);参数: hThread 指向欲获取返回值的线程对象的句柄 lpExitCode 用于存储线程的返回值,若为STILL_ACTIVE原创 2013-04-14 11:32:18 · 7525 阅读 · 0 评论 -
数据量极大时用什么排序方法比较好
参考:点击打开链接 点击打开链接 点击打开链接最近有一个88047579个double型数据的排序,采用的快速排序,但总是时不时的出问题:Unhandled exception in XX.exe: 0xc00000FD; Stack Overflow以及Unhandled exception in XX.exe: 0x原创 2013-04-13 17:52:08 · 5947 阅读 · 0 评论 -
c++ 的string的格式化方法
1. string strResult,str; double a=35.000,b=14.967; std::ostringstream ostr; ostr " ; std::string str = ostr.str(); strResult += str;但是这个方法中,a和b都默认显示为整数。原创 2013-12-01 14:04:37 · 56160 阅读 · 0 评论 -
CString 和 string 的相互转换
CString->std::string 例子:CString strMfc=“test“;std::string strStl;strStl=strMfc.GetBuffer(0);std::string->CString 例子:CString strMfc;std::string strStl=“test“;strMfc=strStl.c_原创 2014-05-09 17:36:08 · 547 阅读 · 0 评论 -
浮点数在计算机中的存储方式
referenceC语言和 C#语言中,对于浮点型的数据采用单精度类型(float)和双精度类型(double)来存储: float 数据占用 32bit; double 数据占用 64bit; 我们在声明一个变量 float f = 2.25f 的时候,是如何分配内存的呢? 其实不论是 float 类型还是 double 类型,在存储方式上都是遵从IEEE的规范: float 遵从的是...转载 2018-05-30 19:48:40 · 550 阅读 · 0 评论 -
读ini文件“GetPrivateProfile*”: error C2664:cannot convert parameter 1 from 'const char [12]' to 'LPCWS
读ini文件——“GetPrivateProfileIntW”: 不能将参数 1 从“const char [9]用GetPrivateProfileInt读取ini配置文件:std::string iniPath;test = GetPrivateProfileInt("Performance", "Type", 0, iniPath.c_str());总是出错:error C2664: 'G...原创 2018-03-23 19:18:22 · 1431 阅读 · 0 评论 -
vc++ 链接错误 error LNK2019: unresolved external symbol 检查步骤
背景说明:此次用了别人给的一个C++算法源代码,源代码是通过动态链接库实现的,假设库的名字叫做algorithm。我想写个控制台程序,直接将源代码放在我程序里面调用。当所有编译错误解决后,出现了很多链接错误。比如这样的:process.obj : error LNK2019: unresolved external symbol "void __cdecl matrixAdd(double *,d...原创 2018-03-12 11:30:11 · 3460 阅读 · 0 评论 -
Char型和string型字符串比较整理
1.赋值char赋值: char ch1[] = "give me"; char ch2[] = "a cup"; strcpy(ch1,ch2); cout输出结果:ch1=a cupstring赋值: string str1 = "give me"; string str2 = "a cup"; ①str1 = str2; co转载 2017-11-26 10:26:28 · 3559 阅读 · 0 评论 -
char*,const char*和string的相互转换
1. string转const char* string s = "abc"; const char* c_s =s.c_str();2. const char*转string 直接赋值即可 const char* c_s ="abc"; string s(c_s);3. string转char* string s = "abc";转载 2017-11-26 10:25:27 · 276 阅读 · 0 评论 -
根据文件路径获得其所在文件夹,并删除该文件夹下后缀名为.tmp的所有文件
CString strDirectory;//项目文件所在目录char cDataPath[MAX_PATH];//文件路径strDirectory=cDataPath;//将字符数组赋值过去int k=strDirectory.ReverseFind('\\');//从后面查找\字符strDirectory=strDirectory.Left(strDirectory.GetLength原创 2013-06-22 09:30:16 · 1559 阅读 · 0 评论 -
C语言结构体对齐与不对齐设置总结
参考:相信不同的编译平台间的默认设置差异给大家带来了很多困扰。在此,仅就结构体对齐解析下之间的差异设置方法。1.gcc中结构体默认是4个字节对齐,即为32的倍数。1.1修改字节对齐:struct data{int a;char b;char c;}__attribute__((aligned(8))) data;或#pragma pa转载 2014-10-08 17:33:06 · 15098 阅读 · 0 评论 -
在VC++中读写INI文件
来源:点击打开链接在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPC转载 2014-06-20 12:55:13 · 546 阅读 · 0 评论 -
为什么fgets()会读取文件最后一行两次?
参考:点击打开链接为什么fgets()会读取文件最后一行两次? 2012-09-05 03:39:49| 分类: C++|举报|字号 订阅为什么fgets()会读取文件最后一行两次?我们在读取文件时,书中经常提到的逻辑是这样的,但这是错误的!while(!feof(Fp)){fgets(readLine,10000转载 2014-05-13 16:43:36 · 3023 阅读 · 1 评论 -
VC++常规错误之21:Debug Assertion Failed!在winocc.cpp第307或329行错误
reference:断言错误,如图所示找到代码(这个是VS2010版本的,各个版本会有所不同,可能不是在第329行,但是都是这个意思),如下BOOL CWnd::ShowWindow(int nCmdShow){ ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));//这个就是VS201转载 2014-04-12 11:04:48 · 2032 阅读 · 0 评论 -
程序调试技术 - 解决Stack Overflow
来源:点击打开链接前言程序员最痛苦的事莫过于深陷于BUG的泥潭,我也没少在这上面摔跤。这里,我把自己的一些经验教训总结出来,涉及的内容包括死循环、死锁、内存泄漏以及内存访问错误等,如果能对朋友们有所帮助,那就再好不过了。不过,我不打算按照循序渐进的方式来撰写这些文章 ,而是想到哪写到哪,也许到最后才会形成一个完整的系列。本节将以一个真实例子讲述如何在VC6环境下调试“S转载 2013-04-13 17:11:50 · 882 阅读 · 0 评论 -
错误提示: Debug Assertion Failed! Program:... File:fclose.c Expression: (stream!=NULL)
近段时间用VC编程序,代码运行正确,但总是到最后的时候弹出如下错误提示:Debug Assertion Failed!Program:...File:fclose.cExpression: (stream!=NULL)上网查了很多资料,尝试了一个星期,最后加断点,才定位到错误的位置。如错误提示所说:是因为关闭文件指针(fclose(f))时,f==n原创 2013-04-13 10:04:06 · 8656 阅读 · 2 评论 -
MFC对话框程序屏蔽ESC和ENTER键退出
有时候,在用MFC编程时,要把OK按钮和Cancel按钮去掉。但删除后还能响应Enter键和ESC键动作使窗口关闭从而退出程序。那么怎么屏蔽ESC和ENTER键退出呢?下面是拷贝的部分代码,我也不知是不是要改动这部分,望赐教,谢谢!!一种方法:重载对话框的PreTranslateMessage函数屏蔽调消息CxxDlg::PreTranslateMessage(MSG* pMs原创 2013-04-13 11:32:12 · 1532 阅读 · 0 评论 -
MFC CheckBox的使用
1.获得checkBox的状态。(1)利用函数IsDlgButtonChecked 函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。函数原型:UINT IsDlgButtonChecked(HWND hDlg,Int nlDBUtton);例如:int index=IsDlgButtonChecked(IDC_CheckBox原创 2013-01-29 14:48:31 · 2015 阅读 · 0 评论 -
error C2065: : undeclared identifier 解决方法
error C2065: 'IDD_VIDEONETDLG' : undeclared identifier 开发平台:VC++6.0出现错误:error C2065: 'IDD_VIDEONETDLG' : undeclared identifier,IDD_VIDEONETDLG为对话框ID号错误原因:没有包含resource.h头文件解决办法:在该源文件的顶部添加:#i转载 2013-01-15 00:36:14 · 40826 阅读 · 2 评论 -
WS_BORDER以及WS_EX_CLIENTEDGE的研究
转载自:http://blog.youkuaiyun.com/oldmtn/article/details/7200996每次研究一点东西,都没有记录,下次需要的时候又浪费时间重新去研究。本人就是个没有总结习惯的人,这样等于没用积累,实在不行。这2天研究了一下WS_BORDER和WX_EX_CLIENTEDGE的不同,以及在动态创建,和窗口绑定时候效果的不同。下面开始:1.先看MSDN转载 2013-01-12 14:37:56 · 895 阅读 · 0 评论 -
VC如何查看全局变量的值
今天遇到CXX0033:Error:error in OMF type information这个问题,看到网上说的方法都是:“转载至:http://blog.youkuaiyun.com/ruifangcui7758/article/details/6789561今天调试程序,想查看全局变量的值,大家知道成员变量及局部变量,可以在watch窗口查看,也可以将鼠标停留在变量上,即可显示变量的值,但是程原创 2013-01-12 14:15:53 · 1982 阅读 · 0 评论 -
内排序算法的时间复杂度比较
内排序算法的时间复杂度比较一、概述:排序是一种最基本的、应用最广泛的数据操作,通常排序操作的数据量都非常的大,因而为了节省排序的时间,对排序算法的速度要求一般都比较高。特别是一些大型的数据库,由于数据量非常庞大,如何选择一个高效的排序算法就显得非常的重要了。在数据量小的时候,各种排序算法的性能都差不多,但在数据量很大的时候,一些好的排序算法的优点就非常的明显了。衡量排序算法优劣的标准有转载 2013-01-12 14:14:43 · 2300 阅读 · 0 评论 -
MFC 获得当前exe文件的路径
在MFC编程中,有时候需要打开“当前exe文件所在目录中“的某些文件,或将文件写在当前exe所在目录下,那么怎么获得当前exe文件所在的路径呢?在这里采用GetModuleFileName函数。 函数原型:DWORD GetModuleFileName(HMODULE hModule,LPTSTR lpFilename,DWORD nSize); 函数参数说原创 2013-01-12 16:32:30 · 1251 阅读 · 0 评论 -
VC/MFC 怎么将窗口置顶
1.窗口置顶(1)函数原型:BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int x, int y,int cx, int cy, UINT nFlags);(2)参数:1)hWnd:窗口句柄。2)hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一:HWND_原创 2013-01-12 14:26:37 · 11704 阅读 · 0 评论 -
MFC子窗口和父窗口(SetParent,SetOwner)
转载自:http://blog.youkuaiyun.com/oldmtn/article/details/7197026一、概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。所以我们可以转载 2013-01-12 14:38:33 · 512 阅读 · 0 评论 -
MFC中定义全局变量和全局函数的方法
源自:http://blog.youkuaiyun.com/kay_sprint/article/details/6857890 使用Visual C++6.0 中的MFC 基本应用时, 由于MFC 制作的工程由很多文件构成, 它不能象一般C++程序那样随意在类外定义全局变量, 那样有时会在运行程序时出现问。在软件开发过程中, 有时需要在不同的类之间利用全局变量传递数据, 利用全局函数处理相同转载 2013-01-12 16:13:56 · 545 阅读 · 0 评论 -
MFC中设置static text控件的背景色、字体、字号和颜色
在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text控件的字体、字体大小、字体颜色和背景色。例如对话框的类为CTestDlg.1. 在对话框的类中添加两个变量.方法:在classview选项卡中,选择CTestDlg,右键,add member variable.CBrush m_brush;CFont m_f原创 2013-01-12 14:09:16 · 7960 阅读 · 0 评论 -
如何手动卸载 Visual Studio 和 MSDN Library
来源:http://support.microsoft.com/kb/248697重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:256986(http://support.microsoft.com/kb/256转载 2013-03-03 13:19:21 · 1482 阅读 · 0 评论 -
Win7下安装VC6.0的完美解决方案
来源:点击打开链接一。彻底解决兼容问题:Windows 7下载安装 Visual C++ 6.0(VC6) 全程图解 网 上成千上万的诸如 “有没有Win7兼容的VC6的下载”、“Win7下Visual C++ 6.0不兼容问题” 之类的问题,多数意思是VC6和Win7不兼容,而现在不少学校或是考试用的还是Visual Studio套件,新的Win7或Vista系统下要安装怎么办?转载 2013-03-03 13:22:06 · 590 阅读 · 0 评论 -
error LNK2001: unresolved external symbol
参考:点击打开链接学习VC++时经常会遇到链接错误LNK2001,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使 人不明其所以然。产生LNK2001错误的原因:一个是由于编码错误导致的LNK2001,在这不想详细说.另一个由于编译和链接的设置而造成的 LNK2001.最经常发生的是:"LIBCD.lib(wincrt0.obj) :转载 2013-03-28 09:36:31 · 721 阅读 · 0 评论 -
C语言中的文件定位函数
1.函数rewind()功能:使文件位置指针指向文件的开头,无返回值调用形式:rewind(文件指针);2.函数fseek()功能:控制文件位置指针值的函数。操作成功返回0,否则返回非0调用形式:fseek(文件指针,位移量,起始点);参数说明:文件指针——文件打开时返回的文件指针位移量——指以起始点为基础,向前位移的字节数,可以为负值。起始点—原创 2013-03-24 16:35:32 · 1895 阅读 · 0 评论
分享