VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer开源 >>> 可重用类
我也来开源一个!>>>


白乔原创:二进制XML存储方案BinXML
 
 
BinXML是我个人杜撰出来的名字,不知道是否合适,也不知道是否已存在类似的解决方案。在vcer.net上我将前一段时间的这个BinXML方案贡献出来,希望能够与广大vcer分享。 当时问题的背景是这样的,项目需要确定存储方案,这种方案需要满足如下要求: 生成的单机板exe尽可能的不依赖于其它软件,如:数据库管理系统; 存储的数据最好能够方便的拷贝,以满足项目的上报、汇总的功能; 存储的格式以后可能还会变,变化不频繁,但是最好能支持这种变化; 只需要数据的持久化与反持久化的功能,不需要查询统计等复杂功能; 存储的数据中可能包括一个或者多个的文件附件,如:word文档; 存储的数据可能被不同的平台使用,如:windows或者linux; 作为web项目的一部分,除了提供VC的接口之外,存储的数据格式需要提供java的接口; 我首先考虑到了MsAccess格式,文件型数据库,方便拷贝,而且表的设计很柔性化。在windows环境下,MsAccess似乎可以不需要再安装额外的驱动,但是在linux环境下,如何被java调用是个问题(当然,这个问题也是可以解决的,但是很别扭)。其次,使用RDB还有一个问题:数据的层次表达与多值问题,将树型数据扁平化存储的方案是有的,但是,将几层简单的节点拆分成N个表格,岂不是杀鸡用牛刀? 其次的考虑当然是XML,然而XML是基于 ...
作者:白乔 bluejoe张贴于2007-02-28 12:51:33.0,共阅读2932次,回复4
snoopy每日一译-CWaveFile--一个操作和表示WAV数据的类
 
 
介绍: 我先从简单介绍数字声音和它在计算机中的文档开始。很久很久以前,声音信号,像其他信号一样,用连续波形表示。它们被称作模拟信号。 模拟信号有很多优点,其中一个优点是它和物理变化一一对应。例如:当我们说话,我们的声带发生震动,声波通过空气传播。使用模拟仪器,我们很容易记录和保存声波(例如使用磁带)。但模拟信号也有一个很不好的缺点:抗干扰能力差。 数字信号没有这个缺点,因为数字表示可以有冗余数据。通过冗余数据的信息,即使传输过程中信号发生严重变化,也可以恢复原来的信号。因此数据信号被广泛使用:通讯、领航、医药、声音处理、计算机等。 我知道你更干兴趣的问题是:数字信号在计算机中是怎样存储的?我怎样处理它?我不想深入解释数字信号原理。你,作为一个程序员,必须知道的只有一件事:数字信号是一个数组(你会得到你自己的数组,如果你读完这篇文章的话)。对于声音数字信号,它可以是8位或16位的数字。 现在有大量的声音数字信号存储的标准(AU, VOC, WAVE, AIFF, AIFF-C, and IFF/8VX),但是实际上,微软的WAV文件使用得最广泛。 WAVE文件格式: 所有的WAVE文件符合RIFF规范。因此,WAVE文件满足以下条件: 由独立的数据块(称为chunk)组成,这些数据块组织称树状结构。 每个数据块由一个块头和数据组成。 RIFF文件的第一块 ...
作者:不祥 ycr40张贴于2004-04-28 22:05:32.0,共阅读4309次,回复1
速算24点
 
 
刚才看到有人写的速算24点,其实我以前也写了个,(用C#写的)。输出的结果还挺多的,算法方面没多大创新,就是重复计算,里面实现了表达式类,不只能计算+—*/,位运算也行。前提是运算符是二完运算符,增加运算符很简单,只要增加相应函数,再改一点代码就行了。具体各位看看源码就可以了,里面有位运算的实现,但没有使用,大家参照加减乘除来增加位运算。
作者:annidy annidy张贴于2008-07-29 19:05:19.0,共阅读167次,回复0
白乔原创:基于字符任务的串口通讯开发包CTaskedPort
 
 
做过串口通讯的VCer肯定都熟悉MsComm控件和CodeProject上的CSerial。也许更多的程序员更愿意使用不需要控件的CSerial。但是不幸的是,CSerial类仅仅完成对底层串口通讯的封装,有时候并不如MsComm控件好用。 CSerialPort为bluejoe在CSerial基础上开发的类,支持开启事件监视线程。CTaskedPort为CSerialPort的派生类,它支持基于任务的事件处理。 用户发送一条命令(如:AT<cr>),可能就需要等待串口的回应(如:OK)才决定做下一步,这个AT命令其实就是一项任务(CPortTask),任务的结束一般需要用户指定关键词(如:OK或者ERROR)。CTaskedPort自动将命令和关键词列表封装成一个任务。本包主要包括以下几个类: CSerialPort:类似于CSerial的类,类声明如下: class CSerialPort { public: void AssertConnected(); CWinThread * GetListener(); CString ReadAll(); CWinThread * EnableListener(BOOL bEnable = TRUE); BOOL SetDCB(DCB * pDCB, int nHandshaking); ...
作者:不祥 bluejoe张贴于2004-03-04 15:11:50.0,共阅读7248次,回复15
对话框 上放置 很多的 控件,
 
 
对话框 上放置 很多的 控件,很好的示例
作者:heartofdra heartofdra张贴于2007-05-28 20:50:50.0,共阅读2909次,回复7
snoopy每日一译-CDialogSK 一个可以设定皮肤的对话框类
 
 
该类从CDialog继承。它支持以下特性: 1、如果在windows2000或windowsxp下运行,你可以选定任何色彩作为透明色。 2、如果在windows2000或windowsxp下运行,整个对话框可以半透明(translucent)。 3、可以加入一个Bitmap作为背景。Bitmap可以是资源,也可以是外部文件或一个位图的句柄。 4、可以设置对话框的风格:标题、居中、伸展;调整对话框的大小为位图的大小。 5、可以按对话框的任何位置移动它,也可以禁止移动。1、在你的工程中加入CDialogSK.h和CDialogSK.cpp 2、将你的对话框类的头文件(.h)和源文件(.cpp)中所有"CDialog"替换为"CDialogSK" 3、在你的对话框类的头文件(.h)中加入#include "CDialogSK.h" 译者注:原文2和3点的顺序相反,但自动替换时会出问题。 4、如果你计划使用位图作为背景,请将对话框的Properties(属性)-Styles(风格)设定为 style=popup,border=none,并将Title Bar的检查框置为不选中。 5、在OnInitDialog的最后加入一些代码如下例子: BOOL CSkinDialog_DemoDlg::OnInitDialog() { ... EnableE ...
作者:不祥 ycr40张贴于2004-04-21 14:16:14.0,共阅读3796次,回复5
蓝风习作: VC中ADO 连接数据库保存显示JPG图象
 
 
void CRMSDlg::OnButton_in() //从库中提取并显示 { // TODO: Add your control notification handler code here try { // "pic" 是字段名,该字段保存着 OLE 对象 long nSize = m_pRecordset->GetFields()->GetItem("pic")->ActualSize; // 获取字段 "pic" 的当前单元的大小(在分配内存空间时要用到) if(nSize > 0) { _variant_t varBLOB; varBLOB = m_pRecordset->GetFields()->GetItem("pic")->GetChunk(nSize);// 读取 OLE 对象 --> varBLOB if(varBLOB.vt == (VT_ARRAY | VT_UI1)) { if(BYTE *pBuffer = new BYTE [nSize+1]) // 申请必 ...
作者:不祥 bluewind张贴于2007-10-14 13:10:18.0,共阅读1472次,回复3
CListCtrlTest
 
 
...这个主要是对CListCtrl的从新封装,主要是能够对每个栏中加入图片和文字,另外图片在拦中出现的位置根据配置文件去决定,这个是我对自己封装的类的测试,直接用的是原代码进行的,可执行程序中几个button中都是对外的接口
作者:在路上 hurry281张贴于2008-05-16 12:05:22.0,共阅读451次,回复1
guilib fo vs2005
 
 
...最新的guilib1.1.5是在vc6下的,上传一个vs2005的版本。
作者:悠悠 lightevil张贴于2007-12-06 14:51:00.0,共阅读1233次,回复3
snoopy每日一译-操作EXCEL和符号分隔文本的类CSpreadSheet
 
有些时候我们希望将输出的数据存到EXCEL文件或一些符号分隔文本文件(像逗号分隔、Tab符分隔)。CSpreadSheet类封装了对这些文件的读写操作。CSpreadSheet类的目标是简单易用,其主要的特性如下: 1、构造一个新的EXCEL文件或符号分隔文本文件,并在其中写如行或单个的单元。 2、读取行、列或单个单元。 3、覆盖、插入或追加行。 4、将已存在或新的EXCEL文件转化成符号分隔文本文件;反之亦然。 操作EXCEL和符号分隔文本的类CSpreadSheet by:Yap Chun Wei 2002.2.19 from:codeGuru 翻译:snoopy 环境:vc++,NT4,win2000,winxp,win95/98 介绍: 有些时候我们希望将输出的数据存到EXCEL文件或一些符号分隔文本文件(像逗号分隔、Tab符分隔)。CSpreadSheet类封装了对这些文件的读写操作。CSpreadSheet类的目标是简单易用,其主要的特性如下: 1、构造一个新的EXCEL文件或符号分隔文本文件,并在其中写如行或单个的单元。 2、读取行、列或单个单元。 3、覆盖、插入或追加行。 4、将已存在或新的EXCEL文件转化成符号分隔文本文件;反之亦然。 在阐述本类的个类函数之前,我们先看看本类的一些限制条件: 1、需要 ...
作者:Yap Chun Wei ycr40张贴于2004-04-25 09:19:43.0,共阅读6073次,回复6
snoopy每日一译-在MFC和ATL工程中加入GIF动画
 
 
snoopy每日一译-在MFC和ATL工程中加入GIF动画 by:Oleg Bykov 2001.12.7 from:codeGuru 翻译:snoopy 环境:vc6 win95 win98 nt4 win2000CPictureEx的目的是为了支持JPEG和GIF格式的图片。使用OleLoadPicture函数和IPicture接口不难显示静止的图片,但是处理GIF动画又是另外一种情形了。 在网上翻箱倒柜搜寻一番后,我发现只有一个可用的免费选择:George Tersaakov发表在CodeGuru上的COM组件。不幸的是,在我测试的一些GIF中,发生了错误。当然,我可以购买一个第三方的库,但那样的话,我将为一些我不需要的功能付款。因此,我决定尝试编写我自己的类。基本的出发点是将一个GIF动画分成多个帧,然后用熟悉的OleLoadPicture和IPicture组合显示它们。彻底读完GIF87a和GIF89a规范,我写了这个类。需要注意的是:CPictueEx不仅可以显示GIF(包括GIF动画),还可以显示JPEG、BMP、WMF、ICO、CUR(所有OleLoadPicture能辨别的)。后来,我写了其ATL版的类。怎样使用MFC版的CPictureEx: 1、在你的对话框中加入一个静态文本控件(Static Text)或图片控件(Picture Control ...
作者:不祥 ycr40张贴于2004-04-22 08:45:50.0,共阅读8005次,回复9
对话框上的 窗口分割,鼠标可调整
 
 
...对话框上的 窗口分割,鼠标可调整
作者:heartofdra heartofdra张贴于2007-05-28 20:59:38.0,共阅读2100次,回复2
构建Delaunay三角网的VC源程序
 
 
void CDelaunayView::OnDelaunay() { // TODO: Add your command handler code here CDelaunayDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if(!pDoc->PointList->GetCount()) { char str[100]; ostrstream osr(str,100); osr<<"请用鼠标左键在窗口里选择要进行三角剖分的顶点"<<'\n' <<" 谢谢合作"<<'\0'; CString output(str); MessageBox(output); return; } PointCls *p1, *p2, *p3; POSITION pos4, pos5; createFirstTri(pDoc->PointList, pDoc->TriList); pos4 = pDoc->TriList->GetHeadPosition(); TriAngle* pTriSeed = (TriAngle*)pDoc->TriList->GetAt(pos4); p ...
作者:cxklgm (Thomas) iter张贴于2007-03-19 13:09:58.0,共阅读3916次,回复8
实现Outlook样式的列表框
 
 
Outlook样式的列表框
作者:不祥 bluejoe张贴于2004-05-01 00:57:23.0,共阅读3177次,回复2
邮件发送类CSMTPConnection
 
CSMTPMessage testm; testm.AddMultipleRecipients(_T(" PJ Naughter < pjn@indigo.ie > , My Boss <someboss@company.com> ; Joe <joe@ms.com>")); //Create the SMTP connection CSMTPConnection smtp; //Connect to the server if (!smtp.Connect(_T("127.0.0.1"))) { CString sResponse = smtp.GetLastCommandResponse(); TRACE(_T("Failed to connect to SMTP server\n")); return FALSE; } //Create a test message CSMTPMessage m; CSMTPAddress From(_T("Some Person"), _T("someone@yourdomain.com")); //Change these values to your settings m.m_From = From; CSMTPAddress To(_ ...
作者:不祥 bluejoe张贴于2004-04-30 13:39:03.0,共阅读2460次,回复1
动画图标
 
 
...左上角的图标是动画显示的
作者:heartofdra heartofdra张贴于2007-05-28 20:25:50.0,共阅读2147次,回复5
outlook bar
 
 
...outlook bar
作者:heartofdra heartofdra张贴于2007-05-28 21:58:35.0,共阅读1339次,回复1
vtkexample:读入模型和图像
 
 
一个用vtk写的小程序,可以读入多种格式的模型和图像。
作者:彗星闪过 dingdongliu张贴于2007-04-13 10:30:30.0,共阅读2888次,回复7
tab ,分割
 
 
...tab ,分割
作者:heartofdra heartofdra张贴于2007-05-28 22:41:55.0,共阅读2025次,回复3
DlgAndButtonOwnerDraw
 
 
bmpDlg和bmpButton实现登陆界面
作者:yunti yunti张贴于2007-12-08 21:33:47.0,共阅读863次,回复0

页次: 1/4页 记录总数80 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :