当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,