为 cocos2d-x 编译插件时出现 Cpp 错误

Cpp error while compiling a plugin for cocos2d-x

我正在尝试为 cocos2dx 编写一个 Android 插件。但我似乎遇到了一个(基本的?)c++ 障碍。 我遇到了以下错误 - 请参见下文:(shortVersion - "'ProtocolAds' does not name a type.").

make.exe: Entering directory `C:/Android/Cocos2d/cocos2d-x-cocos2d-x-3.6/CocosPr
ojectWoobiDemo/proj.android'
[armeabi] Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp
[armeabi] StaticLibrary  : libcocos2d.a
[armeabi] StaticLibrary  : libcocostudio.a
[armeabi] StaticLibrary  : libcocosbuilder.a
[armeabi] StaticLibrary  : libcocos3d.a
[armeabi] StaticLibrary  : libspine.a
[armeabi] StaticLibrary  : libnetwork.a
[armeabi] StaticLibrary  : libui.a
[armeabi] StaticLibrary  : libaudioengine.a
[armeabi] StaticLibrary  : libcocosdenshion.a
[armeabi] StaticLibrary  : flatbuffers.a
[armeabi] StaticLibrary  : libextension.a
[armeabi] StaticLibrary  : libcocos2dxinternal.a
[armeabi] StaticLibrary  : libbox2d.a
[armeabi] StaticLibrary  : libcocos2dandroid.a
[armeabi] StaticLibrary  : libcpufeatures.a
[armeabi] Gdbserver      : [arm-linux-androideabi-4.9] libs/armeabi/gdbserver
[armeabi] Gdbsetup       : libs/armeabi/gdb.setup
jni/../../Classes/HelloWorldScene.cpp: In member function 'void HelloWorld::test
Func()':
jni/../../Classes/HelloWorldScene.cpp:97:24: error: 'ProtocolAds' does not name
a type
  _woobi = dynamic_cast<ProtocolAds*>(PluginManager::getInstance()->loadPlugin("
Woobi"));

据我所知,未命名类型是链接器不知道对象的 class(出于任何可能的原因)时出现的错误。

我的想法:

这怎么可能?我一直在阅读和尝试大量时间,但没有成功。有人可以帮忙吗?

您似乎应该将它与命名空间说明符一起使用:dynamic_cast<cocos2d::plugin::ProtocolAds*>

似乎将以下两行添加到 header 作品中:

--#include "PluginManager.h" 使用命名空间 cocos2d::plugin;

对于非 cpp 开发人员来说,此命名空间的使用并不简单。 考虑到这些文件在预编译库中,你怎么知道 ProtocolAds.h 在 cocos2d::plugin 的命名空间中?

我怀疑它会不会,但希望这至少能帮助我以外的一个人。