加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将Cocos2dx 3.4 嵌入到MFC中

发布时间:2020-12-14 20:46:56 所属栏目:百科 来源:网络整理
导读:前言: 目的是创建一个mfc的工程,然后在其中使用cocos2dx的引擎实现绘图功能。 1、创建一个cocos2dx工程,cocos new -l cpp 2、在其中添加一个MFC的工程,如下图CocosMFC是一个MFC工程,路径如图所示(尽量按照这个路径,因为后面要使用它)MFCDemo是一个co

前言:

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


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读