Получение «общего языкового времени выполнения обнаружило неверную программу». Ошибка при попытке картировать чтению, исC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получение «общего языкового времени выполнения обнаружило неверную программу». Ошибка при попытке картировать чтению, ис

Сообщение Anonymous »

Я пытаюсь отобразить код IL для метода asp.net Core ReadUnalined , как определено здесь в .NET Framework с использованием DynamicMethod после этого примера. /> Мой код: < /p>

Код: Выделить всё

private delegate T ReadUnalignedInvoker(ref byte input);

private delegate TReturn OneParameter(TParameter0 p0);

public static T ReadUnaligned(U source)
{
Type[] methodArgsTypes = { typeof(U) };

var dm = new DynamicMethod("ReadUnaligned", typeof(T), methodArgsTypes, typeof(SizeHelper).Module);
ILGenerator il = dm.GetILGenerator();

il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Unaligned, (byte)0x1);
il.Emit(OpCodes.Ldobj);
il.Emit(OpCodes.Ret);

OneParameter invoker = (OneParameter)dm.CreateDelegate(typeof(OneParameter));

return invoker(source);
}
< /code>
Вызов метода: < /p>
var buffer = new byte[Unsafe.SizeOf()];

ReadProcessMemory(_processHandle, baseAddress, ref buffer[0], buffer.Length, out var numberOfBytesRead);

ReadUnaligned(buffer[0]);
где readprocessmemory взята из Kernel32.dll :

Код: Выделить всё

[DllImport("kernel32.dll", SetLastError = true)]
internal static extern bool ReadProcessMemory(SafeProcessHandle processHandle, IntPtr baseAddress, ref byte buffer, int bufferSize, out int numberOfBytesRead);
Есть идеи, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/617 ... -when-tryi
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»