我正在尝试编译一个绑定类的程序,以便我可以将它与松鼠脚本一起使用。
我在 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());