为Source Insight添加SourceSafe的控制命令
Submitted by gougou on Tue, 2006-10-03 16:31- 首先确保你的Source Insight的ProjectSettings中的Project Source Folder和你的代码所在的根目录一致。
- 然后,点击Options / Custom Commands来添加自定义的版本管理命令添加Check In 命令
- Run中输入命令行SET SSDIR=\\XXXX\VSS; SET SSUSER=chen; ss cp \;ss cp ProjectFolderName;ss Checkin $%r,替换ProjectFolderName为你的项目所处的VSS的目录名,设定SSDIR为SourceSafe的配置文件所处的共享目录名。
- Dir输入框中输入%d
- 去掉Pause When Done选项
- 依次添加Check out,Get Last Version等命令即可
游客系列之四:注册机制与破解(转贴CNSW)
Submitted by gougou on Tue, 2006-10-03 11:44游客系列之四:注册机制与破解
国庆,喝了半瓶茅乡宴,52度,没醉,闲着没事,继续游客系列。
除非你故意想让破解者破解你的软件,或者对破解根本不在意,不然对防破解还是花一点心思的。不过故意要破解者破解软件的也可以看这篇游客系列,浪费不了你的时间——反其道而行即可。
防破解比之两年之前容易多了——我感觉,因为大家都浮躁多了,做技术最忌讳浮躁,搞破解的既然宣称他们是在搞技术,那么这两年因为浮躁,技术下降了不少。之前阿达也发过帖子分享防破解经验,我悄悄应用了,发现很实用,最近也没有搜索我的软件的破解版情况,因为我自己也发布破解版,不过根据注册情况来看,应该是没有注册机出现。
客套话
Submitted by gougou on Sun, 2006-10-01 16:33公司里面有个销售经理,比较喜欢说客套话,见到公司同事的父母总喜欢说“您生了个好儿子”之类的,见到同事的老婆就喜欢说“你找了个好老公”,结果前几天碰到我老婆,说了一句“你可生了个好儿子”。
Antlr中的Semantic Predicates
Submitted by gougou on Fri, 2006-09-15 19:56有些时候由于Antlr不是真正的LL(K)算法,会产生二义性的代码,这时需要我们手工来编写LookAhead的判断语句。这就用到了Semantic Predicates
语法结构为{XXXX}?,示意如下
盛名之下其实难副的《Microsoft .NET框架程序设计》
Submitted by gougou on Wed, 2006-09-13 17:01Applied Microsoft .NET Framework programming这本书是著名的Jeffrey Richter同学写的,中文译名《Microsoft .NET框架程序设计》号称在Amazon上排了好长时间榜首的一本牛书,当年刚出来的时候,我花了将近100块钱买到的,希望看完之后能够让我框架设计水平突飞猛进一下,结果是翻了几天也没发现这本书跟框架设计有什么狗屁关系,感觉好像关公战秦琼一样。从此,这本书就再也没有被窝翻开过,总的来说我的看法就是 Jeffrey Richter花了好多时间,费了很大心思写了一本你也挑不出什么错来,但是就是特别没有用的跟框架也不沾边跟应用也不沾边的一本书来。注意我这里说的特别没有用,指的是你把它上面写的东西全都研究明白了,你也没法用它挣到一顿饭钱,就好像屠龙之术一样,技术很眩,可惜没有龙来让你屠。
配置Apache的Proxy功能
Submitted by gougou on Wed, 2006-09-13 12:47 修改http.conf 设定加载Proxy相关的模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
如果要允许https代理的话,还要加载proxy_connect模块
LoadModule proxy_connect_module modules/mod_proxy_connect.so
然后设定允许Proxy功能
# Proxy Settings
ProxyRequests On
发现Apache的配置真是非常简单
移植Sqlite到Vxworks(2)
Submitted by gougou on Tue, 2006-09-12 16:17今天有空,继续Port Sqlite,这次用的OS没有文件系统,只有一块64M的Flash内存。所以,把Sqlite对文件操作的IO函数都改成对Flash内存地址的访问。然后,将一个Sqlite 测试用的数据库传到Flash内存中,
数据库很简单,只有一个Test表,有两个字段f1, f2,有两条数据1,123; 2,234
使用下面测试函数进行测试,
#include <stdio.h>
#include <sqlite3.h>
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int test_sqlite(){
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("sqlite_mem", &db);
if( rc ){
printf("Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, "select * from test", callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
printf("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}
发布Sqlite Developer 2.1
Submitted by gougou on Sun, 2006-09-10 19:54这一版本增加了以下一些功能
- 允许察看Blob字段中的Bitmap,Jpeg,Gif内容
- 将Extract Schema Wizard改进为同时可以将表的数据导出为Insert语句。
下载地址
移植Sqlite到Vxworks(1)
Submitted by gougou on Thu, 2006-09-07 20:48前一阵子想把Sqlite port到Vxworks上,一直没空。今天得到一个好消息,这次要控制的读卡器硬件还没有做好,要到这个月底才能出来,这也就意味着月底前我都会比较闲。于是,早上先是写了一下VxWorks上Sqlite使用的IO,信号量控制的Dummy接口程序,然后就是关闭绝大部分的编译选项,特别是这次用的CPU不支持浮点运算,所以要禁用浮点功能的支持。交叉编译后放到板子上Load,结果还是老报告浮点错误,看了半天程序也没发现什么问题,一个一个文件的排除试验,终于发现问题出在Sqlite默认使用64位的整型运算,可我用的CPU只支持32位的整数div和mod操作,改成32位的整数就Load成功了。