Белка, sqrat, ошибка при связывании класса

Я пытаюсь скомпилировать программу, которая связывает класс, чтобы я мог использовать его со скриптом белка.

Я использую VS2010 под Windows 7 и скомпилировал библиотеки белка и 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();

}

РЕДАКТИРОВАТЬ:
Строка, которая дает ошибку:

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

1

Решение

Извините, я должен был попробовать это, прежде чем задавать вопрос здесь.
Я скачал версию 0.8.9, которая является «последней версией» sqrat, как сказано на их домашней странице. Это, вероятно, последняя стабильная версия.

В любом случае, я попробовал то же самое, используя sqrat из https://github.com/Amorph/sqrat/
и это сработало! За исключением того, что я должен был изменить эту строку

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

в

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]