c++专区
文章平均质量分 62
焦三仙本仙
学无止境,共同进步
展开
-
c++编程规范
好几天了,本来认为写代码,编程规范问题越来越值得注意,在这里也是从网上查看到得,觉得挺有用,在这里给大家一同分享:引言今天人们越来越明白软件设计更多地是一种工程,而不是一种个人艺术。由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性也比较大。BELL实验室的原创 2012-11-02 13:29:51 · 1587 阅读 · 0 评论 -
再次深入理解win32控制台
今天,从网上查看代码,测试功能实现,遇到了不解的问题,最后经过摸索,算是基本解决问题,但是是否是这样的真正原因还不确定,自己理解:win32项目,就是可以显示控制台和窗口两种显示,因此它版本的项目里面是可以或者说包涵着windows的函数。win32控制台,就是只是显示控制台界面,其他的窗口可以在这个基础之上出来。但是他里面是不包涵部分的windows函数的,通常报错如原创 2012-11-01 18:19:47 · 1922 阅读 · 1 评论 -
3D游戏引擎Irrlicht
简介: Irrlicht引擎是一个用C++书写的高性能实时的3D引擎,可以应用于C++程序或者.NET语言中。 通过使用Direct3D(Windows平台),OpenGL 1.2或它自己的软件着色程序,可以实现该引擎的完全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和原创 2013-01-22 12:11:34 · 736 阅读 · 0 评论 -
GDI和GDI+的区别和联系
GDI:GDI在Windows中定义为Graphics Device Interface,即图形设备接口,是Windows API(Application Programming Interface)的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。它的桥梁作用体现在:(1)原创 2013-01-23 15:16:42 · 2556 阅读 · 2 评论 -
C/C++编译的程序占用的内存情况详细解析
一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 堆(heap):由malloc,new等分配的空间的地址,地址由低向高增长(程序员释放)。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它转载 2013-01-09 11:10:12 · 3041 阅读 · 0 评论 -
命令行svn add提示错误
每天都用命令行操作版本管理库。svn add path可是发现,偶尔会出现错误提示如下:从这个提示的错误提示里面可以看出来,好像是说.svn这个文件夹的问题。这个文件夹是个保留的名字。所以无法操作。但是这样的错误不是一直发生,是偶尔发生,多数情况下不会提示这样的错误提示。所以一般不用理会。但是解决办法也不是没有。下面就是解决办法。第一:你需要把那个.svn的文件原创 2013-01-24 15:49:22 · 2930 阅读 · 0 评论 -
多个重定义的符号
今天调试程序出错。VS2010提示:找到一个或多个重定义的符号。解决办法:第一:更改如下图所示设置 第二:注释掉头文件中的#include 总之,原因是包含了两次同样的头文件。希望对大家有所帮助。原创 2013-01-24 18:45:20 · 1424 阅读 · 0 评论 -
帮助文档.chm能打开但是显示不出来详细内容
今天从网上下载了,帮助文档,可是打开却发现不好使,具体现象如下图:后来,朋友帮忙解决。是文件名的问题。解决后如下图:原创 2013-01-25 16:08:53 · 3937 阅读 · 13 评论 -
图形用户界面(GUI)应用程序(第五课)
百度百科上面对图形用户界面是这样定义: 1、图形用户界面或图形用户接口(Graphical User Interface,GUI)是指采用图形方式显示的计算机操作环境用户接口。也就是说可以通过窗口、菜单、按键等方式来方便地进行操作。 2、其实是相对于早期计算机使用的命令行界面。图形界面对于用户来说更为简便易用。 3、嵌入式GUI具有下原创 2013-01-28 11:11:17 · 1787 阅读 · 0 评论 -
多国语言不同字符串显示--LoadString函数
其实这里也是一个程序中加载资源的分析实例。创建win32项目。源码如下:// TestLoadStr.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "TestLoadStr.h"#include"resource.h"#define MAX_LOADSTRING 100// 全局变量:HINSTAN原创 2013-01-28 17:55:49 · 3349 阅读 · 0 评论 -
服务器所有端口号作用详解
开始菜单-- 运行 -- netstat -an(查看端口命令)一 、端口大全端口可分为3大类:1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。通常这些端口的通讯明确表明了某种服 务的协议。例如:80端口实际上总是HTTP通讯。2) 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说原创 2013-01-29 17:06:37 · 5644 阅读 · 0 评论 -
CreateFile()函数详细解释
CreateFileThe CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resources disk de翻译 2013-01-24 17:35:55 · 3671 阅读 · 0 评论 -
c++实现嵌入.exe文件到程序中
其实也不算是嵌入,只是单单的将一个exe文件或者任何一个类型的文件,通过16进制来表示。然后这个16进制的文件再使用的时候先生成。然后程序调用。代码:// test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;unsigned char data[31744] = {原创 2013-01-15 16:43:46 · 3792 阅读 · 0 评论 -
怎样改变Windows字体文件夹c:\windows\fonts
问题的提出: 程序实现,添加一个字体文件到windows字体文件夹c:\windows\fonts中。问题分析: c:\windows\fonts文件夹中的文件不是简单的拷贝过去的,是通过安装上去的。失败尝试: 命令行copy、xcopy、move都失败;原创 2013-01-16 13:54:23 · 13490 阅读 · 2 评论 -
c#套接字
学习c#数据流相关,自然和套接字联系在一起,便于深入领悟。上来先看看实现套接字的相关类在msdn里面的结构体系位置:定义:首先来自百度百科里面是这样定义的。套接字:多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。下面是自己理解。原创 2013-01-29 16:02:50 · 1576 阅读 · 1 评论 -
win32加载图片、加载声音
测试用例中,补充加载字符串。原创 2013-01-31 19:09:55 · 1190 阅读 · 0 评论 -
C++开源库学习地址总结
C++标准库: 标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被实践证明为有工业级别强度的佳作。1、Dinkumware C++ Library参考站点:http://www.dinkumware.com/P.J. Plauger编写的高品质的标准库。P.J. Pla原创 2013-01-17 11:47:09 · 2425 阅读 · 3 评论 -
c++编写病毒入门
本连载文章只讨论写病毒的技术,并不讨论危害计算机及网络,所示例的程序只是一个无危害的模板,你可以在技术范围及法律范围内扩充实验.在读本程序前请保证不用此程序进行违法活动,否则,请马上离开.连载1——最基本的病毒.本病毒的功能:1.在C、D、E盘和c:\windows\system、c:\windows中生成本病毒体文件2.在C、D、E盘中生成自动运行文件3.注册c:\w原创 2013-01-17 18:40:26 · 24729 阅读 · 10 评论 -
Win32程序标准开发流程
一、WinMain入口点我们在学习标准C++的时候,都知道每个应用程序运行时都会先进入入口点函数main,而当从main函数跳出时程序就结束了。在Windows编程里面,也是一样的,只是我们的入口点函数不叫main,叫WinMain,这个函数不同于main,我们不能乱来,它的定义必须与声明保持一致。我建议各位安装VS的时候,都顺便更新帮助文档到本地硬盘,这样我们可以方便查找。有一点要注意,原创 2013-01-18 16:48:39 · 1216 阅读 · 0 评论 -
c++中"指针"终结理解
我们可以对指针这样定义:通过指针中存放的首地址,应用程序顺利地找到某个变量。就好像我最近认识了一位朋友,他叫我有空去他家坐坐,然后,他留下了地址。某个周末我正闲着,忽然想起这位朋友,于是,我就根据他留的地址去找他,结果,当我来到傻B街230号出租房时,里面走出一个我不认识的人,于是,我问他我这位朋友去哪了,陌生人说,我刚租了这房子,你找的可能是前一位租户吧。所以,指针所指向的地址,有可能是原创 2013-01-18 15:30:25 · 1356 阅读 · 0 评论 -
c++实现网络编程
服务端程序的编写1. 创建套接字(Socket)2. 将套接字绑定到一个本地地址和端口上.(bind)3. 将套接字设为监听模式,准备接收客户请求(listen).4. 等待客户请求到来,当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字(accept).5. 用返回的套接字和客户端进行通讯(Send/Recv)6. 返回等待另一个客户请求.7. 关闭套接字原创 2013-01-21 18:49:27 · 950 阅读 · 0 评论 -
文件(file)和流(stream)的联系和区别
文件(File)和流(Stream)是既有区别又有联系的两个概念。 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。 存储介质:文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。 特性:每个文件都有文件名原创 2013-01-21 18:01:24 · 13500 阅读 · 2 评论 -
关于数字签名SignTool
通过微软的数字签名工具SignTool对指定的文件进行数字签名,出现几个小问题,第一:提示警告:SignTool Warning:Signing succeeded,but an error occurred while attempting to timestamp:路径。好像是提示时间戳的问题,这个问题不是经常出现,只是偶尔出现。具体解决办法还没有,只是感觉可能对具体的签名原创 2013-02-17 14:01:06 · 2470 阅读 · 0 评论 -
c++中的STL基本容器介绍
在STL中基本容器有: string、vector、list、deque、set、map set和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问set:集合, 用来判断某一个元素是不是在一个组里面,使用的比较少map:映射,相当于字典,把一个值映射成另一个值,如果想创建字典的话使用它好了 string、 vector、list、deque、set 是有序原创 2013-02-19 12:41:51 · 957 阅读 · 0 评论 -
error LNK1104: 无法打开文件 ***.exe的错误
刚刚还好好的,怎么突然就出现这样的错误,后来分析原因,第一:查看那个exe文件是否存在,第二:查看那个文件或者那个文件所在的文件夹是否打开或者改名字等等操作占用着这个文件.第三:重新清理并生成解决方案第二条可能性最大.原创 2013-02-20 14:21:08 · 3922 阅读 · 4 评论 -
c++中的messagebox()详细用法
1.MessageBox("这是一个最简单的消息框!");2.MessageBox("这是一个有标题的消息框!","标题"); 3.MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL ); 4.MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION ); 5.MessageBox("原创 2013-02-20 13:45:02 · 1208 阅读 · 0 评论 -
WinExec()和system()的区别
WinExec()是一个WIN32 API,它的第一个参数必须包含一个可执行文件名,System()是C库函数,它接受一个DOS命令。 ShellExecute()和WinExec()区别━━━━━━━━━━━━━━━━━━━━━━━━━━我认为从功能上: createprocess > shellexecute > winexec 复杂程度也是!winexec() 只原创 2013-03-05 14:23:26 · 11727 阅读 · 0 评论 -
WinExec, ShellExecute, CreateProcess三个函数的区别和联系
三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateProcess最为复杂。 WinExec 两个参数,前一个指定路径,后一个指定显示方式。 ShellExecute 可以指定工作目录,并且还可以寻找文件的关联直接打开不用加原创 2013-03-08 14:10:46 · 2648 阅读 · 0 评论 -
错误代码741 因为文件名产生符号链接,所以需由对象管理器重新运行分析操作。
错误现象重现:错误代码741 因为文件名产生符号链接,所以需由对象管理器重新运行分析操作。具体细节:今天就是运行程序,启动一个进程,遇到一个问题;错误代码如上:就是在用一个WinExec("*.exe",SW_SHOW);int ll = GetLastError();得到错误代码741.最后解决办法:这个问题就是关于进程权限的问题,使用普通函数来创建一原创 2013-03-08 13:51:11 · 3127 阅读 · 0 评论 -
InstallShield脚本语言编程语法
转自http://www.bangchui.net/viewthread.php?tid=75&extra=page%3D2InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加。一.基本语法规则 1.变量 BOOL 布尔型 值为TR原创 2013-02-25 15:11:30 · 2556 阅读 · 0 评论 -
c++字符串处理函数总结
C++:string str;1. 字符串长度len = str.length();len = str.size();2. 字符串比较可以直接比较也可以:str1.compare(str2); str1.compare(pos1,len1,str2,pos2,len2); 值为负,0 ,正。nops 长度到完。3. 附加str1 += str2;原创 2013-03-08 14:08:00 · 1349 阅读 · 0 评论 -
CreateThread多线程编程测试
C++中的多线程编程技术,C++本身并没有提供任何多线程机制,但是在windows下,我们可以调用SDK win32 api来编写多线程的程序创建线程的函数: HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD SIZE_T dwStackSize,原创 2012-08-17 16:57:38 · 1425 阅读 · 3 评论 -
c++中怎么判断_tsystem()函数是否执行成功
原来也是,曾经那是自己还 比较年轻,什么也不懂,哈哈哈,想用命令行的时候就使用_tsystem()这个函数,觉得挺简单,挺爽的。可是越来越觉得有问题,问题一:这个函数执行的命令行是否执行。问题二:是否执行成功。问题三:是否执行完成后正常退出。 但是问题总会解决,今天就是我和_tsystem()函数摊牌的时候了。虽然解决的问题只是一小部分,但是目前还可以解决燃眉之原创 2013-03-08 18:28:23 · 3633 阅读 · 0 评论 -
EINTR 错误码4
今天测试程序,得到函数返回值是4具体错误好像是文件名的问题,改变文件名字,解决了原创 2013-03-12 18:50:03 · 1246 阅读 · 1 评论 -
CreateProcess()函数详细解释
函数原型 BOOL CreateProcess ( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes。 LPSECURITY_ATTRIBUTES lpThreadAttributes, BO原创 2013-03-12 18:55:42 · 3543 阅读 · 0 评论 -
CloseHandle()函数
关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程原创 2013-03-14 15:02:15 · 1823 阅读 · 1 评论 -
对进程的常见操作测试
今天测试对单个进程的创建到等待结束。 // CreateProTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #includeusing namespace std;int _tmain(int argc, _TCHAR* argv[]){原创 2013-03-13 19:00:56 · 1304 阅读 · 0 评论 -
关于过滤文件、过滤文件夹、过滤路径的几个想法
是遇到这样的情况,移动、拷贝或者删除指定的文件,可是又有需要区别对待的对象,这是就需要此案去话不多说:第一:算是比较简单的find。第二:比find更多强大的拷贝。第三:通过函数读取。个人比较倾向于前面两种,最简单的方法解决问题。原创 2013-03-29 18:02:41 · 1404 阅读 · 0 评论 -
关于二维数组测试浅析
今天在聊天中有一个问起来关于数组的问题,自己就是挺喜欢帮助朋友们解决问题的,也不是为了什么。帮助朋友真心觉得高兴。废话少说了,先看下面代码,看完代码然后解释,或许过于简单,但是我觉得很有意义,就写在这里记录下。#include"stdafx.h"#include char *change(char s[ ][20], char t[ ]);int main(void){原创 2013-03-15 17:21:05 · 1356 阅读 · 0 评论 -
ExitProcess与TerminateProcess函数
进程只是提供了一段地址空间和内核对象,其运行是通过在其地址空间内的主线程来体现的。当主线程的进入点函数返回时,进程也就随之结束。这种进程的终止方式是进程的正常退出,进程中的所有线程资源都能够得到正确的清除。除了这种进程的正常推出方式外,有时还需要在程序中通过代码来强制结束本进程或其他进程的运行。ExitProcess()函数即可在进程中的某个线程中使用,并将立即终止本进程的运行。ExitProce原创 2013-03-18 11:38:59 · 1777 阅读 · 0 评论