Posts Tagged 应用工具设计

WordPress Writer V1 Beta 发布

历时将近两周的编码,Wordpress Writer V1 Beta终于问世,Oh yeah~yeah

首先解释下Wordpress Writer(以下简称WPW)有什么用。

如果你喜欢在WP上写Blog同时又是一个Geek/Coder,那么相比经历过痛苦的撰写过程:

(1)需要手写HTML以便对文字进行格式化
(2)需要手写众多代码来实现插件提供的功能
(3)需要保证代码中不含&、<和>这样常见的HTML TAG,否则解析会出问题
(4)插入图片/超链接等细节处理

WPW就是一个用来快速完成上述过程的偷懒工具。说穿了,其实这个是KC为了自己偷懒而编写的Toy

因为面向的用户群是Geek/Coder,所以UI设计的足够Geek。免去了所有不必要的东西,否则就没有偷懒的价值了

下面是一个直观的UI

下面说下WPW的BIN和SRC事宜

(1)BIN传播无任何责任,除了商用(话说哪个NC会拿这个Toy去商用?)

(2)由于Proj前后经历了两个设计阶段,所以风格上(比如注释)不同的文件会有所不同

(3)由于是个人家用玩具,所以设计上还有很大欠缺,比如虽然用了多线程,但是获取图片信息仍然很慢。多线程只是保证UI不会not responding。并且由于文本框是TextBox,所以在字数上会有65536的限制。不过你完全可以创建一个RichTextBox,然后改下Name即可,因为代码保证接口一致即可工作。
ps:刚刚发布时发现TextBox貌似不支持Ctrl+A。。。还好有右键菜单。。

(4)由(3),欢迎修改SRC。但是请保留原作者信息。此SRC遵守 Apache License

已作了一些改进:

(1):修正了多次添加图片是大小设置错误的问题
(2):支持Ctrl+A全选内容

Download: WordPress Writer V1 SRC&Bin

, , , ,

3 Comments

LogToFile 1.1.0 Release

http://blog.kingsamchen.com/archives/546的新版

新版较之旧版改变如下:

1、在保留原有接口的基础上,增加了GetErrorMessage接口。此函数可以由GetLastError得到的错误代码获取错误文本说明,适合Win32平台上的开发

2、考虑到易用性,利用预处理解决掉了不同编译器之间的问题。即是说,在非Win32上,新增加GetErrorMessage接口不会被编译

值得注意的是,由于VC编译器的特殊性,预编译头无法用预处理解决,如果你不使用预编译,则直接删除相应预处理代码即可

3、由于接口函数DeleteFile与Win32 API发生名字重叠,所以新版函数接口改为DeleteLogFile,为了统一,相关函数也做出了修改

4、删去了仅VC支持的Error Stream处理的相关代码

新版函数接口如下

/**************************************************

** Project:LogToFile

** File:logfile.h

** Edition:v1.1.0 Demo

** Coder:KingsamChen [MDSA Group]

** Last Modify:2011-01-26

**************************************************/

#if _MSC_VER > 1000
#pragma  once
#endif

#ifndef _LOGFILE_C6A57B5F_C91D_4fc0_9B38_10524313FAE1
#define _LOGFILE_C6A57B5F_C91D_4fc0_9B38_10524313FAE1

const wchar_t ERRLOG_FILE_NAME[] = L"ErrorLog.log";

void LogErrorToFile(const wchar_t* pszFileName, wchar_t* pszFormat, ...);
void ClearLogFile(const wchar_t* pszFileName);
void DeleteLogFile(const wchar_t* pszFileName);
#ifdef _WIN32
typedef unsigned long ulong;
int GetErrorMessage(ulong ulErrorId, wchar_t* pszMessage, ulong ulBufLen);
#endif

static int WriteFile(const wchar_t* pszFileName, wchar_t* pszStr);

#endif

Download LogToFile_SRC

, , , , ,

6 Comments

C/C++错误日志文件读写——LogFile

RT

对于Release版本的程序来说,记录错误通常只能采用读写日志的方法解决(程序自己的日志或者系统日志),毕竟把所有错误信息用对话框(MessageBox)呈现仍然是一件值得商榷的事情

之前KC也写过类似的东西——DebugToFile。但是事实是,这个东西真的可以说是一个鸡肋

需要MFC支持
文件操作需要生成实例对象
架构设计上存在问题

于是,LogFile诞生了

和DebugToFile不同,LogFile采用单一函数接口的方式提供功能,不需要像类一样产生实例对象才能使用

另一个比较好的地方在于,LogFile采用通用/标准的设计哲学,不过很可惜,由于各种编译器间的兼容问题,未能做到100%的通用化(注意点后面说明)

LogFile提供的函数接口如下:

void LogErrorToFile(const wchar_t* lpszFileName, wchar_t* lpszFormat, …);
void ClearFile(const wchar_t* lpszFileName);
void DeleteFile(const wchar_t* lpszFileName);

LogErrorToFile支持不定参数和格式化命令,其实就是类似printf的格式化输出,并且自动在调试信息后增加一行写入时间

ClearFile清空日志文件,DeleteFile删除日志文件
Read the rest of this entry »

, , , , ,

5 Comments