【发布时间】:2015-05-28 15:12:55
【问题描述】:
我正在尝试使用 Emscripten 将类(和结构)从 C++ 转换为 Javascript。 为此,我想使用 Embind。我正在尝试转换一个非常简单的示例,但即使使用此示例,我也会遇到错误。 我的代码:
#include "C:\\Emscripten\\emscripten\\1.30.0\\system\\include\\emscripten\\bind.h"
using namespace emscripten;
class AddTest
{
public:
static unsigned int addTest(unsigned int stepCount);
};
EMSCRIPTEN_BINDINGS(AddTest)
{
class_<AddTest>("AddTest")
.constructor<>()
.class_function("addTest", &AddTest::addTest)
;
}
使用此代码,我会报错:
“错误:没有构造函数实例“class_BaseSpecifier::class_[with ClassType=AddTest, >BaseSpecifier=internal::NoBaseClass]”与参数列表匹配
这里给出了一个使用 Embind 的例子: https://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/embind.html#classes
我只是无法发现示例和我的代码之间的区别。
有人可以帮帮我吗?
【问题讨论】:
-
看起来 Emscripten 想要一个构造函数。您是否尝试过创建一个虚拟的
AddTest(){}构造函数来看看会发生什么? -
是的,我做到了。然后 .constructor() 给我一个“类模板“构造函数”错误的参数太少。如果我在构造函数中插入一个参数,如“int number”,我会得到一个“不允许类型名称”错误。
标签: javascript c++ emscripten embind