Visual c++ 如何将Cocos2dx-wp8从应用程序(.exe)移植到动态库(.dll)
Visual c++ 如何将Cocos2dx-wp8从应用程序(.exe)移植到动态库(.dll),visual-c++,dll,cocos2d-x,dllexport,windows-phone-8,Visual C++,Dll,Cocos2d X,Dllexport,Windows Phone 8,我已经研究这个问题将近一个星期了,我仍然有700多个错误。绝对需要你的帮助!谢谢
问题:需要使用
适用于Windows Phone 8的Cocos2dx
在我的C++/DirectXVisual Studio 2012项目中,该项目也使用C#/XAML UI
给定:Cocos2dx-wp8作为Application.exe项目从
解决方案:
在Visual Studio 2012中打开我的C#/XAML/DirectX Game1 solution.sln项目
右键单击解决方案资源管理器中的解决
我已经研究这个问题将近一个星期了,我仍然有700多个错误。绝对需要你的帮助!谢谢
问题:需要使用
适用于Windows Phone 8的Cocos2dx
在我的C++/DirectXVisual Studio 2012项目中,该项目也使用C#/XAML UI
给定:Cocos2dx-wp8作为Application.exe项目从
解决方案:
在Visual Studio 2012中打开我的C#/XAML/DirectX Game1 solution.sln项目
右键单击解决方案资源管理器中的解决方案。添加-->现有项目
选中:\cocos2dx-0.13.0-wp8-0.8\HelloWorld\cocos2d.vcxproj并单击打开
将HelloWorld项目重命名为类似“Cocos2dxWp8”的其他项目,并删除HelloWorld Classes文件夹和所有您不需要的资产(如松鼠和背景图像)
单击属性-->配置属性-->常规-->配置类型-->从“应用程序(.exe)更改为“动态库(.dll)”
为属性-->C/C++-->添加了新路径--其他包含目录-->
$(ProjectDir);$(IntermediateOutputPath);..\cocos2dx\include;
..\cocos2dx;。\cocos2dx\platform\third\u party\win8\u metro\libpng;
..\cocos2dx\platform\third\u party\win8\u metro\zlib;
..\cocos2dx\platform\third\u party\win8\u metro;…\Cocos2dxWp8;
..\cocos2dx\platform\win8\u metro;
..\cocos2dx\platform\third\u party\win8\u metro\freetype;
..\cocos2dx\platform\third\u party\win8\u metro\libjpeg;
..\CocosDenshion\include;。\cocos2dx\platform;inc;
%(其他包括董事)
更新了属性-->链接器-->输入-->其他依赖项-->
..\cocos2dx\platform\third\u party\win8\u metro\libraries\x86\freetype.lib;
..\cocos2dx\platform\third\u party\win8\u metro\libraries\x86\zlib.lib;
..\cocos2dx\platform\third\u party\win8\u metro\libraries\x86\libjpeg.lib;
..\cocos2dx\platform\third\u party\win8\u metro\libraries\x86\libpng.lib;
dxguid.lib;xaudio2.lib;dxgi.lib;uuid.lib;d3d11.lib;%(附加依赖项)
VC++目录中的更新路径:
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\freetype;
$(SolutionDir);$(ProjectDir)公司;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\CocosDenshion\include;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\zlib;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\libraries;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\libpng;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\libjpeg;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\libxml2;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\third\u party\win8\u metro\;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform\win8\u metro;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\platform;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx\include;
$(SolutionDir)GameWp8Dx\Cocos2dxWp8\cocos2dx;$(IncludePath)
从这里开始,它成功构建!
它输出一个.dll文件,但没有.lib文件,所以
在CCPlatformMacros.h中,我启用了将类导出到dll:
#定义CC_DLL__declspec(dllexport)
是的,.lib正在写入到
715个错误,772个警告
错误773错误LNK2001:未解析的外部符号“公共:虚拟
__此调用cocos2d::CCKeypadHandler::~CCKeypadHandler(void)”(?)??1CCKeypadHandler@cocos2d@UAE@XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCSpriteBatchNode.obj
COCOS2DXWP8框架错误774错误LNK2001:未解析的外部
符号“public:virtual\u thistcall”
cocos2d::CCKeypadHandler::~CCKeypadHandler(无效)”
(??1CCKeypadHandler@cocos2d@UAE@XZ)
我已经包含了定义CCKeyHandler类的头文件(在CCKeypadDelegate.h内),CCSpriteBatchNode.h也在同一个include文件夹中
类签名如下所示:
class CC_DLL CCKeypadHandler : public CCObject
class CC_DLL CCSpriteBatchNode : public CCNode, public CCTextureProtocol
错误仍在继续
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\cocos2dorig.obj
COCOS2DXWP8框架错误775错误LNK2001:未解析的外部
符号“public:virtual\u thistcall”
cocos2d::CCKeypadHandler::~CCKeypadHandler(无效)”
(??1CCKeypadHandler@cocos2d@@UAE@XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCImage\u win8\u metro.obj
Cocos2dXWp8Framework
错误1482错误LNK2001:未解析的外部符号“public:virtual”
void uu thiscall cocos2d::CCTMXMapInfo::textHandler(void*,char const
*,int)“(?textHandler@CCTMXMapInfo@cocos2d@UAEXPAXPBDH@Z) F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCDrawingPrimitives.obj
COCOS2DXWP8框架错误1483错误LNK2001:未解析的外部错误
符号“public:virtualvoid\uu thiscall”
cocos2d::CCTMXMapInfo::textHandler(void*,char const*,int)”
(?textHandler@CCTMXMapInfo@cocos2d@UAEXPAXPBDH@Z)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\cocos2d.obj
COCOS2DXWP8框架错误1484错误LNK2019:未解析的外部
符号“public:virtual\u thistcall”
cocos2d::CCKeypadDispatcher::~CCKeypadDispatcher(无效)”
(??1CCKeypadDispatcher@cocos2d@UAE@XZ)在“公共”功能中引用:
虚拟void*\uuu thiscall cocos2d::CCKeypadDispatcher::`vector
正在删除析构函数“(无符号整数)”
(??_ECCKeypadDispatcher@cocos2d@UAEPAXI@Z)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCDirector.obj
COCOS2DXWP8框架错误1485错误LNK2001:未解析的外部错误
符号“public:virtual\u thistcall”
cocos2d::CCKeypadDispatcher::~CCKeypadDispatcher(无效)”
(??1CCKeypadDispatcher@cocos2d@UAE@XZ)
F:\src\WindowsPhone\GameWp8Dx\GameWp8Dx\Cocos2dxWp8\HelloWorld\CCLayer.obj
Cocos2dXW