none
無法載入DLL RRS feed

  • 問題

  • 網站於開發階段時將DLL 放在BIN 資料夾底下,使用時是這樣子呼叫DLL

        private const string _fileDll = "EDXP33126.dll";
        [DllImport(_fileDll, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, EntryPoint = "Encrypt")]
        private static extern string Encrypt(string st);
    

    在本機測試都是正常的

    網站發行後複製到伺服器上運行時便發生了:無法載入 DLL 'EDXP33126.dll': 找不到指定的模組。 (發生例外狀況於 HRESULT: 0x8007007E)

    最後索性把DLL檔放在C槽底下

        private const string _fileDll = @"C:\EDXP33126.dll";
        [DllImport(_fileDll, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, EntryPoint = "Encrypt")]
        private static extern string Encrypt(string st);
    

    在本機測試依舊是正常的

    網站發行後複製到伺服器上運行時便發生了:無法載入 DLL 'C:\EDXP33126.dll': 找不到指定的模組。 (發生例外狀況於 HRESULT: 0x8007007E)

    可是我在同一個頁面上使用:return File.Exists(path);

    是存在的,為什麼會讀不到DLL呢?

    我把DLL的呼叫使用寫成一個類別,如下:

    public class CodePorcess : IDisposable
    {
        private string thiskey { get; set; }
        private const string _fileDll = @"C:\EDXP33126.dll";
        [DllImport(_fileDll, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode, EntryPoint = "Encrypt")]
        private static extern string Encrypt(string st);
    
        public bool dllex(string path)
        {
            return File.Exists(path);
        }
    public string ENCode(string DEString)
      {
      return Encrypt(DEString);
      }
    }

    怎麼樣就是出現找不到指定的模組?該如何才能使用呢?

    本機網站開發使用VS2010

    伺服器win2003 .netFrameworK 2.0


    • 已編輯 蛤? 2011年12月28日 上午 06:50
    2011年12月28日 上午 06:43

解答

所有回覆