隨筆 - 175  文章 - 202  trackbacks - 0
          <2011年3月>
          272812345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          第一個(gè)Blog,記錄哈哈的生活

          常用鏈接

          留言簿(16)

          隨筆分類(lèi)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          收藏夾

          Java links

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

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

          這次弄 c 主要是為了和 lua 腳本語(yǔ)言集成,其實(shí)用 java 也有得選,luajava 不失為一個(gè)好的選擇。但是長(zhǎng)久以來(lái)的小體積什么都不依賴(lài)就能運(yùn)行的 c 程序(.exe)文件對(duì)我很有吸引力,因?yàn)榘l(fā)布 java 程序就意味著要伴隨十幾M的jre(哪位知道不用jre的,請(qǐng)務(wù)必教教在下),所以,這次決定了,學(xué)習(xí) c!

          IDE 嘛,就選擇了 CDT,實(shí)在是太習(xí)慣eclipse了,然后就是用 Programing in lua 中copy個(gè)例子下來(lái),編譯。我靠,錯(cuò)誤,想了想,把 lua 的那些頭文件加進(jìn)來(lái),把 lib 目錄也加進(jìn)來(lái),我靠,還是編譯不過(guò),崩潰了,放棄。

          sigh,c編譯是我永遠(yuǎn)的痛!

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

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

          我的 lua 終于可以調(diào) c api 了,快樂(lè)之情無(wú)法表達(dá)啊!

          來(lái),再做一個(gè)使用 c 訪問(wèn)網(wǎng)頁(yè)的功能,找了半天,決定使用 wininet 庫(kù),跑到 ms 的 msdn 上一頓猛找啊,終于,皇天還不負(fù)我這個(gè)學(xué)c有心人,終于在一個(gè) xx 角落里找到了 wininet 的 api,我,我終于可以用他連網(wǎng)了!

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

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

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

          一個(gè)聲音高叫著:放棄吧,玩會(huì)游戲!

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

          原來(lái)是。。。(省略一萬(wàn)字)

          LPDWORD n; // LPDWORD 是個(gè) unsigned long *

          沒(méi)初始化!
          天啊,這點(diǎn)問(wèn)題就讓我找了這么久啊,我改。
          DWORD a = 0;
          LPDWORD n = &a;

          一切正常。

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

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

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 株洲县| 普定县| 土默特左旗| 峨山| 健康| 临海市| 大同县| 苏尼特左旗| 广平县| 贺兰县| 临邑县| 星座| 彰化县| 宁津县| 壤塘县| 阿瓦提县| 会昌县| 广水市| 堆龙德庆县| 汾西县| 浦东新区| 佳木斯市| 太湖县| 松阳县| 呼玛县| 九龙城区| 满城县| 绿春县| 老河口市| 怀远县| 当雄县| 常州市| 新晃| 婺源县| 寻甸| 兴和县| 孝感市| 定西市| 准格尔旗| 嘉禾县| 江安县|