Я пытаюсь скомпилировать программу, которая связывает класс, чтобы я мог использовать его с белым скриптом.Squirrel, sqrat, error when binding class
Я использую VS2010 под Windows 7 и скомпилировал библиотеки squirrel и sqrat, используя набор символов Unicode с конфигурацией отладки.
Я получаю ошибку в \ 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();
}
EDIT: Строка, которая дает ошибку является:
InitClass(typeid(*this).name());
Это поможет, если вы указали более ясно, какая линия дает ошибку, так как нет ни одной линии +81 здесь ... И вы не показываете \ sqrat \ sqratclass.h и/или sqrat.h код – Antonio
@Antonio строка, которая дает ошибку, - InitClass (typeid (* this) .name()); – Alex
Кроме того, если это помогает, я использую sqrat 0.8.90 и squirrel 3.0.4 – Alex