c/c++
文章平均质量分 85
木日光
这个作者很懒,什么都没留下…
展开
-
使用CInternetSession和CHttpFile提取网页源码
程序界面:为编辑框添加一个对应的变量:m_sUrl,再为Button1添加点击事件,主要代码如下:void CGetHtmlCodeDlg::OnButton1(){ CString sHtml; UpdateData(); GetHtmlCode(m_sUrl, sHtml转载 2015-11-03 10:25:06 · 652 阅读 · 0 评论 -
C与C++程序的启动代码(startup)
C或者C++语言,明面上的入口函数是main(argc,argv),或者tmain、wmain、WinMain等等。进一步,很容易获知,是C Runtime的startup代码中的void mainCRTStartup(void)函数,调用了编程者写的main函数。这个函数定义在Visual C++安装目录的crt\src\目录下的某个.c文件中(视VC++的版本不同,存放的文件也不同转载 2016-03-18 10:21:54 · 4368 阅读 · 0 评论 -
windows下system函数返回值
在DOS下,system()只是做一个调用其他程序的工作,只要调用成功就返回0,不成功就返回-1。它不能得到被调用的程序的执行结果。要得到其他程序的执行的结果,要用spawn***()这个家族的函数。Linux和Windows中system的不同之处在于:如果子程序调用成功,但执行失败时,Linux下的system函数返回该子进程的返回值,而Windows下的sys转载 2016-03-09 13:53:35 · 8238 阅读 · 0 评论 -
C++的精髓——虚函数
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};void Move();priv转载 2016-03-09 10:50:47 · 394 阅读 · 0 评论 -
抛出异常与栈展开(stack unwinding)
抛出异常时,将暂停当前函数的执行,开始查找匹配的catch子句。首先检查throw本身是否在try块内部,如果是,检查与该try相关的catch子句,看是否可以处理该异常。如果不能处理,就退出当前函数,并且释放当前函数的内存并销毁局部对象,继续到上层的调用函数中查找,直到找到一个可以处理该异常的catch。这个过程称为栈展开(stack unwinding)。当处理该异常的catch结束之后,紧接转载 2016-03-23 10:24:02 · 430 阅读 · 0 评论 -
应用程序无法正常启动0xc0150002怎么解决.
用vs2008写了个控制台应用程序,又写了个dll,应用程序调用了dll里的函数,在自己电脑上生成的exe能正常运行,拷到别人电脑上测试报 “应用程序无法正常启动0xc0150002 ”,上网查半天网上方法都试过没用,后来有个关于Release和Debug生成的区别提醒了我。 用Release重新生成了应用程序可执行文件,测试结果还是一样,后来发现dll也是debug的,马上改成Re原创 2016-06-28 15:29:03 · 2299 阅读 · 0 评论 -
linux下 c++ 服务器开发(一)
苦逼的c++程序员还没找到工作,所以顺便开始写服务器练手。。1.我的电脑是win10的,所以先去网上下虚拟机,我下载了 ,然后安装了。2.新建了一个ubuntu 32位的虚拟电脑。(我划分的是固定大小硬盘,幸好我划得比较大60G,不然它没错误提示并默认从C盘的容量里划,提示错误后我才意识到路径没选)3.在ubuntu官网上下载了32位的,用的是服务器版没原创 2016-12-03 00:01:12 · 13439 阅读 · 2 评论 -
linux下 c++ 服务器开发(二)
1.我先打开浏览器输入网址试了下能上网。2.然后打开终端,看下gcc编译器预装了没结果是没装突然脑子冒出了sudo apt-get ,看来积累也是很重要的。。先把过程复制下来,虽然现在不是很懂,但以后肯定能看懂的3.再看看g++装了没尼玛,感觉哪里怪怪的,原来没有仔细看错误报告: g++: fatal error: no in原创 2016-12-03 19:51:37 · 5628 阅读 · 0 评论 -
linux下 c++ 服务器开发(三)
要开始网络编程了,Qt上的客户端(Client)程序就用Qt自带的网络接口(听说可以跨平台),这样的话只要了解Qt网络编程就行了。服务器(Server)程序是重点,宗旨就是写出服务器程序,让服务器程序越来越厉害。。 不知道先写哪个好,那就两个一起开吧,切换着写。。服务器这边毫无头绪,不过看了下qt这边的项目文件,就学着也弄个main.cpp,server.h,ser原创 2016-12-04 23:41:27 · 4569 阅读 · 0 评论 -
类成员函数作为线程函数
-------------------类成员函数不能作为线程函数--------------------------- 一般来说,C++的类成员函数不能作为线程函数。这是因为在类中定义的成员函数,编译器会给其加上this指针。请看下列程序:#include "windows.h" #include class ExampleTask { publ转载 2016-01-27 12:30:32 · 622 阅读 · 0 评论 -
使用 CreateTimerQueueTimer 定时器时需要注意的一个参数
转自 http://blog.waterlin.org/articles/a-parameter-of-createtimerqueuetimer.html最近在使用定时器的时候,被一个小细节坑了,偶尔导致 coredump,费了好大的力气才找到原因,现在整理一下备忘。我采用了如下方式来生成了定时器:if (!CreateTimerQueueTimer( &m_hTimer转载 2015-12-07 13:14:09 · 4184 阅读 · 0 评论 -
MFC基础类及其层次结构
从类CComdTarget层层派生出绝大多数MFC中的类,其层次结构为下图所示.从根类Cobject层层派生出绝大多数MFC中的类,其层次结构为下图所示.MFC中重点类其中,CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化等。 CCmdTarget类主要负责将系统事件(消转载 2016-01-04 14:55:47 · 506 阅读 · 0 评论 -
Visual Studio项目相对路径
这篇文章主要写给那些以前没有用过VS的新手,同时也是自己学习经验的积累,高手就不用看了以免浪费您宝贵的时间。在VS的工程中常常要设置头文件的包含路径,当然你可以使用绝对路径,但是如果你这样设置了你只能在你自己的机器上运行该工程;如果其他人拷贝你的工程到其他机器上就可能无法运行,这个是因为你在建工程时可能把工程放在了E:盘,但是其他人可能会把工程放在其他根目录下,这样会导致找不到转载 2015-10-21 10:25:22 · 1642 阅读 · 0 评论 -
获取目录下所有文件文件名
//////////////////////////////////////////////////////获取目录路径下面所有文件的内容//适用于linux和windows系统////////////////////////////////////////////////////#include #include #include #include #ifdef _WIN32转载 2015-10-21 12:06:59 · 584 阅读 · 0 评论 -
C/C++ 利用FindFirstFile()和FindNextFile() 历遍指定目录的所有文件
本文利用FindFirstFile(),FindNextFile()函数历遍指定目录的所有文件,最基础的历遍所有文件。一下代码尚无法解决文件名为中文时的乱码问题,以及无法分别无后缀的文件名和文件夹名的区别。FindFirstFile()用于获得指定目录的第一个文件。其原型为:HANDLE WINAPI FindFirstFile( _In_ LPCTST转载 2015-10-22 12:05:20 · 1969 阅读 · 0 评论 -
char,short ,int ,long,long long,unsigned long long数据范围
速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlo转载 2015-10-24 10:38:08 · 702 阅读 · 0 评论 -
共享内存实现进程间大数据的交换
引言 进程间的数据交换和共享是一种非常重要和实用的技术。大、中型软件的开发设计多是由众多程序设计人员的合作完成,通常一个程序设计人员只负责其中一个或几个模块的开发,这些模块可以是动态链接库也可以是应用程序或是其他形式的程序组件。这些独立开发出来的程序模块最终需要作为一个整体来运行,即组成一个系统,在系统运行期间这些模块往往需要频繁地进行数据交换和数据共享,对于动态链接库同其主调应用程序之转载 2015-10-29 16:47:36 · 455 阅读 · 0 评论 -
c/c++中运行外部程序
关于三个SDK函数: WinExec, ShellExecute,CreateProcess 的其他注意事项:【1】定义头文件必须定义以下头文件:#include 【2】定义路径C++中所表示的路径要用 " \\ "而不是平常所用的" \ ",所以以上三个函数表示路径都为:disk:\\Directory\\...\\File nameWinExec("D:\\转载 2015-10-30 15:03:38 · 342 阅读 · 0 评论 -
预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
当 Visual C++ 项目启用了预编译头 (Precompiled header) 功能时,如果项目中同时混合有 .c 和 .cpp 源文件,则可能收到 C1853 编译器错误:fatal error C1853: 'pjtname.pch' precompiled header file is from a previous version of the compiler, or the p转载 2015-10-30 16:26:54 · 664 阅读 · 0 评论 -
C/C++中extern关键字详解
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数转载 2015-12-30 15:43:23 · 245 阅读 · 0 评论 -
linux下 c++ 服务器开发(四)
开始客户端这边的网络编程了,就是在之前的注册按钮的触发事件里添加与QTcpSocket相关的操作,用QTcpSocket很方便的,服务器那边准备用Linux提供的Socket接口,那样才达到锻炼的效果。先来看下QTcpSocket的介绍:扫过之后直接跳转到例子看例子中,看完应该就能了解该怎么写了 仔细看帮助文档就会发现,需要在原创 2016-12-05 16:55:35 · 2973 阅读 · 4 评论