将Cocos2dx 3.4 嵌入到MFC中

来源:互联网 发布:邮政储蓄网络培训学院 编辑:程序博客网 时间:2024/05/16 11:05

前言:

目的是创建一个mfc的工程,然后在其中使用cocos2dx的引擎实现绘图功能。

1、创建一个cocos2dx工程,cocos new -l cpp 

2、在其中添加一个MFC的工程,如下图CocosMFC是一个MFC工程,路径如图所示(尽量按照这个路径,因为后面要使用它)MFCDemo是一个cocos2dx生成工程。

咱们仿照MFCDemo这个工程来让CocosMFC这个工程能调用cocos2dx的功能。



3、添加属性页。在MFCDemo目录下搜索*.props 文件,我们需要的是cocos2d_headers.props与cocos2dx.props两个,将这两个文件拷贝到CocosMFC目录里。

,然后将这两个属性页添加到CocosMFC工程中,在属性管理器视图中添加如图:



3、定义EngineRoot宏。

这个属性页中已经存在这个宏了,但我们要对她进行修改,让他对应的目录为上面路径中的cocos2d,$(MSBuildThisFileDirectory) 指向的就是属性页所在路径。



4、修改输出目录OutDir

CocosMFC 的输出目录修改为$(SolutionDir)$(Configuration).win32\   因为所有生成的库文件都放在那个目录里,后面我们会用到


5、拷贝附加包含目录。(找不到在哪儿学学vc怎么用)

将MFCDemo的附加包含目录拷贝到CocosMFC对应位置。我们目的就是移植嘛。



6、拷贝附加库目录及附加依赖库

将MFCDemo的对应设置拷贝到CocosMFC对应位置。我们为什么需要先设置下输出目录,因为下面就用到。所有的库都被生成到$OutDir下了。所以需要先设置OutDir.



7、拷贝预定义宏。C++》预处理器


8、拷贝禁用的警告。C++》高级


9、将classes下的文件添加到CocosMFC 工程中,我们要使用它绘制窗口嘛。


10、设置CocosMFC 的依赖项。


11、这个时候编译通过应该是没有问题的了,但是链接还是不行。

最后发现是依赖库不够,缺少cocos2dx 等库。加入这三个引用项就可以链接通过了。




12、在MFC中调用cocos2dx。在OnInitiDialog中加入如此调用。当然要加上对应的头文件及使用cocos2dx命名空间。参照自动生成的cocos2dx工程中main.cpp的调用。

AppDelegate app;Application::getInstance()->run();

13、这个时候我们发现原来编译通过的又编译错误了。小鬼作怪?不是,淡定分析我们找到了原因。

CCApplicationProtocol.h这个文件中

enum class Platform    {        OS_WINDOWS_32,        OS_LINUX,        OS_MAC,        OS_ANDROID,        OS_IPHONE,        OS_IPAD,        OS_BLACKBERRY,        OS_NACL,        OS_EMSCRIPTEN,        OS_TIZEN,        OS_WINRT,        OS_WP8    };
原来代码此处是OS_WINDOWS,这个貌似在什么地方被定义成一个宏了(应该是shlwapi.h),那么此处枚举的时候OS_WINDOWS就变成0了,我们知道0是不能当描述符的。所以编译失败导致后面的一大排失败。怎么改呢?。两种方法

1、在此处之前加#undef OS_WINDOWS 取消宏的定义。

2、将此处OS_WINDOWS修改一下,如变成上面的OS_WINDOWS_32 ,但对应工程中使用到这个枚举的地方也要相应改变。


14、到此就功德圆满了。





0 0
原创粉丝点击