Value:constructor(ctype, [value])constructor

The Value constructor creates a new Value instance, that represents an in-memory C variable of the provided type.

Parameters

ctype

A string representing the C type for the new Value among any of the following strings :

ctype stringC type
"uchar"unsigned char
"char"char
"wchar_t"wchar_t
"bool"boolean (C++)/int (C)
"short"short
"ushort"unsigned short
"int"int
"uint"unsigned int
"long"long
"long long"long long
"ulong"unsigned long
"ulonglong"unsigned long long
"size_t"size_t
"int16_t"int16_t
"int32_t"int32_t
"int64_t"int64_t
"uint16_t"uint16_t
"uint32_t"uint32_t
"uint64_t"uint64_t
"double"double
"string"char *
"wstring"wchar_t *
"pointer"void *

[value]

An optional Lua value of any type that will be used to initialize the created C Value.

Notes

  • The C module contains functions to create C Values directly depending on the C type.
  • When creating a C string or wide string Value, you can initialize it only with another Value, a Lua string or with a number that indicates the string length.

Return value

The constructor returns a new Value instance.

Example

--! luart-extensions import c -- Create a Value that contains a C String (char *) initialized to "Hello World !" local c_string = c.Value("string", "Hello World !") -- Converts the Value to a Lua string and prints its print(c_string)