コード例 #1
0
 protected virtual void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
     if ((e.Value) is OpCode)
     {
         Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = PluginFactory.GetInstance().GetOpcodeDesc((OpCode)e.Value);
     }
     else if (e.Value is MethodDefinition)
     {
         MethodDefinition mdef = e.Value as MethodDefinition;
         Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = String.Format("RVA: {0}", mdef.RVA);
     }
     else if (e.Value is TypeReference && Grid.Rows[e.RowIndex].DataBoundItem is CustomAttributeArgument)
     {
         // Hack to display terminal attribute type (can be wrapped)
         var argument = (CustomAttributeArgument)Grid.Rows[e.RowIndex].DataBoundItem;
         if (argument.Value is CustomAttributeArgument)
         {
             var wrappedargument = (CustomAttributeArgument)argument.Value;
             e.Value = wrappedargument.Type;
         }
     }
     else if (e.Value is CustomAttributeArgument)
     {
         e.Value = Wrappers.OperandDisplayHelper.ToString((CustomAttributeArgument)e.Value);
     }
     else if (e.Value is CustomAttributeArgument[])
     {
         e.Value = Wrappers.OperandDisplayHelper.ToString(e.Value as CustomAttributeArgument[]);
     }
     else if (OwnerDefinition is MethodDefinition)
     {
         if ((e.Value is Int16 || e.Value is Int32 || e.Value is Int64 || e.Value is SByte) ||
             (e.Value is UInt16 || e.Value is UInt32 || e.Value is UInt64 || e.Value is Byte))
         {
             StringBuilder tipbuilder = new StringBuilder();
             Array         values     = System.Enum.GetValues(typeof(ENumericBase));
             for (int i = 0; i < values.Length; i++)
             {
                 if (i > 0)
                 {
                     tipbuilder.AppendLine();
                 }
                 ENumericBase item = (ENumericBase)values.GetValue(i);
                 tipbuilder.Append(item.ToString());
                 tipbuilder.Append(": ");
                 tipbuilder.Append(OperandDisplayHelper.Changebase(e.Value.ToString(), ENumericBase.Dec, item));
             }
             Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = tipbuilder.ToString();
         }
         e.Value = Wrappers.OperandDisplayHelper.ToString(OwnerDefinition as MethodDefinition, e.Value);
     }
 }
コード例 #2
0
 /// <summary>
 /// Change numerical base. Handles negative numbers.
 /// </summary>
 /// <param name="input">String to convert</param>
 /// <param name="inputbase">Input base (must match with input)</param>
 /// <param name="outputbase">Output base</param>
 /// <returns>Converted input as string</returns>
 private static string InternalChangebase(string input, ENumericBase inputbase, ENumericBase outputbase)
 {
     try
     {
         var result = string.Empty;
         if (!string.IsNullOrEmpty(input))
         {
             input = input.Replace(" ", String.Empty);
             var isnegative = input.StartsWith("-");
             input = input.Replace("-", String.Empty);
             var value = Convert.ToInt64(input, (int)inputbase);
             result = ((isnegative) ? "-" : String.Empty) + Convert.ToString(value, (int)outputbase);
         }
         return(result);
     }
     catch (Exception)
     {
         return(String.Empty);
     }
 }
コード例 #3
0
        /// <summary>
        /// Change numerical base. Handles negative numbers.
        /// </summary>
        /// <param name="input">String to convert</param>
        /// <param name="inputbase">Input base (must match with input)</param>
        /// <param name="outputbase">Output base</param>
        /// <returns>Converted input as string</returns>
        public static string Changebase(string input, ENumericBase inputbase, ENumericBase outputbase)
        {
            try
            {
                if (!String.IsNullOrEmpty(input) && input.Contains(ItemSeparator.ToString(CultureInfo.InvariantCulture)))
                {
                    var values   = input.Split(ItemSeparator);
                    var cbvalues = new string[values.Length];
                    for (var i = 0; i < values.Length; i++)
                    {
                        cbvalues[i] = Changebase(values[i], inputbase, outputbase);
                    }
                    return(String.Join(ItemSeparator.ToString(CultureInfo.InvariantCulture), cbvalues));
                }

                return(InternalChangebase(input, inputbase, outputbase));
            }
            catch (Exception)
            {
                return(String.Empty);
            }
        }
コード例 #4
0
		/// <summary>
		/// Change numerical base. Handles negative numbers.
		/// </summary>
		/// <param name="input">String to convert</param>
		/// <param name="inputbase">Input base (must match with input)</param>
		/// <param name="outputbase">Output base</param>
		/// <returns>Converted input as string</returns>
		private static string InternalChangebase(string input, ENumericBase inputbase, ENumericBase outputbase)
		{
			try
			{
				var result = string.Empty;
				if (!string.IsNullOrEmpty(input))
				{
					input = input.Replace(" ", String.Empty);
					var isnegative = input.StartsWith("-");
					input = input.Replace("-", String.Empty);
					var value = Convert.ToInt64(input, (int) inputbase);
					result = ((isnegative) ? "-" : String.Empty) + Convert.ToString(value, (int) outputbase);
				}
				return result;
			}
			catch (Exception)
			{
				return String.Empty;
			}
		}
コード例 #5
0
		/// <summary>
		/// Change numerical base. Handles negative numbers.
		/// </summary>
		/// <param name="input">String to convert</param>
		/// <param name="inputbase">Input base (must match with input)</param>
		/// <param name="outputbase">Output base</param>
		/// <returns>Converted input as string</returns>
		public static string Changebase(string input, ENumericBase inputbase, ENumericBase outputbase)
		{
			try
			{
				if (!String.IsNullOrEmpty(input) && input.Contains(ItemSeparator.ToString(CultureInfo.InvariantCulture)))
				{
					var values = input.Split(ItemSeparator);
					var cbvalues = new string[values.Length];
					for (var i = 0; i < values.Length; i++)
						cbvalues[i] = Changebase(values[i], inputbase, outputbase);
					return String.Join(ItemSeparator.ToString(CultureInfo.InvariantCulture), cbvalues);
				}

				return InternalChangebase(input, inputbase, outputbase);
			}
			catch (Exception)
			{
				return String.Empty;
			}
		}