opengl试验代码总结-1
这两天终于把网上下载的opengl实验代码的框架敲完了 。代码不算多,才不到400行 。编译链接了一下,解决了一些问题,在此总结 一下 。
编辑器 :Emacs
编译器 :cl.exe
连接器 :link.exe
工程构建 :Nant
编程语言 :C
其他:opengl+win32 api
由于所有东西都是重头开始学习,再加上时间抓得也不紧,造成了需要解决的问题很多,进度也很缓慢,希望通过努力能改变这种情况。
首先贴出框架代码
总结:
1.Emacs:Emacs的使用还处于初级阶段。目前熟练掌握的快捷键如下:
C-x C-f:打开文件
C-x C-s:保存文件
C-x b :在minibuffer中列出所有的buffer
C-x C-b:在新窗口中列出所有buffer
M-x speedbar:打开speedbar,在编辑C语言时可以做为函数列表
C-x o:在窗口见跳转
C-x 1:最大化光标所在窗口
C-x 2:横向建立新的窗口
C-x 3:纵向建立新的窗口
C-x h:全选
C-x n:光标下移
C-x p:光标上移
C-x f: 光标前移
C-x b:光标后移
C-M-/:代码格式化
M-/:补全单词,被我修改为C-Return,具体修改方法为:
C-h k:查看某一个热键绑定在哪个命令上,得到命令的名称。
M-x global-set-key:点击C-Return,再输入刚才查找得到的命令。
C-x esc esc:现在刚才的命令,将这个命令放入init.el中即可。
C-s:向后查找单词,查找下一个,继续C-s,前一个:C-r
C-r:向前查找单词
以上是脑子里能想起来的了,感觉是Emacs的的确好用,前提是你得学一阵子。
2.编译和链接的问题:
由于使用了c+win32 api+opengl+Emacs+Nant的组合,造成了单词的自动补
全没有VS的好,编译的大部分错误都是单词的拼写错误,期间只有一个错误费
了一些时间,该错误出现在WindowProc函数的
CREATESTRUCT * creation=(CREATESTRUCT*)(lParam);
此语句单独拿出来没有问题,但是原书中将该语句放入了case WM_CREATE:
当中,造成了莫名其妙的“illegal use of this type as expression"的错误,
开始以为是结构体的错误,还复习了下结构体的知识,后来发现,把此语句提
前到该函数的最前段声明,问题就解决了,是C语言强制声明必须放在前面所
至。链接的问题:链接的时候出现了无法解析的符号,结果基本上是名字写错
另:要使用glu的函数,必须链接glu32.lib。
此篇先总结这么多,代码的详细分析见opengl试验代码总结-2。
万事开头难,加油吧。