Hey JB,

Thanks for the quick reply.
I've upgraded my code to 0.9.2. I'm not sure how to use a
VariableDefinition to hold the values of get_Now and get_Ticks in the
code I've posted earlier. Maybe I shouldn't try to write what the
disassembler is giving me...

Here's what I have so far (obviously, the Ldlocal_S instructions
fail):

var processor = init.Body.GetILProcessor();
processor.Append(processor.Create(OpCodes.Ldstr, "start time:{0}\n"));
met =
assembly.MainModule.Import(typeof(DateTime).GetMethod("get_Now"));
processor.Append(processor.Create(OpCodes.Call, met));
processor.Append(processor.Create(OpCodes.Stloc_0));

processor.Append(processor.Create(OpCodes.Ldloca_S, 0));

met =
assembly.MainModule.Import(typeof(DateTime).GetMethod("get_Ticks"));
processor.Append(processor.Create(OpCodes.Call, met));
processor.Append(processor.Create(OpCodes.Stloc_1));

processor.Append(processor.Create(OpCodes.Ldloca_S, 1));

met = assembly.MainModule.Import(typeof(int).GetMethod("ToString"));
processor.Append(processor.Create(OpCodes.Call, met));

met = assembly.MainModule.Import(typeof(string).GetMethod("Format",
new [] {typeof(string), typeof(object)}));
processor.Append(processor.Create(OpCodes.Call, met));


Thanks for all you help!

Louis

On May 7, 7:45 pm, Jb Evain <[email protected]> wrote:
> On May 8, 2:38 am, Louis Salin <[email protected]> wrote:
>
> > How can I append the Ldloca_S instruction?
>
> Give it the VariableDefinition you want to load the address of.
>
> Also it's strongly recommended you use 0.9.2 instead of a 0.6 version.
>
> --
> --
> mono-cecil

-- 
--
mono-cecil

Reply via email to