订阅本站

ReviewCpp问题整理

中國壹石頭 发表于 2011-9-10 分类 C/C++专区 | 发表评论

(1) 什么是预”编译头文件”?
所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是 以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的 C/C++代码——–甚至是inline的函数,但是必须是所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是 以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的 C/C++代码——–甚至是inline的函数,但是必须是稳定的,在工程开发的过程中不会 被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生成预编 译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有6-7M大。注意及 时清理那些没有用的预编译头文件。 稳定的,在工程开发的过程中不会 被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。注意生成预编 译头文件是很耗时间的。同时你得注意预编译头文件通常很大,通常有6-7M大。注意及 时清理那些没有用的预编译头文件。
Q: fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “StdAfx.h””?
R: 在VS中项目属性中把预编译现象去掉(不使用预编译头文件)即可。
(2)VS 2010项目布局说明

(3)动态链接库和静态链接库的区别
态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。

静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。
(4)VS 2010/2008/2005 快捷键整理
删除一行:shift + del
代码提示:alt + ->
编译代码:ctr + f7
编译执行:ctr + f5

SyntaxHighlighter

管理员 发表于 2011-9-9 分类 嘀咕 | 发表评论
		PlayerMcInfo playerMcInfo=gamePlayer.getPlayerMcInfo();
		if(playerMcInfo==null)playerMcInfo=new PlayerMcInfo();
		Map frendERcordMap=playerMcInfo.getFriendERecordMap();
		if(frendERcordMap==null) {
			frendERcordMap=getFrendERcordMap(gamePlayer,playerMcInfo);
			if(frendERcordMap==null){
				frendERcordMap=new HashMap();
			}
			frendERcordMap.put(key, value);
			playerMcInfo.setFriendERecordMap(frendERcordMap);
			playerMcInfo.update();
		}else{
			frendERcordMap.put(key, value);
			playerMcInfo.setFriendERecordMap(frendERcordMap);
			playerMcInfo.update();
		}

Linux复习总结(二) 网络配置

中國壹石頭 发表于 2011-3-30 分类 Unix/Linux | 发表评论

主机dns设置/ip地址修改/hosts.allow/hosts.deny配置/简单的几个命令讲解:netstat/lsof/tcpdump
Linux系统安装好后,最重要的内容莫过于设置网络了,本文就主要说明如何设置linux的网络。

一、配置Linux服务器的DNS IP

Linux复习总结(一) 启动配置管理

中國壹石頭 发表于 2011-3-30 分类 Unix/Linux | 发表评论

linux优化: linux启动项优化/服务器优化/开启服务端口优化等。

Linux复习总结的所有内容都是在centos 5.x以上版本测试通过的,部分命令参考gentoo中配置来设置。文中所
提到的系统时不再指明具体发行版本,只写Linux。

一、X系统启动与shell启动模式切换配置。
有的时候安装的系统会带有桌面环境,但是对于服务器使用的linux来说,桌面环境没有太大的必要,如果想让
系统启动时就以命令模式启动,则可以修改如下的配置文件:

vim /etc/inittab
# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

如果要选择以命令模式启动,修改为id:3:initdefault:即可。如果想换回启动时启动桌面环境,直接将id修改为5即可。
若系统已经启动命令行模式,若想切换到桌面环境,则使用startx即可。若在桌面环境想切换会命令模式,使用快捷
键Ctrl+alt+F1。

二、系统服务优化。
关于常见的linux服务前段时间专门总结到了一个表格中,并且附有说明和相关优化建议。这里只讲述如何查看这些服
务,查看liux已安装的服务可以使用命令:ntsysv,在centos中也可以使用setup,在系统服务(system services)一项
中可以查看相关信息,下图是一个centos 5.3系统默认安装时附带的服务。

关于服务优化建议,可以参考下图:

关于上面服务优化的内容再多说两句,在关闭服务时一定要仔细检查该服务对于你的需求是否有用,确认没用的可以关闭。
有的人关闭服务时就把sshd服务给关了,导致无法远程登陆,只有跑到机房重新去开启。所以在优化网络服务请注意。

三、开启服务端口。
linux为了保证服务器的安全,默认状态下只开启了22和80端口。如果想要开放其他端口可以使用iptables或者setup
中提供的防火墙工具。由于setup防火墙开启端口比较简单,不做详细介绍。步骤如下:
setup –> firewire configuration–>添加或开启你想要的端口。

最后再说下iptables,iptables防火墙的限制要比setup防火墙工具限制的严格很多,下面列举常用的两个命令:
(1) 用iptables开启某个端口,例如:
开启8080端口:

  /sbin/iptables -I INPUT -i eth0 -p tcp --dport 9888 -j ACCEPT
  /sbin/iptables -I OUTPUT -o eth0 -p tcp --sport 9888 -j ACCEPT

上面的命令表示在网卡eth0上允许8080端口收外部数据,下面的命令表示在网卡eth0上允许8080端口发送数据。
(2) 用iptables关闭某个端口,例如:
关闭8080端口:

  /sbin/iptables -I INPUT -i eth0 -p tcp --dport 9888 -j ACCEPT
  /sbin/iptables -I OUTPUT -o eth0 -p tcp --sport 9888 -j ACCEPT

命令的意思请参照(1)中的说明理解。
(3) 保存对iptables的修改:/etc/rc.d/init.d/iptables save
(4) 查看当前iptables的配置内容:#/etc/rc.d/init.d/iptables status
由于iptables的工作原理比较复杂,详细内容会专门附上一篇博客来说。