日期:2014-05-18  浏览次数:20701 次

DllImport的使用
有一DLL,代码如下:
namespace DLLTest
{
  public class Invoker
  {
  public bool Invoke(int k)
  {
  if (k < 1)
  return true;
  else
  return false;
  }
  }
}

我想外部调用这个DLL文件,这个文件没有给REGSVR32注册,并且我不想通过DLL引用,而通过DllImport,不知道如何实现。
这个DLL文件是其他EXE使用,随EXE文件夹转移,可能非固定,我想在新程序外部设定这个DLL的路径,然后通过DllImport调用,谁能解答一下?

------解决方案--------------------
就以顶楼代码为例
C# code
Assembly asm = Assembly.LoadFile(dll文件路径);
string typeName = "DLLTest.Invoker";
Type ikt = asm.GetType(typeName);
MethodInfo ikm = ikt.GetMethod("Invoke", BindingFlags.Instance | BindingFlags.Public);
object ins = asm.CreateInstance(typeName);
bool result = (bool)ikm.Invoke(ins, new object[] { 0 });