C#程式和其使用的dll必須是同一版本的VS編譯的

來源:互聯網
上載者:User

用VS2008編寫了一個用C語言寫的XORDll.dll非託管串連庫檔案,而使用這個XORDll.dll的C#程式是用VS2010編譯的,經過匯入:

[DllImport("XORDll.dll",                     EntryPoint = "OutEncrypt",                    CharSet = CharSet.Ansi,   //如果使用C寫的XORDll.dll,這個字元集使用Auto會導致動態串連失敗。                    CallingConvention=CallingConvention.StdCall)        ]        public static extern int OutEncrypt( string FilePath, string  SecretWord );  //第一個參數:加密檔案路徑,第二個:密碼

測試出現如下異常:

        我就納悶了,在學校機房測試成功了,怎麼用自己的機子測試就出錯呢!仔細分析後回想起我在機房用的C#測試程式和XORDll.dll都是用Vs008編譯的。因此,猜測可能是編譯器的版本不同造成的。重新將XORDll.dll用VS2010編譯後,再次測試成功了。

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

疑點:VS2005編譯的XORDll.dll用VS2008編寫的測試程式測試成功,為什麼VS2008編譯的XORDll.dll用VS2010編譯的測試程式就遇到到上述異常?不得其解。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.