Как запустить бинарный код c ++ из приложения c #

У меня есть двоичные данные из приложения C ++, которое работает. Я хочу запустить этот конкретный двоичный код прямо из моего приложения на C #.

У меня есть эта функция, которую я получил из интернета:

    static void MemExe(byte[] buffer)
{
Assembly asm = Assembly.Load(buffer);

if (asm.EntryPoint == null)
throw new ApplicationException("No entry point found!");

MethodInfo ePoint = asm.EntryPoint;
object ins = asm.CreateInstance(ePoint.Name);
ePoint.Invoke(ins, null);
}

Он хорошо работает с двоичным кодом C #, но если я пытаюсь открыть двоичный код C ++, происходит сбой.

Исключение прямо здесь:

Дополнительная информация: Не удалось загрузить файл или сборку ‘5154816 байт, загружен Test, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null’ или одна из его зависимостей. Была предпринята попытка загрузить программу с неверным форматом.

Я думаю, это что-то связано с заголовком? Я не эксперт …

Можно ли запускать бинарный файл c ++ так же, как функция Memex
работает бинарный C #?

Благодарю.

0

Решение

Assembly.Load(...) будет загружать только двоичные файлы .NET.

Если вы хотите иметь доступ к бинарному API-интерфейсу, отличному от .NET, вам следует использовать сигнатуры P / Invoke.

Если вы хотите запустить исполняемый файл, используйте System.Diagnostics.Process.Start(...),

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector