易截截图软件、单文件、免安装、纯绿色、仅160KB

以XML文件存储配置数据的技术实现,c++

一般新手通常只是使用类似的Xerces,
TinyXML之类的XML解析xml,这种方式实际上很浪费时间,自己编写很多代码也容易出错。因为,他们经常要写一个XML对象Entity的类,并附着一堆对象解析的code。工作量比较大。使用XML
Schema工具,XSD设计工具,然后通过工具生成EntityClass和Paser
class。我不知道这种技术确切的起源时间,但是我知道这种用法用法已经被使用有7、8年了吧。以前写程序,用INI保存配置数据,数据类型还要自己定义,当然也要写一堆的code去解析。
这里推荐的思路是:设计XML
Schema,然后使用工具自动生成代码,编写简单的接口供上层App调用。虽然这种XML保存配置数据的方式保密性不好,但是我们假设有一天XML
schema可以直接转换成某一种数据库schema,将配置数据保存到数据库中并依赖数据加密机制保证数据的安全性。这是后话,暂且放放吧。
设计XML Schema的工具有:MS XML tool, XSD from http://wiki.codesynthesis.com/Using_XSD_with_Microsoft_Visual_Studio
,
还有很多商业工具,如XMLSpy, Oxygen XML Editor.
codesynthesis
XSD 是一个开源的工具,来自Berkeley,
从编译选项看,支持wchar *,
但是通过实践和测试,不能很好得读取包含非ASCII码的文件。如果让应用程序支持_unicode选项的话,会有compiling error.来自 XSD
lib的 print函数。匪夷所思。可能人家不需要读取别国文字吧。
XMLspy 2009 功能很强大,可以设计XML schema, 可以转换DB Schema=> XML Schema,
可以帮你生成一个XML文件,可以根据 XML Schema生成 Java/C++/C# 代码,包括Entity Class,
存取机制甚至测试代码。有一点比较值得称赞就是:在生成代码的前,它让你选择选择XML access library, 如MS XML,or
Xerces。如图:
如果选择 Xerces,  默认情况下,产生的代码是Xerces_2
系列的。如果你使用的是Xerces_3系列的话,对不起有编译错误,因为Interface 在从Xerces2到升级的时候被改写了。
当然,XMLSpy生成的代码也是支持跨平台的,只需要添加一些make
file即可。XMLSpy生成的代码也是支持非ASCII文字的,在编译前填加_MBCS到project
setting中,并将你的XMLfile保存成UTF-8格式。注意我们这里根本就没有提起_unicode或者Unicode.
我这里不说具体原因了。自己体会吧。
Oxygen XML Editor
我这里为什么会提起他呢?主要原因是,我想将一些存储在数据库的表及数据convert到XML中。我使用的是PostgreSQL


相关文档:

谈C/C++指针精髓(一,二,三)

[
摘要] 
 
指针是
C和
C++语言编程中最重要的概念之一,也是最容易产生困惑并导致程序出错的问题之一。利用指针编程可以表示各种数据结构
, 通过指针可使用主调函数和被调函数之间共享变量或数据结构,便于实现双向数据通讯;并能像汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了 ......

从xml读取游戏配置信息或保存

 /*
* 主要作用;
* 从xml读取游戏配置信息或保存
*/
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Reflection;
namespace Game
{
class Config
{
Ke ......

检查xml错误

把xml拖到IE里就找到错在哪里了
如下:
The XML page cannot be displayed
Cannot view XML input using style sheet. Please correct the error and then click the Refresh button, or try again later.
文档的顶层无效。处理资源 'file:///D:/Tomcat 5.5/webapps/myapp/WEB-INF/web.xml' 时出错。第 1 行,位置: 44 ......

C/C++中关于遍历文件夹的操作

#include <windows.h>
#include <stdio.h>
void FindFileInDir(char* rootDir, char* strRet)
{
char fname[256];
ZeroMemory(fname,256);
WIN32_FIND_DATA fd;
ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));
HANDLE hSearch;
char filePathName[256];
char tmpPath[256];
ZeroMemory(filePathNa ......

C/C++中回调函数初探

对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。
  什么是回调函数?
  简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号