学习编程人员必读(C++为例)

该日志由 samool 发表于 2008-03-03 2:52 PM

这是俺在别的论坛看到的一篇很早的帖子,虽然俺学C++时间也不长,还是一只菜鸟,但是俺觉得下面说的不错,真的不错,同时可以免了很多坛友询问如何学习C++的口舌:
1.把C++当成一门新的语言学习(和C没啥关系!真的。);
2.看《Thinking In C++》,不要看《C++变成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看;
4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言;
5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;
6.会用Visual C++,并不说明你会C++;
7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书;
8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的;

» 阅读该日志全文...

该日志标签: c, c++, 程序, 编程, 开发

最近都在忙啥呢

该日志由 samool 发表于 2007-11-30 2:54 PM

最近这两个星期有点忙,公司事情不多,IP兼职的工作太多了,网络要更换认证系统,我们的管理系统要重新做接口,这个接口啊完全可以把人弄疯,最初用的PostGre数据库,搞好以后没多久,那数据性能不行,带上两万用户就恼火的很,然后换Oracle数据库,又重新改客户资料管理系统,由于这个系统是偶一手操刀完成的,所以修改的任务当然逃不脱,其实我比较喜欢增加新的功能,基础打的牢实,围绕主数据库进行周边功能添加比较方便,也是独立模块,再说增加新的模块还可以混点奖金,修改这东西就难说了,加班加班不说了,要想混点奖金就有点难了。

换成Oracle以后,系统还是稳定了几个月时间嘛,大概是7,8月份换的数据库,加上我们自身的资料库MSSQL,软件就要同时操作两个数据库,其实以前我用Delphi操作过Mysql不是很稳定,后来系统换PostGre数据库后,用ODBC+ADO也算搞定了,再后来用Oracle也算可以,用了一套ODAC组件吧,好像是这个名字,记不太清楚,也还是算轻松搞定,不过其中过程也耐人寻味啊,由于以前没有用过Oracle,写SQL语句的时候也犯了不少错误,比如MSSQL里边修改时间字段时,直接用引号把值括起来就可以了,但是Oracle不行,必须要用To_Date函数转换一次才可以,还有Oracle也有回滚操作,每写入一条数据后,connection组件要autocommit要设为真,添加数据,修改数据操作后也必须commit一下才行,真BT啊。

» 阅读该日志全文...

该日志标签: 程序, 数据库, 工作

无窗体无界面exe怎么做?

该日志由 samool 发表于 2007-11-08 3:16 PM

要做一个无窗体的EXE,在Delphi下有两种方法:

console application
Hide all Foms(MainForm,esc.)

1、做一个控制台程序,生成console application工程文件的办法是:File\new\other\Console Application

2、隐藏窗体,跟无窗体差不多了吧,这样做最简单。
procedure TForm1.FormCreate(Sender: TObject);
begin
application.ShowMainForm:=false;
end;

该日志标签: 无窗体, 程序, 方法, 实例

WinExecAndWait32调用外部程序,等待外部程序运行完成

该日志由 samool 发表于 2007-10-22 9:45 AM

 调用外部程序,等待外部程序运行完成,相当于Showmodal功能,呵呵

delphi代码
  1. function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;   
  2. var  
  3.   zAppName: array[0..512of char//存放应用程序名   
  4.   StartupInfo: TStartupInfo;   
  5.   ProcessInfo: TProcessInformation;   
  6.   exitCode: Dword;   
  7.   aVisibility: integer;   
  8. begin  
  9.   StrPCopy(zAppName, FileName);   
  10.   FillChar(StartupInfo, Sizeof(StartupInfo), #0);   
  11.   //给StartupInfo结构体赋值   
  12.   StartupInfo.cb := Sizeof(StartupInfo);   
  13.   StartupInfo.dwFlags := STARTF_USESHOWWINDOW;   
  14.   if Visibility then  
  15.     aVisibility := 1  
  16.   else  
  17.     aVisibility := 0;   
  18.   
  19.   StartupInfo.wShowWindow := aVisibility;   
  20.   //调用CreateProcess 创建进程,执行指定的可执行文件   
  21.   if not CreateProcess(nil, zAppName, nilnilfalse  
  22.     , CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS   
  23.     , nilnil, StartupInfo, ProcessInfo) then  
  24.     Result := -1  
  25.   else  
  26.   begin  
  27.     //等待可执行文件退出   
  28.     WaitforSingleObject(ProcessInfo.hProcess, INFINITE);   
  29.     //得到进程终止状态码   
  30.     GetExitCodeProcess(ProcessInfo.hProcess, exitCode);   
  31.     result := Exitcode;   
  32.   end;   
  33. end;  

该日志标签: 函数, 程序, 进程, 运行, winexec