2008年04月24日

Linux C编程实战——光盘下载

linux c.gif

今天终于收到了Linux C编程实战这本书,在网上看这本书的目录感觉还行就买下了看看,以后就要奋战在Linu平台下,作为一个开源Ren。也请各位Linux编程的高手多多指点。
点击此处下载Linux C编程实战光盘

  • » 阅读全文...
  • 2007年12月12日

    为什么每个程序员都要学C语言的五个理由

    1. C语言不是面向对象语言。因为这一点,任何学习C语言的人必须学会用函数思考问题。当你真正的去学习一门面向对象语言时,就会有C语言的函数学习基础去对比。这会使学习面向对象编程更容易理解和更有乐趣。
    2. 用C编程就像进行智力体操。你要顾及到每一件事情,而这在很多其他语言中他会为你处理。你要管理指针,内存分配,和内存回收。你要明白如何处理串,还有动态数据。在其他语言中,所有这些对你来说是隐藏的。你不知道他们如何运行,更不用说改变他们的运行方式了。你得到了使用的便利,失却了对程序的控制和速度。很多情况下,这是笔值得的买卖。其他的情况下就不是这样了。
    3. 不同情况下你会使用不同的编程语言。某些情况下要求使用Lisp,其他的要Java,还有别的要C++。但是C是你坚实的基础。你可能不会使用它做一些项目,但是它会帮助提高你的能力,熟练的用其他语言编程。
    4. 除了汇编语言之外,C代码生成的程序比其他任何语言生成的程序来得更小和运行更快。那么为什么不学汇编语言呢?汇编是一门学了很有用的语言,但是它没有C那样的可移植性,并且其他流行的语言比如JAVA的语法是基于C的,而不是汇编。你仍然应该学汇编,但它并不会证明它会像学C那样有用。
    5. 如果你想要写一个视频游戏引擎或操作系统,你会需要C。你不能使用C#, Java, 或 Basic来完成这些编程任务。
  • » 阅读全文...
  • 2007年10月28日

    C++实现远程关机

    记得刚学C++的时候,喜欢研究API,当时同事有一个高手,写了段代码,我在写程序的时候,莫明妙的,机器突然关掉了!我正在纳闷的时候,我听到了他的奸笑!   原来是他干的,后来我研究了好久InitiateSystemShutdown这个API函数,了解被作弄的原理了,因为我的机器加入了Windows的域,而且域的超级用户我也设置成对我本机有Administrator权限,所以,他才有机可乘!后来写了以下这段代码,让他也在工作的时候被我远程关机,爽啊!学了新东西,又以其人之道还施彼身!
       //ShutDownSystem函数是关本地,自己的机器   
    BOOL CAlarmClockDlg::ShutDownSystem()    {    HANDLE hToken;    TOKEN_PRIVILEGES tkp;    // Get a token for this process.    if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))    AfxMessageBox("OpenProcessToken");    // Get the LUID for the shutdown privilege.    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);    tkp.PrivilegeCount = 1; // one privilege to set    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;    // Get the shutdown privilege for this process.    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);    if(GetLastError()!= ERROR_SUCCESS)    AfxMessageBox("AdjustTokenPrivileges");    // Shut down the system and force all applications to close.    if(!ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0))    {    return FALSE;    }    else    {    return TRUE;    }    }    //shutdownHost这个就是远程关机的C++函数了!hostName可以是机器IP,也可以是机器名字!    BOOL CAlarmClockDlg::shutdownHost(CString hostName)    {    HANDLE hToken; // handle to process token    TOKEN_PRIVILEGES tkp; // pointer to token structure    BOOL fResult; // system shutdown flag    // Get the current process token handle so we can get shutdown    // privilege.    if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))    AfxMessageBox("OpenProcessToken failed.");    // Get the LUID for shutdown privilege.    LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);    tkp.PrivilegeCount = 1; // one privilege to set    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;    // Get shutdown privilege for this process.    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);    // Cannot test the return value of AdjustTokenPrivileges.    if (GetLastError() != ERROR_SUCCESS)    AfxMessageBox("AdjustTokenPrivileges enable failed.");    // Display the shutdown dialog box and start the time-out countdown.    fResult = InitiateSystemShutdown("192.168.100.245", // shut down local computer    "Click on the main window and press the Escape key to cancel shutdown.", // message to user    1, // time-out period    FALSE, // ask user to close apps //注意这一段API调用!    FALSE); // reboot after shutdown    if (!fResult)    {    AfxMessageBox("InitiateSystemShutdown failed.");    }    // Disable shutdown privilege.    tkp.Privileges[0].Attributes = 0;    AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);    if (GetLastError() != ERROR_SUCCESS)    {    AfxMessageBox("AdjustTokenPrivileges disable failed.");    }    return TRUE;    }

  • » 阅读全文...
  • 2007年10月16日

    学习VC++的读书计划,给出了一些好书的电子版下载地址

    根据这些天的查阅,知道有这么几本书是这方面比较经典的书

    《WINDOWS程序设计》
    《VC技术内幕》
    《深入浅出MFC》
    《MFC Windows程序设计》

    书籍可能有多个版本,可以自己搜索一下
    http://www.shubulo.com/search.php
    下载要注册的,不爱注册也别骂,路过就好~

    Windows 程序设计 中文第五版 北大出版的
    http://www.shubulo.com/viewthread.php?tid=31288&extra=page%3D3

    C++ Primer 中文版 第三版
    http://www.shubulo.com/viewthread.php?tid=17071&extra=page%3D1
    C++ Primer  第三版习题
    http://www.shubulo.com/viewthread.php?tid=17072&extra=page%3D2

    MFC深入浅出(简体)
    http://www.shubulo.com/viewthread.php?tid=30813&highlight=MFC

    VC技术内幕第五版 可惜是英文,中文的可能过几天才会有
    http://www.shubulo.com/viewthread.php?tid=30

    MFC Windows 程序设计(第2版)中文版+书中源代码
    http://www.shubulo.com/viewthread.php?tid=31521

    不知道顺序应该是怎样的,各位给指点一下?

    参考了以下网友的回复
    1 楼mahongxi(烤鸡翅膀)(色摸)回复于 2002-07-18 20:54:32 
      first   of   all,偶不是高手。  
      如果你C++很强,可以看《深入浅出MFC》先,然后再《VC技术内目》或《MFC   windows   程序设计》,有些东西当然要记啦。

    6 楼promark()回复于 2002-11-21 12:23:48 得分 101。
    学vc,一定要学MFC,我推荐侯捷的<<深入浅出MFC>>,在本站侯捷的专栏上有下载  
    2。关于vc开发工具的使用,控件的使用,从市场上闭着眼睛找一本<>就可以了 

    7 楼guoyuzhang(怒抛头颅)回复于 2002-12-11 11:32:35 得分 0
    VC技术内幕  
    Programing   windows   with   MFC

    2 楼zhf0021(屡战屡败,屡败屡战)回复于 2002-08-18 20:18:53 得分 5
    《THE   C++   PROGRAMMING   LANGUAGE》  
      《VISUAL   C++技术内幕》  
      《深入浅出MFC》

    7 楼969209pxb(power)回复于 2002-08-18 20:56:24 得分 5先要学习C++  
      在学WINDOWS程序设计  
      再学《深入浅出MFC》  
      再学《VISUAL   C++技术内幕》  
      有问题多问,多做项目  
     

    12 楼lizhiyuan6483621(探索者)回复于 2002-08-18 22:52:13 得分 15
    从一些编程网站下载的编程经验,希望对大家有一点帮助:]  
      一些经验和体会  
       
      1、真正的程序员用C++;(一位专家说的)  
       
      2、动手去编程序;  
       
      3、动脑去思考;  
       
      4、要有良好的编程风格;  
       
      5、读书,读好书,尽量读原版书!(我反复强调这一点,读书要有选择,坚持读好书,名家出的经典书,不要浪费实践在一些粗制滥造的书上面;坚持博览群书)  
       
      6、有自己的学习计划;  
       
      7、总结自己的经验教训;(准备一个笔记本,记录错误和心得)  
       
      8、不要怕学新东西;  
       
      9、要有软件工程的思想;  
       
      10、善于发现问题,然后去寻找答案;  
       
      11、向高手请教;(要虚心直到你成为高手)  
       
      12、和同行交流;(不善于交流肯定不行)  
       
      13、懂得软件的实质,不要被千变万化的表象所迷惑;  
       
      14、真正要学习用的是编程语言和方法,不是什么库,什么类,什么工具;(学用那些什么库都比较简单,但光会这些库,我觉得还远远不够)  
       
      15、学习wiodows编程主要是学习windows   OS和win32   API;  
       
      16、有空了解一下嵌入式开发;  
       
      17、有空了解一下PDA软件开发;  
       
      18、了解一下.NET框架和C#语言,也许它是你新的衣食父母;  
       
      19、要有耐心,不要作浮躁的人;   20、对程序加注释,并保留你的老程序;  
       
      21、学到的东西越多,了解的越多,你就越接近专家;  
       
      22、有空去逛逛CSDN,那里有你很多知己;  
       
      23、要有信心成为一个优秀的程序;

    19 楼hihin()回复于 2002-08-19 20:20:18 得分 5
      c++基础语法,想扎实那,就C++   Prime.  
      然后API,  
      然后就可以应用一下,、  
      然后就可以更好一点,《深入浅出mfc》之类了。

  • » 阅读全文...