Use this when you are interested in a Pointer to the result instead of the result itself. For instance, given an integer
result, you might use a Pointer in order to retrieve the hi byte and lo byte values.
Dim VariableX = uc.DefineVariable("x As Int")
Dim Expression As string
Console.Write("Enter an expression (Ex: x + 125): ")
Expression = Console.ReadLine()
Dim ParsedExpr = uc.Parse(Expression, "Int8u")
Dim x As Int32
for x = 1 To 10
VariableX.SetVariableValueInt32(x)
Console.WriteLine("x = " + x + " Int8 result = " + uc.ValueAt(ParsedExpr.EvaluateVoid(), "Int8"))
Next
' Output
' x = 1 Int8 result = 126
' x = 2 Int8 result = 127
' x = 3 Int8 result = -128
' x = 4 Int8 result = -127
' x = 5 Int8 result = -126
' x = 6 Int8 result = -125
' x = 7 Int8 result = -124
' x = 8 Int8 result = -123
' x = 9 Int8 result = -122
' x = 10 Int8 result = -121
var VariableX = uc.DefineVariable("x As Int");
string Expression;
Console.Write("Enter an expression (Ex: x + 125): ");
Expression = Console.ReadLine();
var ParsedExpr = uc.Parse(Expression, "Int8u");
for (Int32 x = 1; x <= 10; x++) {
VariableX.SetVariableValueInt32(x);
Console.WriteLine("x = " + x + " Int8 result = " + uc.ValueAt(ParsedExpr.EvaluateVoid(), "Int8"));
}
// Output
// x = 1 Int8 result = 126
// x = 2 Int8 result = 127
// x = 3 Int8 result = -128
// x = 4 Int8 result = -127
// x = 5 Int8 result = -126
// x = 6 Int8 result = -125
// x = 7 Int8 result = -124
// x = 8 Int8 result = -123
// x = 9 Int8 result = -122
// x = 10 Int8 result = -121
ParsedExpr.Release();
VariableX.Release();
//var VariableX = uc.DefineVariable('x As Int');
Write('Enter an expression (Ex: x + 125): ')
Expression = ReadLn();
//var ParsedExpr = uc.Parse(Expression, 'Int8u');
for x := 1 to 10 do
begin
VariableX.SetVariableValueInt32(x);
WriteLn('x = ' + x + ' Int8 result = ' + uc.ValueAt(ParsedExpr.EvaluateVoid(), 'Int8'));
End;
// Output
// x = 1 Int8 result = 126
// x = 2 Int8 result = 127
// x = 3 Int8 result = -128
// x = 4 Int8 result = -127
// x = 5 Int8 result = -126
// x = 6 Int8 result = -125
// x = 7 Int8 result = -124
// x = 8 Int8 result = -123
// x = 9 Int8 result = -122
// x = 10 Int8 result = -121
auto VariableX = uc.DefineVariable("x As Int");
string Expression;
cout << "Enter an expression (Ex: x + 125): " << endl;
cin >> Expression; // Ex: x + 125
auto ParsedExpr = uc.Parse(Expression, "Int8u");
for (int x = 1; x <= 10; x++) {
VariableX.SetVariableValueInt32(x);
cout << "x = " << x << " Int8 result = " << uc.ValueAt(ParsedExpr.EvaluateVoid(), "Int8") << endl;
}
// Output
// x = 1 Int8 result = 126
// x = 2 Int8 result = 127
// x = 3 Int8 result = -128
// x = 4 Int8 result = -127
// x = 5 Int8 result = -126
// x = 6 Int8 result = -125
// x = 7 Int8 result = -124
// x = 8 Int8 result = -123
// x = 9 Int8 result = -122
// x = 10 Int8 result = -121
ParsedExpr.Release();
VariableX.Release();
auto VariableX = uc.DefineVariable("x As Int");
string ^ Expression;
Console::Write("Enter an expression (Ex: x + 125): ");
Expression = Console::ReadLine();
auto ParsedExpr = uc.Parse(Expression, "Int8u");
for (int x = 1; x <= 10; x++) {
VariableX.SetVariableValueInt32(x);
Console::WriteLine("x = " + x + " Int8 result = " + uc.ValueAt(ParsedExpr.EvaluateVoid(), "Int8"));
}
// Output
// x = 1 Int8 result = 126
// x = 2 Int8 result = 127
// x = 3 Int8 result = -128
// x = 4 Int8 result = -127
// x = 5 Int8 result = -126
// x = 6 Int8 result = -125
// x = 7 Int8 result = -124
// x = 8 Int8 result = -123
// x = 9 Int8 result = -122
// x = 10 Int8 result = -121
ParsedExpr.Release();
VariableX.Release();
<DllImport(uCalcDLL, CharSet:=CharSet.Ansi, CallingConvention:=CallingConvention.Cdecl, EntryPoint:="EvaluateVoid")> _
Private Function EvaluateVoid__(ByVal ExprHandle As IntPtr) As IntPtr
End Function
[DllImport(uCalcDLL, CharSet=CharSet.Ansi, CallingConvention=CallingConvention.Cdecl, EntryPoint="EvaluateVoid")]
protected static extern IntPtr EvaluateVoid_(IntPtr ExprHandle);
{DLLImport}function EvaluateVoid__(ExprHandle: System.Pointer): System.Pointer; cdecl; external uCalcDLL name 'EvaluateVoid';
typedef void * (* __EvaluateVoid)(void *ExprHandle);
[DllImport(uCalcLib, CharSet=CharSet::Ansi, CallingConvention=CallingConvention::Cdecl, EntryPoint = "EvaluateVoid")]
static void * EvaluateVoid_(void * ExprHandle);