随笔 - 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 哈哈的日子 阅读(1145) 评论(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];  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: