Mi occupo di picosecondi nel mio codice (i numeri sono> 10^12).
codice C passare i dati a Lua (atime e eventid sono entrambi di tipo size_t)Lua C api: gestione di grandi numeri
lua_getglobal (luactx, "timer_callback");
lua_pushunsigned (luactx, atime);
lua_pushunsigned (luactx, eventid);
lua_pcall (luactx, 2, 0, 0);
funzione Lua
function timer_callback(time, eventid)
if eventid == TX_CLOCK then
out_log(tostring(time)) --result is random garbage
set_callback(time + 1000000000000, TX_CLOCK)
return
end
end
ho provato con lua_pushnumber ma risultati sulla lua Ho numeri negativi.
Quale versione di lua? 5.3 supporta 'lua_Integer', che è 64 bit per impostazione predefinita. – indiv
Io uso 5.2 sotto Win32 – pugnator
indiv, si prega di rendere il vostro messaggio come risposta. Ho appena compilato 5.3 da fonti, ricompilato la mia applicazione e tutto ha funzionato come un incantesimo – pugnator