 |
singleton模式的C++实现
|
|
| |
| singleton模式的c++实现Singleton 模式在C++中的一种实现
说明:本文介绍了Singleton模式在C++中的一种实现方式,此方式不但较好的解决了全部
Singleton对象析构的次序问题,也提出了一个解决Singleton派生类体系的方法。
------------------------------------------------------------------------------
--
by: 方泓
Last Updated: May-08-2002 | First Version:May-08-2002
------------------------------------------------------------------------------
--
介绍
在我们的编程实践中经常会遇到这样的情况,象Logger, MemoryManager,SystemInforma
tion等这些类在整个系统中只应存在一个实例,这时我们就可以使用Singleton模式来实现
这些类。Singleton是最基本最常使用的设计模式之一,很多模式可以使用Singleton模式
实现,如Abstract Factory, Builder, Prototype往往是通过Singleton来 ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:11:24.0,共阅读2465次,回复0次 |
|
|
 |
PE格式效验
|
|
| |
| //打开文件
OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.hwndOwner = hWnd;
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFilter = "Executable Files (*.exe, *.dll)\0*.exe;*.dll\0All Files\0*.*\0\0";
ofn.lpstrFile = buffer;
ofn.nMaxFile = MAX_FILE_LENGTH;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER | OFN_HIDEREADONLY ;
GetOpenFileName(&ofn);
HANDLE hFile = CreateFile(buffer,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
//获得文件的内存映射句柄
HANDLE hMapping = Cr ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:08:03.0,共阅读1855次,回复0次 |
|
|
 |
const使用要点
|
|
| |
| 关于const的使用方法1、什么是const?
常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新
的。(当然,我们可以偷梁换柱进行更新:)
2、为什么引入const?
const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点
。
3、cons有什么主要的作用?
(1)可以定义const常量,具有不可变性。
例如:
const int Max=100;
int Array[Max];
(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
例如:
void f(const int i) { .........}
编译器就会知道i是一个常量,不允许修改;
(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。
同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内
容,只需要:const int Max=you want;即可!
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。
还是上面的例子,如果在函数体内修改了i,编译器就会报错;
例如:
void f(const int i) { i=10;//error! }
(5) 为函数重载提供了一个参考。
class ...
|
|
| 作者:不祥 jerry张贴于2004-03-09 22:05:36.0,共阅读2274次,回复0次 |
|
|
 |
it looks stranger
|
|
| |
| is this a bug or u do it deliberately?
|
|
| 作者:不祥 pyl2001张贴于2004-03-09 16:41:01.0,共阅读1195次,回复0次 |
|
|
 |
sizeof 和 alignment(对齐)
|
|
| |
| sizeof 和 alignment(对齐)
xueweizhong(原作) sizeof 和 alignment(对齐)
1: alignment的定义
alignment指的是对象的开始地址必须满足条件:
>>#pragma pack(push, 1)
<<任何地址
>>#pragma pack(push, 2)
<<偶数地址
>>#pragma pack(push, 4)
<<地址必须是4的倍数
>>#pragma pack(push, 8)
<<地址必须是8的倍数
2: 基本类型T的alignment(T)
对齐值就是上面所说的1, 2, 4, 8
现在对应于每个类型T, 都有一个alignment(T)和T对应,
这个对应关系究竟如何呢:
(以下针对我们现在所碰到的编译器而言)
<< char --> 1 (永远是1)
<< short
#pragma pack(1) --> 1
#pragma pack(2) --> 2
#pragma pack(4) --> 2 // 呵呵,这里是关键
... --> 2
<< int
#pragma pack(1) --> 1
#pragma p ...
|
|
| 作者:不祥 jerry张贴于2004-03-08 20:18:44.0,共阅读2253次,回复0次 |
|
|
 |
CWin32Exception源码
|
|
| |
| class CWin32Exception : public CException
{
public:
int ReportError(UINT nType = MB_OK, UINT nMessageID = 0);
BOOL GetErrorMessage( LPTSTR lpszError, UINT nMaxError, PUINT pnHelpContext = NULL);
void ParseError();
DWORD m_nErrorCode;
CString m_sErrorName;
CString m_sErrorDescription;
CString m_sErrorLabel;
CWin32Exception(DWORD nErrorCode);
virtual ~CWin32Exception();
private:
};
CWin32Exception::CWin32Exception(DWORD nErrorCode)
{
ASSERT(nErrorCode);
m_nErrorCode = nErrorCode;
ParseError();
::Logger.Log("发生系统错误:%s", m_sErrorLabel);
}
CWin32Excep ...
|
|
| 作者:不祥 bluejoe张贴于2004-03-06 17:12:52.0,共阅读2334次,回复0次 |
|
|
 |
颜色分布
|
|
| |
| 大家颜色处理的时候,可以对照对照!
常用颜色代码:
|
|
| 作者:不祥 xler张贴于2004-03-05 23:15:53.0,共阅读2015次,回复0次 |
|
|
 |
白乔原创:FakeQQ
|
|
| |
![工程快照[3,549字节]](/upload/2004/02/1046178404211.gif)
|
| |
| FakeQQ是白乔为《电脑爱好者》合订本准备的示例程序。 主要演示如下内容:
VC工程创建步骤;
对话框界面编程;
注册表编程;
TrayIcon编程;
网络编程;
数据库编程;
线程编程
FakeQQ由以下类组成:
CFakeQQApp:应用类
CFakeQQDlg:主窗口界面
CLoginDlg:登陆对话框
CMsgInfo:消息类
CSendMsgDlg:发送消息对话框
CUserInfo:用户信息类
CViewLogDlg:查看聊天记录对话框
CAboutDlg:关于对话框
CChatRecordSet:聊天记录数据库ResultSet类
|
|
| 作者:不祥 bluejoe张贴于2004-03-04 15:12:07.0,共阅读3405次,回复0次 |
|
|
 |
感冒了
|
|
| |
| 这个论坛好难用啊。。。找了好久才找到可以发贴的地方。。。是不是偶太笨了?
|
|
| 作者:不祥 whitestone张贴于2004-03-03 18:03:43.0,共阅读1189次,回复0次 |
|
|
 |
vc工程文件列表
|
|
| |
| .ncb,无编译浏览文件。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。
.aps: 资源辅助文件。
.opt: 工程关于开发环境的参数文件。如工具条位置信息等。
.clw:classwizard信息文件,ini文件的格式。
.dsp:项目文件,文本格式。
.dsw:工作区文件,与.dsp差不多。
.plg:编译信息文件,编译时的error和warning信息文件。
.hpg,生成帮助的文件的工程。
.mdp,旧版本的项目文件,相当于.dsp
.bsc,用于浏览项目信息的,如果用source brower的话就必须有这个文件。可以在project options里去掉Generate Browse Info File,这样可以加快编译进度。
.map,执行文件的映像信息记录文件。
.pch,预编译文件,比较大,但可加快编译速度。
.pdb,记录了程序有关的一些数据和调试信息。
.exp,只有在编译DLL时才会生成,记录了DLL文件中的一些信息。
|
|
| 作者:不祥 bluejoe张贴于2004-03-03 14:06:17.0,共阅读2561次,回复0次 |
|
|
 |
new bar by lans!!!
|
|
| |
| 感谢 lans!!!!!!!!!!
|
|
| 作者:不祥 bluejoe张贴于2004-02-27 10:47:44.0,共阅读1327次,回复1次 |
|
|
 |
VCer网站使用帮助
|
|
| |
| VCer级别:
VCer级别从0-9分别为:小兵-元帅,基本 运算公式为:
经验值底线 = 级别代码 * 级别代码 * 500
对应表如下:
VCer级别
级别代码
经验值底线
小兵
0
0
排长
1
500
连长
2
2000
营长
3
4500
团长
4
8000
旅长
5
12500
师长
6
18000
军长
7
24500
司令
8
32000
元帅
9
40500
经验值:
登录系统: +1
发贴: +N N=所在版块的基本分值
|
|
| 作者:不祥 bluejoe张贴于2004-03-01 21:43:33.0,共阅读2606次,回复0次 |
|
|
 |
换上了新的LOGO……
|
|
| |
| 换上了新的LOGO
|
|
| 作者:不祥 bluejoe张贴于2004-02-27 10:47:19.0,共阅读1156次,回复0次 |
|
|
 |
文件传输协议(File Transfer Protocol, FTP)
|
|
| |
| 本文主要对FTP协议进行详细描述。 Echo Protocol这个协议可能是我知道的最简单的协议了。它主要用于调试和检测中。这个协议的作用也十分简单,接收到什么原封发回就是了。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了。如果使用UDP协议的基本过程和TCP一样,也是收到什么返回什么,检测的端口也是7。文件传输协议(File Transfer Protocol, FTP)
1. 介绍
FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读TCP协议标准规范和Telnet协议标准规范。
2. 概览
在本节中我们将讨论一些表面上的问题,有些名词的定义请参阅TCP和Telnet参考文献。我们先介绍一下(1)字节大小,在FTP中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是8位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。(2)控制连接是建立在USER-PIT和SERVER-PI之间用于交换命令与应答的通信链路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器DTP和用户DTP之间也可以发生在两个服务器DTP之间。(4)DTP:数据传输过程(DT ...
|
|
| 作者:不祥 xler张贴于2004-02-26 12:35:25.0,共阅读2378次,回复0次 |
|
|
 |
为什么偶的信誉值是负的啊?
|
|
| |
| 你们系统怎么做的啊,刚注册别人是一百我却是-2?
|
|
| 作者:不祥 GPRS张贴于2004-02-26 01:27:05.0,共阅读1335次,回复0次 |
|
|
 |
洗牌程序
|
|
| |
| int No[54];
int Which = 0, Total = 54;
//初始化牌
for(int i = 0; i < 54; i++)
No[i] = -1;
srand((unsigned)time(NULL));
for(Which = 0; Which < 54; Which ++)
{
i = rand()*Total / RAND_MAX;
int k = 0;
int m = 0;
while(true)
{
//该牌没有设置
if(No[m] < 0)
k ++;
if(k > i)
break;
m ++;
}
No[m] = Which;
Total --;
}
|
|
| 作者:不祥 bluejoe张贴于2004-02-25 11:50:41.0,共阅读2119次,回复0次 |
|
|
 |
VCer版面发贴须知
|
|
| |
|
拒绝一切政治敏感话题、色情内容;
禁止在非论坛版面灌水,杜绝rt/up等纯净水;
禁止在非“技术问答”版块就VC的技术进行提问;
建议提问前,请先参考水木清华和CSDN,以免造成不必要的资源分散。
如果你仅仅只想上传一个文件(开发包),却无任何注解,那么最好不要发帖;
RichType字段的内容编辑需要IE6.0的支持!
如需要在RichType字段插入图片或者代码等内容,请点击“编辑”按钮打开HTML在线编辑器进行编辑;
张贴代码时,强烈建议使用HTML在线编辑器中的“代码”格式,并使用<TAB>键缩进排版,以方便读者直接拷贝使用;
查看帖子时,系统会对其中的正文部分进行自动排版。请你在发贴时,删除其中不必要的前导空格;
未尽事宜详见使用帮助:showTip.jsp?tipid=1046526146184
|
|
| 作者:不祥 bluejoe张贴于2004-02-25 08:42:04.0,共阅读1333次,回复0次 |
|
|
 |
VCer会员注册声明
|
|
| |
| 一、服务条款的确认和接纳
二、权利及义务
三、关于网络知识产权
四、关于责任
五、服务条款的修改和服务修订
六、通告
七、VCer的投诉处理
八、法律管辖
内容:
VCer.net是一个面向Visual C++软件和Visual C++软件开发人员的综合社区网站。我们希望你能够在VCer.net上交流、学习、进步。如果你对Visual C++没有相关经验和兴趣,本站建议你尽量不要进行用户ID的注册。
非注册用户同样拥有文章浏览、资料下载的权利。如果你没有开放源代码的习惯,并不能接受其他VCer来共享你的资源和代码,本站建议你尽量不要进行用户ID的注册。
一、服务条款的确认和接纳
VCer.net的各项电子服务的所有权和运作权归VCer工作组。VCer.net提供的服务将完全按照其发布的章程、服务条款和操作规则严格执行。会员必须完全同意所有服务条款并完成注册程序,才能成为VCer.net的正式注册会员并享受由VCer.net提供的更全面的服务。
二、权利及义务
VCer.net的权利义务:
1. 尊重会员隐私制度
尊重会员个人隐私、保障会员隐私安全是VCer.net的一项基本政策,VCer.net不会公开、编辑或透露会员的保密资料,除非符合以下情况:
(1) 根据中华人民共和国国家安全机构、公安部门 ...
|
|
| 作者:不祥 bluejoe张贴于2004-02-25 08:34:38.0,共阅读1332次,回复0次 |
|
|
 |
强啊!佩服ing
|
|
| |
| http://blogchina.com/new/display/20437.html
|
|
| 作者:不祥 jerry张贴于2004-02-24 11:35:02.0,共阅读1385次,回复0次 |
|
|
 |
烟花
|
|
| |
| 挺有意思的,以前看到过一次
|
|
| 作者:不祥 jerry张贴于2004-02-23 16:02:52.0,共阅读1216次,回复0次 |
|
|