我正在用 React-native 制作一个应用程序,它使用来自 Dropbox 的 Djinni 在 C++ 和 Javascript 之间架起桥梁。从 Javascript 到 C++ 的调用效果很好,但现在我正在实现从 C++ 到 Java/ObjC 的调用,我的 C++ 技能如此如此。所以我坚持初始化类方法。我基于 Djinni 提供的示例。AnotherClassMain 是从 Javascript 到 C++ 的访问点。
我想从 anotherClassMain 中的 processAImpl 调用 runAProcess 方法。
但我得到错误字段类型'aEditing :: ProcessAImpl'是一个抽象类在ProcesAImpl processA线上; 在另一个ClassMain.hpp
我怎样才能访问这个启动类 processAImpl 并从 anotherClassMain 调用 runAProcess ?
// djinni 创建的 processA.hpp
#pragma once
#include <string>
namespace aEditing {
class ProcessA {
public:
virtual ~ProcessA() {}
virtual bool runThisProcess(const std::string & str) = 0;
};
}
//processAImpl.hpp
#pragma once
#include "processA.hpp"
namespace aEditing {
class ProcessAImpl : public ProcessA {
public:
ProcessAImpl(const std::shared_ptr<ProcessA> & listener);
void runAProcess(const std::string aCommand);
private:
std::shared_ptr<ProcessA> aProcess;
};
}
//processAImpl.cpp
#include "procesAImpl.hpp"
namespace aEditing {
ProcessAImpl::ProcessAImpl (const std::shared_ptr<ProcessA> & listener) {
this->aProcess = listener;
}
void ProcessAImpl::runAProcess(const std::string aCommand) {
this->aProcess->runThisProcess(aCommand);
}
}
//另一个ClassMain.hpp
#pragma once
#include "includes.hpp"
#include "processAImpl.hpp"
namespace anotherProcessing {
class AnotherProcessingMain: public anotherProcessing::AnotherProcessing {
public:
AnotherProcessingMain();
string anotherProcessing(const std::string &Input, const std::string &output) override;
private:
ProcesAImpl processA;
};
}
//另一个ClassMain.cpp
#include "anotherClassMain.hpp"
namespace anotherProcessing {
shared_ptr<AnotherProcessing> AnotherProcessing::create() {
return make_shared<AnotherProcessingMain>();
}
AnotherProcessingMain::AnotherProcessingMain() {}
string AnotherProcessingMain::anotherProcessing(const std::string &Input, const std::string &output){
processA.runAProcess("testCommand"); //Trying to access this!
return "yeah";
}