摘要:
在vc开发中,当我们新建一个应用程序工程时,如果在第四页中选择上下文敏感帮助(context-sensitive help)(缺省情况下并没有选择),则应用程序建立以后,会产生一个hlp目录。缺省情况下,系统的帮助文件是winhelp格式的。后缀为*.hlp。其中有一个资源索引文件,后缀为*.hm。这是相应上下文敏感帮助的应用程序资源的索引信息。另外还有微软帮助文件制作工具winhelp。后缀为......
摘要:
不知大家碰到过这个问题没有,就是当你用两个double值进行计算后,当你想将结果输出时,却得不到希望的结果。反正与想象的不一样,在windows时提供了api解决此问题:(mfc或标准c++好象都没找到简单的解决办法)
示例如下:double d = 5 - 4.99;
d应该是等于0.1吧,跟踪一下程序,发现不是,显示的值是0.0099999999999997868(不知道vc的调试器是如......
新手指南-序列化篇之三
序列化初步之三(翻译)
http://www.codeproject.com/cpp/serialization_primer3.asp 【程序编程相关:
BT原理收集---1】 【推荐阅读:
ADO 方法访问数据库的封装接口(01)】
Ø 序列化一个简单类 【扩展信息:
一个简洁的读写位图文件的类】在前两部分,我们学习了在通常情况下,如何为序列化提供有力的支持.在这一部分,我们将学习序列化任何一种对象时的特殊的规则.这里有四个常用的参考例子.每个例子都由前一个构成.
Ø 序列化一个派生类
Ø 序列化一个同源的聚集类
Ø 序列化一个异源的聚集类
我们的searialize()方法将返回以下状态码之一:
l success
l invalidformat
l unsupportedversion
l readerror
l writeerror
序列化一个简单类
一个“简单类”的定义是:一个即没有父类,也没有聚集类的对象.序列化一个简单的类需要以下步骤:
1. 序列化对象签名与版本
2. 序列化对象成员(如果有)
在下面的例子中,类point包含两个int型变量,表示点的坐标.对象的签名与版本定义成静态成员(m_strsignature与m_nversion),所以每个point类的实例都共享它们.
int point::serialize
(carchive* parchive)
{
assert (parchive != null);
// step 1: serialize signature and version
int nversion;
try {
if (parchive->isstoring()) {
(*parchive) << point::m_strsignature;
(*parchive) << point::m_nversion;
} else {
cstring strsignature;
(*parchive) >> strsignature;
if (strsignature != point::m_strsignature)
return (status::invalidformat);
(*parchive) >> nversion;
if (nversion > point::m_nversion;)
return (status::unsupportedversion);
}
// step 2: serialize members
if (parchive->isstoring()) {
(*parchive) << m_nx;
(*parchive) << m_ny;
} else {
(*parchive) >> m_nx;
(*parchive) >> m_ny;
}
}
catch (cexception* pexception) {...
下一页 摘要:
windows socket是基于伯克利的unix socket的。微软的mfc提供了两种类来支持socket编程。csocket类为网络编程提供了高级别抽象。一个socket是有一种类型的并且与某个process相结合在一起。两类socket都是双向的:可以同时在两个方向进行数据上的交互。两类socket是可用的的:stream sockets:可以提供数据流而且不需要记录边界—&......