隨筆 - 175  文章 - 202  trackbacks - 0
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          第一個Blog,記錄哈哈的生活

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Java links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          最先遇到的問題是編譯的問題,我覺得環(huán)境對于一個新手有致命的阻礙作用。可能有人會說,去  google 一下不就完了,可是,實際上新手可能根本就不知道要 google 什么,我學 c 很多次放棄基本上都是環(huán)境原因。

          這次弄 c 主要是為了和 lua 腳本語言集成,其實用 java 也有得選,luajava 不失為一個好的選擇。但是長久以來的小體積什么都不依賴就能運行的 c 程序(.exe)文件對我很有吸引力,因為發(fā)布 java 程序就意味著要伴隨十幾M的jre(哪位知道不用jre的,請務必教教在下),所以,這次決定了,學習 c!

          IDE 嘛,就選擇了 CDT,實在是太習慣eclipse了,然后就是用 Programing in lua 中copy個例子下來,編譯。我靠,錯誤,想了想,把 lua 的那些頭文件加進來,把 lib 目錄也加進來,我靠,還是編譯不過,崩潰了,放棄。

          sigh,c編譯是我永遠的痛!

          一天在公司里,突然想起有個同事是弄 c 的,問問他吧。他人好熱情,給我講了好多。終于明白了,不僅要把 lib 目錄加進來,還要指定具體的 lib 文件名字,編譯通過,迎來了全新的世界。

          經過一段時間的亂弄,終于如愿的把程序編譯成動態(tài)鏈接庫(windows下的dll),引入到 lua 里,插曲:lua 原來引入動態(tài)鏈接庫是全局的 function 叫 loadlib ,我靠,升級到 5.1 竟然改成了 package.loadlib,害我 google 了半天。不過其實 5.1 的 changelog 里是說了的,^_^

          我的 lua 終于可以調 c api 了,快樂之情無法表達??!

          來,再做一個使用 c 訪問網頁的功能,找了半天,決定使用 wininet 庫,跑到 ms 的 msdn 上一頓猛找啊,終于,皇天還不負我這個學c有心人,終于在一個 xx 角落里找到了 wininet 的 api,我,我終于可以用他連網了!

          經過一會兒的奮斗,終于,從 http://localhost:8080/index.html 中,把自己 tomcat 的主頁訪問了出來,快樂的瞬間!
          馬上就發(fā)現(xiàn)這個程序有間歇性失憶,一會兒好用,一會兒不好用。共發(fā)生過以下幾種失憶情況:

          1、把代碼 copy 到一個函數中,在 main 調用這個函數,程序運行失??!
          2、刪除了調試用的 printf 方法,程序運行失?。?br /> 3、夸張,這個是最夸張的!把 BOOL b = HttpSendRequest(req, NULL, 0, NULL, 0); 前面的 BOOL b = 去掉,只留下 HttpSendRequest(req, NULL, 0, NULL, 0);,失?。。。。。。。∵@樣居然都失??!加上去就好好的運行。精神一度處于崩潰的邊緣,眼睛里的血絲一度超過狼人!

          左思右想,左改右改,死都不行!

          一個聲音高叫著:放棄吧,玩會游戲!

          放棄了,md,再也不被 c 玩了,俺要玩俺的 java 去,下載 luajava 去,不理你了!
          臨行前,我戀戀不舍地看了一眼俺的c代碼,我靠,突然發(fā)現(xiàn)這 xx 代碼居然有個問題,這真是豁然開朗啊。

          原來是。。。(省略一萬字)

          LPDWORD n; // LPDWORD 是個 unsigned long *

          沒初始化!
          天啊,這點問題就讓我找了這么久啊,我改。
          DWORD a = 0;
          LPDWORD n = &a;

          一切正常。

          世界終于清靜了……
          posted on 2007-09-06 21:50 哈哈的日子 閱讀(1153) 評論(3)  編輯  收藏

          FeedBack:
          # re: 最近學習 C 編程的心得,為了和 lua 集成,把俺喜歡的 java 先放下了。^_^ 2007-09-06 22:01 BlueSunshine
          行啊,文筆見長啊!
          怪不得這幾天下班回家就吵吵著吃晚飯,吃完了就在電腦前面發(fā)呆,瞅都不瞅我一眼,原來是等著盼著見C呀!
          c再好,能有我穩(wěn)定?!天天雷打不動地伺候你老人家一日三餐(休息日減半)啊!  回復  更多評論
            
          # re: 最近學習 C 編程的心得,為了和 lua 集成,把俺喜歡的 java 先放下了。^_^ 2009-10-14 22:11 op
          汗啊,這兩口子......  回復  更多評論
            
          # re: 最近學習 C 編程的心得,為了和 lua 集成,把俺喜歡的 java 先放下了。^_^[未登錄] 2011-03-24 06:47 sailor
          用指針 要么直接賦值,要么開辟足夠的緩沖區(qū)并賦值
          LPDWORD = (LPDWORD)new BYTE[4];  回復  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 厦门市| 焉耆| 武邑县| 勃利县| 呼图壁县| 察哈| 天长市| 沭阳县| 余庆县| 龙游县| 威远县| 八宿县| 高清| 林口县| 金华市| 壤塘县| 两当县| 通榆县| 洮南市| 邯郸市| 临西县| 临汾市| 鄂托克前旗| 新龙县| 辉县市| 东阳市| 抚顺县| 龙陵县| 潜江市| 保德县| 武清区| 北碚区| 宜阳县| 苗栗县| 黔西县| 台东市| 泰顺县| 珠海市| 姚安县| 清苑县| 勃利县|