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

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

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Java links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

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

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

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

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

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

          經過一段時間的亂弄,終于如愿的把程序編譯成動態鏈接庫(windows下的dll),引入到 lua 里,插曲:lua 原來引入動態鏈接庫是全局的 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 的主頁訪問了出來,快樂的瞬間!
          馬上就發現這個程序有間歇性失憶,一會兒好用,一會兒不好用。共發生過以下幾種失憶情況:

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

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

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

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

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

          LPDWORD n; // LPDWORD 是個 unsigned long *

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

          一切正常。

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

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

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


          網站導航:
           
          主站蜘蛛池模板: 密云县| 奇台县| 石屏县| 芦山县| 江城| 蓝田县| 锦州市| 沙坪坝区| 逊克县| 罗江县| 惠来县| 美姑县| 玉树县| 镇雄县| 疏勒县| 仲巴县| 策勒县| 黄陵县| 镇平县| 武陟县| 奉新县| 西丰县| 筠连县| 江陵县| 南皮县| 渭南市| 安庆市| 集安市| 水富县| 仙居县| 老河口市| 沁水县| 吴旗县| 双江| 芦山县| 克拉玛依市| 嘉义县| 襄汾县| 成武县| 巴东县| 龙里县|