在做一个华为的企业信息机,短信服务商提供了个 接口 SMEntry.dll,已将它放至bin文件夹下
以下为代码,运行到int count = SP_Startup("10.10.117.6,1393", "test", "test");
报错 “无法加载 DLL“SMEntry.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。”根据网上搜索的说把SMEntry.dll也都拷入C:\WINDOWS\system32\inetsrv和C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\,还是报无法加载 DLL
请各位高手指点迷津

解决方案 »

  1.   

    你的函数是怎样封装的?[DllImport("SMEntry.dll")]
      

  2.   

    using System.Runtime.InteropServices;namespace Front.zxzy
    {
        public partial class Question : System.Web.UI.Page
        {
            [DllImport("SMEntry.dll")]
            public static extern int SubmitShortMessage(string AtTime, string SourceAddr, string DestAddr, string Content, int ContentLen, int NeedStateReport, string ServiceID, string FeeType, string FeeCode);    
            [DllImport("SMEntry.dll")]
            public static extern int SP_Startup(string DBName, string Account, string Password);    
            [DllImport("SMEntry.dll")]    
            public static extern void SP_Cleanup();
     到int count = SP_Startup("10.10.117.6,1393", "test", "test"); 就报无法加载 DLL“SMEntry.dll
      

  3.   

    有一个DLL需要注册到系统的,
    你在那台机器上用 就到那台机器上注册下那个DLL就可以了。
      

  4.   

    目前表面上看不出来什么问题。我估计dll不全。你把dll放在system32下再试一次。如果情况还不理想,先联系下厂家。
      

  5.   

    看看DLL里有没有你调用的那个函数?
      

  6.   


    //如果是asp.net程序,必须是全路径,即便在bin下也必须写全路径,例如:
     [DllImport(@"c:\xxxx\bin\SMEntry.dll")]
      

  7.   

    非常感谢楼上的 [DllImport(@"c:\xxxx\bin\SMEntry.dll")],换成全路径代码就能继续往下走了,但是信息机初始化成功,错误码=-1011,郁闷啊
      

  8.   

    将SMEntry.dll拷贝到当前目录或\windows\system32目录下 
      

  9.   

    我曾经在做过这样的!他们应该会给一个开发文档 dll 放在system文档下!
    [DllImport("SMEntry.dll")]文档里面有对方提供的函数!
    public static extern ...xi这样写一次!
    然后调用即可!