public LLDB.Target CreateTarget(string filename, string target_triple, string platform_name, bool add_dependent_modules, LLDB.Error error)
{
var arg0 = Marshal.StringToHGlobalAnsi(filename);
var arg1 = Marshal.StringToHGlobalAnsi(target_triple);
var arg2 = Marshal.StringToHGlobalAnsi(platform_name);
if (ReferenceEquals(error, null))
throw new global::System.ArgumentNullException("error", "Cannot be null because it is a C++ reference (&).");
var arg4 = error.__Instance;
var __ret = new LLDB.Target.Internal();
Internal.CreateTarget_0((__Instance + __PointerAdjustment), new IntPtr(&__ret), arg0, arg1, arg2, add_dependent_modules, arg4);
Marshal.FreeHGlobal(arg0);
Marshal.FreeHGlobal(arg1);
Marshal.FreeHGlobal(arg2);
return LLDB.Target.__CreateInstance(__ret);
}