别人编的游戏框架在这里
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)
(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
转到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.htmla 下载后解压到一个目录下,这里假设解压到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文件下