» »

[C++] C funkcija pri razredu

[C++] C funkcija pri razredu

techfreak :) ::

Pozdrav,

imam manjšo težavo pri C++ za katero nimam ideje kako bi rešil.

int ime_funkcije(lua_State* lua_state)
{
	...
	std::string niz;
	...
}

class Razred
{
	lua_State* lua_state;
	
	public:
		Razred()
		{
			...
			lua_register(lua_state, "ime", ime_funkcije);
			...
		}
		
		std::string Funkcija(const char* datoteka)
		{
			std::string niz;
			
			luaL_dofile(lua_state, datoteka);
			
			return niz;
		}
}

lua_register sprejme C funkcijo v obliki: int (*)(lua_State*). Pri klicu luaL_dofile se izvede ime_funkcije.
Zanima me, kako bi lahko poslal niz niz iz ime_funkcije v Funkcija ob klicu luaL_dofile?

V tem primeru sem uspel rešiti z uporabo statičnega stringa, vendar me zanima kako takšno stvar rešiti v primeru uporabe niti?

joze-67 ::

Pred ime_funkcije postavi extern "C"

techfreak :) ::

Tudi brez extern "C" deluje, ampak mene zanima kako sharati podatke z razredom.

Senitel ::

Kaj hočeš sploh s tem dosečt? Saj imaš lua_pushstring in lahko daš na state poljuben string.
Če že res hočeš to naredit je pa najbolje, da prestaviš to funkcijo v ta tvoj razred in dodaš zraven še en map kjer ej recimo lua_state ključ this value. Potem lahko v funkciji dobiš instanco razreda glede na lua_state (ugibam, da dobiš istega). Ampak vprašanje je še zmer: zakaj?

techfreak :) ::

Sicer je vprašanje bilo bolj splošno, ker ni prvič da sem prišel na takšen primer.

Pri tem primeru pa imam recimo lua skripto, ki po obdelavi izpiše več stvari s print, npr.:
print("a")
print("b")
print("c")

ime_funkcije je povezan s print in prejme "a", "b" in "c", ki jih želim potem skupaj sestaviti in returnat iz funkcije Funkcija.

Načeloma gre v mojem primeru da prejmem HTTP request, glede na URL izberem izbrano Lua skripto, ki obdela query stringe in sestavi HTML, doda header in footer in vse skupaj izpišem nazaj na socket.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Alternatvni Firmware za router] Vprašanja in težave

Oddelek: Operacijski sistemi
51560 (830) BivšiUser2
»

Ali obstaja možnost ?

Oddelek: Pomoč in nasveti
201597 (963) mojca
»

PHP Programiranje

Oddelek: Izdelava spletišč
121596 (1235) Eyghon
»

Ms access neke vrste auto number

Oddelek: Programiranje
171536 (1329) Fim

php problem!!!

Oddelek: Programiranje
321666 (1246) darh

Več podobnih tem