asp.net中如何载入C++的dll
asp.net中如何载入C++的dll:
最近做的一个asp.net,出现个问题,程序中有两个c++的dll程序,调用dll时通过
public class DllInvoke
{
[DllImport("kernel32.dll")]
private extern static IntPtr LoadLibrary(String path);
[DllImport("kernel32.dll")]
private extern static IntPtr GetProcAddress(IntPtr lib, String funcName);
[DllImport("kernel32.dll")]
private extern static bool FreeLibrary(IntPtr lib);
private IntPtr hLib;
public DllInvoke(String DLLPath)
{
hLib = LoadLibrary(DLLPath);
}
~DllInvoke()
{
FreeLibrary(hLib);
}
///将要执行的函数转换为委托
public Delegate Invoke(String APIName, Type t)
{
IntPtr api = GetProcAddress(hLib, APIName);
if (api == IntPtr.Zero)
{
return null;
}
else
{
return (Delegate)Marshal.GetDelegateForFunctionPointer(api, t);
}
}
}
这个类来获取dll的地址,同过这个来
DllInvoke dll = new DllInvoke(Server.MapPath(@"~/Bin/Train.dll"));
Train train = (Train)dll.Invoke("Train", typeof(Train));
得到Train.dll 的地址,问题出现在在我自己的电脑上,运行没有任何问题。可是一旦发到服务器上后,就获取不到相应的train.dll的地址,
public DllInvoke(String DLLPath)
{
hLib = LoadLibrary(DLLPath);
}
这个函数中的hLib=0,请问各位asp.net大神们,这是为什么,跪求一份解决的方法。 --------------------编程问答-------------------- 是不是dll需要注册,你服务没有注册,怎么老是有人问,本地的可以,服务器不可以,看问题的人都崩溃了!
补充:.NET技术 , ASP.NET