【发布时间】:2017-04-27 12:34:22
【问题描述】:
所以我有这个 DLL 和另一个我认为被称为注入器/加载器的东西?它基本上将我的 DLL 加载到自身的进程中,因此它需要我的 DLL 并将其加载到“Injector.exe”的进程中 在下面的示例中,它不是从资源加载它,而是从桌面加载,同样的事情也适用于此。
现在它正在被加载,它并没有真正调用任何函数,这就是我的问题所在。
我想在加载 DLL 时调用一些 Messagebox 函数。
据我所知,最合乎逻辑的方法是在 btnAssemblyLoad_Click 事件中执行此操作,因此当事件发生时,它会调用 DLL 中的函数。
问题是我不知道这会叫什么,我读过一些关于“反射”的东西,但我不确定这是我需要的。
我应该怎么做?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace AssemblyLoader
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnBrowse_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if(ofd.ShowDialog() == DialogResult.OK)
{
tbAssemblyLocation.Text = ofd.FileName;
}
}
private void btnAssemblyLoad_Click(object sender, EventArgs e)
{
AssemblyName an = AssemblyName.GetAssemblyName(tbAssemblyLocation.Text);
Assembly.Load(an);
}
}
}
DLL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MSgBOxDllCS
{
public class Funcs
{
public void CallMessageBox()
{
MessageBox.Show("Hello");
}
}
}
【问题讨论】:
标签: c# dll .net-assembly messagebox loader