gpt4 book ai didi

c++ - Squirrel, sqrat, 绑定(bind)类时出错

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:34 25 4
gpt4 key购买 nike

我正在尝试编译一个绑定(bind)类的程序,以便我可以将它与松鼠脚本一起使用。

我在 Windows 7 下使用 VS2010,并使用带有调试配置的 unicode 字符集编译了 squirrel 库和 sqrat。

我得到的错误是在\sqrat\sqratclass.h,第 81 行:

error C2664: 'Sqrat::Class<C>::InitClass' : cannot convert parameter 1 from 'const char *' to 'const Sqrat::string &'   

有人知道我必须做什么才能让它正常工作吗?或者这是 sqrat 中的错误?非常感谢!

这是 C++ 文件:

#include <iostream>
#include <string>
#include <sqrat.h>

class TestClass
{
public:
int integerVar;
std::wstring stringVar;
void printString() { std::wcout << this->stringVar; }
};

void squirrelPrint(SQChar * text)
{
std::wcout << text << std::endl;
}

int main()
{
HSQUIRRELVM squirrelvm = sq_open(1024);
Sqrat::DefaultVM::Set(squirrelvm);

Sqrat::RootTable().Bind(L"TestClass", Sqrat::Class<TestClass>()
.Func(L"printString", &TestClass::printString)
.Var(L"integerVar", &TestClass::integerVar)
.Var(L"strVar", &TestClass::stringVar));

Sqrat::Script script;
script.CompileFile(L"testfile.nut");
script.Run();

}

编辑:给出错误的行是:

InitClass(typeid(*this).name());

最佳答案

对不起,我应该先试试这个再问这里的问题。我下载了 0.8.9 版,这是 sqrat 的“最新版本”,正如他们主页上所说的那样。它可能是最新的稳定版本。

无论如何,我现在已经使用来自 https://github.com/Amorph/sqrat/ 的 sqrat 尝试了完全相同的事情它奏效了!除了我不得不改变这一行

return sq_throwerror(vm, "No overload matching this argument list found");

进入

return sq_throwerror(vm, _SC("No overload matching this argument list found"));

关于c++ - Squirrel, sqrat, 绑定(bind)类时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17516114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com