Вызов функции 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)