Язык C является «переносимым ассемблером», и вы можете генерировать коды операций x86 напрямую (лучше писать на ассемблере).Если вы скомпилировали код C в объект, вы можете связать его с .net в виде библиотеки.
Если вы пытаетесь динамически генерировать исполняемый код (на лету), вам нужно выделить двоичный файлмассив, вставьте объектный код в массив, затем получите начальный адрес массива после того, как память отправится, назначьте его указателю функции и вызовите его.
Однако антивирусное программное обеспечение специально ищет такое поведение и будетидентифицируйте ваш код как вирус более чем вероятным.
Также ваш процессор имеет сегменты памяти «кода» и сегменты памяти «данных».Как правило, вы не можете динамически изменить сегмент кода, не вызывая segfault, и вы не можете выполнить из сегмента данных, не вызывая segfault.
Кроме того, ваш код будет работать только на процессоре SISC (x86), а не наПроцессор RISC.
Здесь есть над чем подумать.
Раньше мы делали это на ассемблере в старые времена в системах SISC.
Приветствия, Дэвид