1

私はこの問題にほぼ1週間取り組んできましたが、まだ700以上のエラーがあります。間違いなくあなたのすべての助けが必要です!ありがとう。

問題:使用する必要がある

WindowsPhone8用のCocos2dx

C#/XAMLUIも使用するC++/ DirectX VisualStudio2012プロジェクトで

与えられたもの:http: //www.cocos2d-x.org/projects/cocos2d-x/wiki/Downloadからダウンロードされたアプリケーション.exeプロジェクトとしてのCocos2dx-wp8

解決策

  1. Visual Studio 2012でC#/ XAML /DirectXGame1ソリューションの.slnプロジェクトを開きます。
  2. ソリューションエクスプローラーでソリューションを右クリックします。追加->既存のプロジェクト...
  3. 選択:\ cocos2dx-0.13.0-wp8-0.8 \ HelloWorld \ cocos2d.vcxproj、クリックして開く
  4. HelloWorldプロジェクトの名前を「Cocos2dxWp8」などに変更し、HelloWorld Classesフォルダーと不要なすべてのアセット(リスや背景画像など)を削除します。
  5. [プロパティ]->[構成プロパティ]->[一般]->[構成タイプ]->[アプリケーション(.exe)]から[ダイナミックライブラリ(.dll)]に変更します

  6. プロパティに新しいパスを追加->C/C++->追加のインクルードディレクトリ->

$(ProjectDir); $(IntermediateOutputPath); .. \ cocos2dx \ include; .. \ cocos2dx; .. \ cocos2dx \ platform \ third_party \ win8_metro \ libpng; .. \ cocos2dx \ platform \ third_party \ win8_metro \ zlib; .. \ cocos2dx \ platform \ third_party \ win8_metro; .... \ Cocos2dxWp8; .. \ cocos2dx \ platform \ win8_metro; .. \ cocos2dx \ platform \ third_party \ win8_metro \ freetype; .. \ cocos2dx \ platform \ third_party \ win8_metro \ libjpeg; .. \ CocosDenshion \ include; .. \ cocos2dx \ platform; 株式会社; %(AdditionalIncludeDirectories)

  1. [プロパティ]->[リンカー]->[入力]->[追加の依存関係]->のパスを更新しました

.. \ cocos2dx \ platform \ third_party \ win8_metro \ libraries \ x86 \ freetype.lib; .. \ cocos2dx \ platform \ third_party \ win8_metro \ libraries \ x86 \ zlib.lib; .. \ cocos2dx \ platform \ third_party \ win8_metro \ libraries \ x86 \ libjpeg.lib; .. \ cocos2dx \ platform \ third_party \ win8_metro \ libraries \ x86 \ libpng.lib; dxguid.lib; xaudio2.lib; dxgi.lib; uuid.lib; d3d11.lib;%(AdditionalDependencies)

  1. VC ++ディレクトリの更新されたパス:

$(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ freetype; $(SolutionDir); $(ProjectDir)inc; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ CocosDenshion \ include; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ zlib; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ libraries; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ libpng; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ libjpeg; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \ libxml2; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ third_party \ win8_metro \; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform \ win8_metro; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ include; $(SolutionDir)GameWp8Dx \ Cocos2dxWp8 \ cocos2dx; $(IncludePath)

ここから、正常にビルドされます。 .dllファイルは出力されますが、.libファイルは出力されないため...

  1. CCPlatformMacros.hで、クラスをdllにエクスポートできるようにしました。

    #define CC_DLL __declspec(dllexport)

ええ、.libはその時に書かれています...

715エラー、772警告

エラー773エラーLNK2001:未解決の外部シンボル"public:virtual __thiscall cocos2d :: CCKeypadHandler ::〜CCKeypadHandler(void)"(?? 1CCKeypadHandler @ cocos2d @ UAE @ XZ)F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ Hello \ CCSpriteBatchNode.obj Cocos2dXWp8Frameworkエラー774エラーLNK2001:未解決の外部シンボル "public:virtual __thiscall cocos2d :: CCKeypadHandler ::〜CCKeypadHandler(void)"(?? 1CCKeypadHandler @ cocos2d @ UAE @ XZ)

CCKeyHandlerクラスが定義されているヘッダーファイル(CCKeypadDelegate.h内)をインクルードし、CCSpriteBatchNode.hも同じインクルードフォルダーにあります。

クラスシグネチャは次のようになります。

class CC_DLL CCKeypadHandler : public CCObject
class CC_DLL CCSpriteBatchNode : public CCNode, public CCTextureProtocol

エラーはそのまま継続します...

F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ cocos2dorig.obj Cocos2dXWp8Frameworkエラー775エラーLNK2001:未解決の外部シンボル "public:virtual __thiscall cocos2d :: CCKeypadHandler ::〜CCKeypadHandler(void)" @@ UAE @ XZ)F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ CCImage_win8_metro.obj Cocos2dXWp8Framework

..。

エラー1482エラーLNK2001:未解決の外部シンボル "public:virtual void __thiscall cocos2d :: CCTMXMapInfo :: textHandler(void *、char const *、int)"(?textHandler @ CCTMXMapInfo @ cocos2d @ UAEXPAXPBDH @ Z)F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ CCDrawingPrimitives.obj Cocos2dXWp8Frameworkエラー1483エラーLNK2001:未解決の外部シンボル "public:virtual void __thiscall cocos2d :: CCTMXMapInfo :: textHandler(void *、char const *、int @ cocos2d @ UAEXPAXPBDH @ Z)F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ cocos2d.obj Cocos2dXWp8Framework Error 1484 error LNK2019:unresolved external symbol "public:virtual __thiscall cocos2d::CC "(?? 1CCKeypadDispatcher @ cocos2d @ UAE @ XZ)関数で参照"public:virtual void * __thiscall cocos2d :: CCKeypadDispatcher :: `vector delete destructor'(unsigned int)"(?? _ ECCKeypadDispatcher @ cocos2d @ UAEPAXI @ Z)F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ Hello obj Cocos2dXWp8Frameworkエラー1485エラーLNK2001:未解決の外部シンボル "public:virtual __thiscall cocos2d :: CCKeypadDispatcher ::〜CCKeypadDispatcher(void)"(?? 1CCKeypadDispatcher @ cocos2d @ UAE @ XZ)F:\ src \ WindowsPhone \ GameWp8Dx \ HelloWorld \ CCLayer.obj Cocos2dXWp8Frameworkエラー1486エラーLNK2001:未解決の外部シンボル "public:virtual __thiscall cocos2d :: CCKeypadDispatcher ::〜CCKeypadDispatcher(void)"(?? 1CCKeypadDispatcher @ cocos2d @ UAE @ XZ)F:\ src \ Windows GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld\CCEGLView_win8_metro。obj Cocos2dXWp8Frameworkエラー1487エラーLNK1120:48の未解決の外部F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ Win32 \ Debug \ cocos2d \ Cocos2dXWp8Framework.dll Cocos2dXWp8Framework

ソリューション/プロジェクトパス:

F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx.sln F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ GameWp8Dx \ GameWp8Dx.csproj F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ GameWp8DxComponent \ GameWp \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ cocos2d.vcxproj

Cocos2dインクルードファイル:

F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ include F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ cocos2dx \ platform

ここで作成されたオブジェクトファイル:

F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ HelloWorld \ Win32 \ Debug * .obj

ここに構築された.dll/.lib:

F:\ src \ WindowsPhone \ GameWp8Dx \ GameWp8Dx \ Cocos2dxWp8 \ Win32 \ Debug \ cocos2d

長い投稿で申し訳ありませんが、この質問を進めるのに十分な詳細であることを願っています。ありがとう。

4

2 に答える 2

1

新しい動的ライブラリ プロジェクトを作成し、ファイルをコピーしました。.dll と .lib をビルドしましたが、ARM CPU ビルド ターゲット (デバイスに使用) では機能しませんでした。また、Cocos2dx ディレクターとシーン レイヤーのセットアップは、DrawingSurfaceBackgroundGrid コントロールにレンダリングする DirectX プロジェクトを使用した既存の C#/XAML ではうまく機能しないようです。そのため、最終的には、混合プロジェクトのセットアップで Cocos2dx を使用することにはなりませんでした。

他の誰かがより良い提案を持っている場合は、私に知らせてください。ありがとう。

于 2012-12-04T07:56:57.890 に答える