#### Archived

This topic is now archived and is closed to further replies.

# Luaplus and classes

This topic is 5300 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Well, i mainly got lua plus due to the fact that it had a friendly way to use classes, anyway, i've been having some problems with it, i'll explain: Here's my source on vc++:
#pragma comment(lib, "LuaPlus_1081.lib")

#include <stdio.h>
#include <LuaPlus/LuaPlus.h>
#include <tchar.h>
#include <conio.h>

LuaStateOwner LUA;
int test(LuaState* luaVM);

class Poo {
public:
float pooer;
float Pooey(float tester)
{
pooer = 1.0f;
pooer = 1.0f/tester;
return pooer;
}

void Hex(LuaState* luaVM)
{
LuaStack args(luaVM);
pooer = 1.0f/args[1].GetNumber();
printf("%f\n",pooer);
LUA->PushNumber(pooer);
}

Poo()
{
pooer = 1.0f;
}
};

int test(LuaState* luaVM)
{
LuaStack args(luaVM);
if(args[1].IsNumber())
{
float y = args[1].GetNumber();
float yes = 1.0f/y;
LUA->PushNumber(0);
printf("%f\n",yes);
}
return 1;
}

int main(int argc, _TCHAR* argv[])
{
Poo Shitos;

LUA->GetGlobals().Register("Test", &test);
LUA->GetGlobals().Register("Indirect", Shitos, Poo::Hex);
LUA->GetGlobals().RegisterDirect("Direct", Shitos, Poo::Pooey);

LUA->DoFile("startup.lua");

printf("%f",Shitos.pooer);

getch();

return 0;
}

And then in the startup.lua file i have:
print('Normal:');
Test(4.0);
print('Direct member:');
x = Direct(4.0);
print(x);
print('Indirect member:');
x = Indirect(4.0);
print(x);

The problem is that it gives me an error when i compile the c++ file, it says that it can't convert from class Poo to lua_CFunction, am i doing anything wrong? And if so, how to fix it? NOTE: This occurs when i try to use any of the register functions. [edited by - Alura on March 21, 2004 11:01:16 AM]

1. 1
2. 2
Rutin
21
3. 3
4. 4
5. 5
frob
12

• 17
• 9
• 31
• 16
• 9
• ### Forum Statistics

• Total Topics
632614
• Total Posts
3007440

×