Вызов функции DLL без вызова в основном

Я хочу знать, как мы можем вызвать функцию, которая определена во внешнем статическом классе (файл dll) без вызова его в main.

Чтобы прояснить ситуацию, рассмотрим exe-файл, код которого не раскрывается, и мы не можем вносить в него какие-либо изменения, теперь я хочу протестировать exe-файл с определенными тестовыми примерами, которые определены в моем dll-файле, для которого вызывается функция должна быть сделана внутри функции main() exe-файла. Но, как уже упоминалось, у меня нет разрешения изменять код исполняемого файла. Теперь, как эта dll-функция вызывается в требуемой точке выполнения без вызова ее с помощью visual studio.

Я хочу вызвать функцию без добавления какой-либо строки в основную функцию.

Чтобы было понятнее, я просто хочу добавить пример

static class DllClass
{
   static void dllFunction()
   {
      //some implementation.
   }
}
class ThirdParty
{
  public static void Main()
  {
    //Default implementation that i cannot modify.
    //Invoking my static function at this point without calling.(i.e i cannot call DllClass.dllFunction()) 
    //continuing with default implementation.
  }
}     

1 ответ

Одна идея заключается в том, что с помощью Powershell вызовите файл dll, если вы не смогли изменить код в.exe.

Например, простая библиотека с методами.

пространство имен Math
{
Методы общественного класса
{
публичные методы ()
{
}
public static int Compare1 (int a, int b)
{
если (возврат a;
еще
возврат б;
}

public int Compare2 (int a, int b)
{
если (возврат a;
еще
возврат б;
}
}
}

А затем вызвать его в среде Powershell:

[Пустоты] [reflection.assembly]:: LoadFile ("C: /xxx.dll")
02. [Math.methods]:: Compare1 (10,8)
03. $ a = Математические методы нового объекта.
04.$a.Compare2(2,6)

Другие вопросы по тегам