拆解“游戏框架”未完成,进度5%

别人编的游戏框架在这里

https://github.com/LikeUSummer/GamePainter

https://www.zhihu.com/question/21717567


CxImage图像操作类库和lua都挺老的,反正就是和vs2013相当不兼容

不过本人非得用vs2013不可,

于是重新下载最新的Cximage源码并编译,(建议多全选字节字符集,MD,以及共享DLL,保持一致)

最新的lua源码并编译

然后全面替换并修改代码以适应新版

目前编译连接通过

然后估计代码逻辑哪里有问题,“创建空文档失败”,不过应该可以拿来研究了

反正没能完美运行成功,看思路算了,这代码也有点老,中间有些东西随着时代改变了。

(有C#顶着,除非必要,暂时不打算学MFC)

(反正有空就研究两下吧)


源文件

(149行)GamePainter.cpp

就一个头文件,预编译头文件stdafx.h内有加入一些相应内容(没细看用的到的时候再说)
当在debug模式下时,我们分配内存时的new被替换成DEBUG_NEW;
创建 CGamePainterApp的对象theApp(转到GamePainter.h)

(78行)GamePainterDoc.cpp
(888行)GamePainterView.cpp
(227行)LuaBox.cpp
(86行)MainFrm.cpp
(99行)MusicBox.cpp

(27行)stdafx.cpp


头文件

(29行)GamePainter.h

头文件只被编译一次
判断是否定义了__AFXWIN_H__ 这个宏,一般用于防止头文件二次加载(stdafx.h文件设置的目的是为了加速VisualStudio的编译过程,具体实现就是根据stdafx.h所包含的文件生成pch预编译的目标文件。)
(转到Resource.h)
<派生类名CGgamePainterApp>:<继承方式><基类名CWinApp>
(转到基类CWinApp所在文件afxwin.h内看定义,第5084行class CWinApp : public CWinThread)


(41行)gamePainterDoc.h

(61行)GamePainterView.h
(49行)LuaBox.h
(41行)MainFrm.h
(28行)MusicBox.h
√(22行)Resource.h

反正一堆定义和数字,估计生成时的默认RC资源内容。
App Studio是早期VS提供的一个资源编辑器,后来直接整合进VS里面了
APSTUDIO_INVOKED这个主要是解决VC和其他产生冲突~~~
具体解释为:
If the AppWizard-created file structure is corrupted and Visual C++ reads the #error line above, it reports a fatal error and abort the 
reading of the .RC file.
所以,一般的RC资源里面都有APSTUDIO_INVOKED和TEXTINCLUDE

(回到GamePainter.h)
(89行)stdafx.h
(27行)targetver.h

(810行)ximage.h


外部依赖项

afxwin.h
第5084行class CWinApp : public CWinThread
<派生类名CWinApp>:<继承方式><基类名CWinThread>

转到4791行查看CWinThread定义

class CWinThread : public CCmdTarget

转到1701行查看CCmdTarget定义

class AFX_NOVTABLE CCmdTarget : public CObject

转到afx.h,第547行查看 CObject定义

afx.h

第547行查看 CObject定义

inginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginginging




外加资源文件等等等


CxImage图像处理库VS2010编译和调用(静态库和动态库调用)
http://blog.csdn.net/atceedsun/article/details/40616767

lua:

1、下载Lua源码 http://www.lua.org/download.html 
a 下载后解压到一个目录下,这里假设解压到D:\lua-5.1.5b 注意下载的版本,如果是5.2.x,后面代码中的C API发生了改变
2、在VS中新建一个静态库项目,项目命名为lua
a 选择新建 Win32 console project
b 在wizard界面选择 static Library;不选择Precomplied Header
3、往工程中添加代码
a 复制D:\lua-5.1.5\src 目录下的*.h文件到项目的Header Files目录下
b 复制D:\lua-5.1.5\src 目录下的*.c文件到项目的Header Files目录下
4、配置项目的属性,在项目的“配置属性” 界面中操作
a Configuration Properties -> C/C++-> General -> Additional Include Directories 
 添加D:\lua-5.1.5\src
b Configuration Properties -> C/C++-> Advanced -> compile as 
 这里的选择将影响后面代码中如何指定编译链接方式,后面的测试选择的是Compile as C code
5、 生产项目 Build
如果是DEBUG mode 将在Debug目录下看到一个lua.lib文件,Release mode的lib文件在Release文件下

你可能感兴趣的:(拆解“游戏框架”未完成,进度5%)