2007年8月31日星期五

军训

这几天,交大的操场上,来了批学生在军训
起来很早,个个都扯着嗓子喊,唉~~,不是一般的吵,还好白天上班。
有个朋友头都被吵大了,那天听到只狗叫,连说“听到狗叫,都当是军训了”
真是汗啊!!!

BTW:现在大学生不是沉迷游戏,生活很没有规律吗,一年搞一次军训倒是不错的主意

2007年8月29日星期三

.Net 中使用非托管DLL

(由于EXPRES版不可以创建DLL,只能拿CB来创建DLL做测试了)

1,使用CB编写一个DLL
extern "C" void __declspec(dllexport) __stdcall HelloWorld(const char *pStr,
double &pReData,
char pReStr[100]
)
{
MessageBox(0, Format("Hello:%s",ARRAYOFCONST((pStr))).c_str(), "Info", MB_OK + MB_ICONINFORMATION);
pReData = 1234567;
strcpy(pReStr,"Hello From Dll");
}

2,把编译好的DLL放到工程的BIN目录下的Release或Debug目录下
3,在类中声明(using System.Runtime.InteropServices;)
[DllImport("TestDll.dll")]
public static extern void HelloWorld(string pStr,ref double pRdata,StringBuilder pRstr);
4,使用
double tData = 11;
StringBuilder tStr = new StringBuilder();
HelloWorld("Your Name", ref tData, tStr);
MessageBox.Show(String.Format("Double:{0} String:{1}",tData,tStr.ToString()));

附:
1,如果是引用类型(或指针),使用ref来声明变量
2,需要从参数中传出char*类型是,那就要用StringBuilder
3,回调使用delegate

public delegate bool CallBack(int hwnd, int lParam);
public class EnumReportApp {
[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);

public static void Main()
{
CallBack myCallBack = new CallBack(EnumReportApp.Report);
EnumWindows(myCallBack, 0);
}

public static bool Report(int hwnd, int lParam) {
Console.Write("窗口句柄为");
Console.WriteLine(hwnd);
return true;
}
}
BTW:
因为一直过着深居简出的生活,上周并没有到徐家汇去买书(懒啊),就在附近转转看看,
看到有家新华书店,进去瞅了瞅,真是令人寒心,偌大的一个书店,连一本开发方面的书都没有。
算了,去展会时顺带看看,买本回来。

2007年8月28日星期二

秋雨

今天29号了,外面下着雨,立秋已经过去了,应该是秋雨吧,绵绵不绝
不过还夹杂着夏天的雷声,闪电是没有了。
秋雨带来了清新的空气,也带来了些许凉意。
关闭了空调,打开窗户,透过自然的秋风,给人非常舒适,遐逸的感觉。
秋天终于来了,熬过炎炎的夏日,总算可以喘口气了。
国庆也准备开始倒计时了,漫长的"假日空缺期"也快结束了,^_^

2007年8月27日星期一

杂记

最近又很少写blog,不知道是懒惰了,还是GFW设置的门槛,上来一次真不容易
明天是猎手生日,生日快乐,祝贺一下。
幼儿园那边也算妥当了,礼拜六刚刚报了名。
第一次报名,没敢懈怠,起了个大早,哪知到班级,呵呵,抢了个沙发,汗啦。
小家伙很兴奋,到了幼儿园,就玩起了滑滑梯,跑得满头大汗。
回家的时候“我的同学,我的同学”嚷嚷个不停,好像对“同学”两个字非常兴奋和好奇。
不过,由于准备不充分,没有给小家伙留几张照片做纪念。
下个礼拜去南京看软件展会,算是公差,去看看,学习学习,希望有所收获。

2007年8月21日星期二

.NET ODBC链接Postgre

有报道说C#.NET 速成版不支持远程链接数据库,今天特地试了一下,用ODBC链接远端Postgre数据库
结果还是可以操作数据库的,其它限制我就不太关心了
说明可以使用速成版做一些数据库相关工具。


附代码:
string strCon = "DRIVER={PostgreSQL};DATABASE=demo;SERVER=192.168.0.*;PORT=5432;UID=**;PWD=**;";
OdbcConnection myConn = new OdbcConnection(strCon);
string strCom = " SELECT ***name FROM tbl_**** ";
OdbcCommand aCommand = new OdbcCommand(strCom, myConn);
try
{
myConn.Open();
OdbcDataReader aReader = aCommand.ExecuteReader();
while (aReader.Read())
{
checkedListBox1.Items.Add(aReader.GetString(0));
}
aReader.Close();
myConn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

2007年8月17日星期五

第一次家长会

幼儿园终于定下来了,虽只是分园,但也足矣,昨天刚刚接到通知,晚上便去学校拿通知书,也算庆幸了,时间卡的正好。
今天是第一次开家长会,第一次以家长的身份参加学校的活动,是李园长和总园的吴园长主持的,主要是一些入园的注意,以及幼儿园的活动,生活以及教育的介绍,总体感觉还可以。
另外就是双语教学,这是分园的第一次开办(以前是总园的试点),外籍教师教学,一天一个小时,这算是兴趣班,每月多交三百多,不过还好,可以接受,在培养性格方面会更好一些。
不怪乎有朋友惊呼:现在小孩跟过去变化很大,感觉懂的东西跟年龄不相称。
呵呵,教育环境和整体社会环境,过去跟现在真的没法比。

2007年8月16日星期四

indy10(技术贴)

从老妖(www.ccrun.com)网站上下载indy10组件,并按照网站上的安装方式进行安装
不过在安装前先卸载CB6自带的版本,并手动删除部分文件
具体文件如下(CB安装目录下):
idhttp.hpp
idglobal.hpp
idglobal.dcu
IdStack.hpp
IdSocks.hpp
IdTcp*.hpp
因为只试验了IdHttp控件,所以在使用其它控件时根据具体的错误查找冲突的文件
需要检测的文件:
1,CB报错所在的文件名(.hpp)
2,该文件中包含的头文件(.hpp)
在indy10安装目录和CB的安装目录下查找,发现有重复的文件,删除CB自带的即可

附一段试验代码(上传文件到WEB服务器)
TIdMultiPartFormDataStream* PostStream = new TIdMultiPartFormDataStream();
try{
AnsiString tFileName = "c:\\indy.lib";
PostStream->AddFormField("mark","123");
PostStream->AddFile("xx",tFileName,GetMIMETypeFromFile(tFileName));
IdHTTP1->Request->ContentType = PostStream->RequestContentType;
IdHTTP1->Post("http://127.0.0.1/WEBServer/fileupload", PostStream);
}
__finally
{
delete PostStream;
}

2007年8月14日星期二

幼儿园(续)

幼儿园的事情,终于有了下文,算是进入正常渠道了,是一件值得庆贺的事情
舅舅语:上幼儿园比上大学还难。
这也难怪,一个特殊的时期,在一个特殊的地点,办了件特殊的事情。

2007年8月9日星期四

转型

从出道到现在一直钟情于BORLAND,CB玩了有七八载了,虽不敢说透了,但做东西肯定不在话下。其间也接触过其它的语言,熟悉一点的,是JAVA,相关的是JAVASCRIPT,虽说是一门脚本语言但其相当的灵活,甚是喜爱。至于python,只是有一点了解,那是兴趣,没有实战,所以谈不上应用了。
由于工作原因所做的东西基本都是桌面应用(包括图形,网络,数据库,文件处理等),虽说CB非常适合这方面,但是知识是要不断更新的,.NET已经到了3.0了,应该说逐步成熟了,在桌面应用方面也相当不错,记得有一次看朋友用.NET做了一个图形应用,有相当的水准,代码也相当的优雅。不断充实的库,给了开发的相当大的方便性。
经过一段时间的思考,思路也逐步清晰,一个完整的开发三角,即.NET,JAVA和C,渐渐浮出水面,当然这里的C指LINUX下的C应用,如果能够娴熟的整合这三个应用,对于企业级的开发应该是莫大的帮助。
.NET做桌面应用,至少现在,应用做的最好的还是WINDOWS,这是不可否认的,像EXCEL,WORD,都有相当的市场,图形,数据库,XML,都实现的不错,对于这块,我需要继续的去挖掘,学习。.NET下的语言很多,而且都通过中间语言进行相同,各个击破,不如寻找一点,C#和JAVA在语法上很想像,先前也有过一段时间的学习,我想就C#最合适了。
JAVA对于WEB服务来讲,自然最合适,庞大的开源社区给予JAVA无穷的力量,各式各样的应用层出不穷,性能也是相当的稳定,java的应用也做过一些,下一步的学习应该侧重于各种架构和标准的学习。
C,哈哈,接触的第一个语言就是它,我想没有比C更合适LINUX方面的开发,让C来做一些底层的调用,弥补JAVA的不足,我的目的不是C这门语言,因为C本身是简单的,我的目标是LINUX的应用开发,包括网络,进程,线程等。
虽说语言是相通的,但是库是不同的,适合的应用场景是不同的,这些都需要我去一一熟悉,了解,并合适的应用它们,只有这样,
才有资格成为一个优秀的架构设计师。
目标已经明了,转型已经开始...

2007年8月4日星期六

8.4聚会

礼拜六的雨确实够长,足够等了一个多小时,幸好从朋友家出发,还不算太远,不过还是迟到了,除TR老大,偶是最后一个了。
猛禽跟照片还差不多,令狐是胖了,害的我最初还真没认出,惭愧。MIKE比我想象的要胖一些,经常语出惊人的他倒是不象搞开发的。老鼠和猫倒是还好,言语也少很多,特别是猫,很文静的坐在那里,直到聚会结束。女王是不改GTALK的风格,牟利的言语和超联想的思维,真是令人佩服,研研倒是中规中矩,不过本轮聚会的最强发言还是她的那个“中国有煤矿么”给摘去了。
TR满牛B的,所谓的“上下文”真是令人叹为观止,超敏捷的思维和超强的肢体语言,搞得整个聚会的笑声不断,是一个具有很强感染力和号召力的演说家。
不过QQ,猎手和jessie的缺席,倒是留下一个遗憾,聚会差不多11点才结束,离开时,整个酒店已经空荡荡的了。
想不到程序员的聚会也有如此精彩,“群里有TR,聚会也疯狂”。

2007年8月3日星期五

36元

36元对于在上海生活的朋友来说,太微不足道了,哈哈,我以为我再也不会有口袋剩5元的日子了
从上个礼拜四送LP孩子回娘家避暑,口袋就剩下36元,卡里也就剩下几十块,被我买药刷掉了。
到批发市场买了一捆挂面(我从来不在菜场买挂面),每天以面条度日,够惨的,不过,也满好,方便简单,中午就在公司改善改善伙食,呵呵。听说面条吃多了,容易发胖,所以买菜时就多买些,最喜欢生菜下面条了,一两块钱的生菜就能把你吃撑着了。
幸亏靠蔬菜批发市场,不然这三十多块老早就消耗殆尽了。
昨天手机显示成功赎回,终于可以缓口气了,整整一个礼拜,数数,口袋还剩五,六块钱了,几次想向朋友借,还是忍住了,如果再不成功,可真的要借钱度日了。
耶~~,胜利渡过艰难的日子。
呵呵,值得回忆的一个礼拜,还是那句老话,有钱的要当没钱的过,节约很重要,由简入奢易,由奢入简难啊。