将Cocos2dx 3.4 嵌入到MFC中

将Cocos2dx 3.4 嵌入到MFC中,第1张

概述前言: 目的是创建一个mfc的工程,然后在其中使用cocos2dx的引擎实现绘图功能。 1、创建一个cocos2dx工程,cocos new -l cpp  2、在其中添加一个MFC的工程,如下图CocosMFC是一个MFC工程,路径如图所示(尽量按照这个路径,因为后面要使用它)MFCDemo是一个cocos2dx生成工程。 咱们仿照MFCDemo这个工程来让CocosMFC这个工程能调用coco

前言:

目的是创建一个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、到此就功德圆满了。


总结

以上是内存溢出为你收集整理的将Cocos2dx 3.4 嵌入到MFC中全部内容,希望文章能够帮你解决将Cocos2dx 3.4 嵌入到MFC中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1052828.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存