none
製作DLL檔連接其他DLL檔問題 RRS feed

  • 問題

  • 各位好

    這邊打算使用C# Class Library專案來製作DLL檔來

    而這DLL有必須再連接到另一組已有的DLL

    在專案中透過 DllImport 方式讀取內部API 

    class Link_VendorAPI

    {

     [DllImport("VendorApp.dll", EntryPoint = "VendorGetValue", CallingConvention = CallingConvention.Cdecl)]
            public static extern Int32 VendorGetValue(int value);

    ...

    }

    並且在 Class Library專案試寫以下程式碼

    public class Link_MyFunc

    {

        public int GetValue(int value)
        {
            return Link_VendorAPI.VendorGetValue(value); //廠商的API
        }

    ...

    }

    完成後另外使用測試程式跑做好的DLL檔

     Link_MyFunc MyTest= new Link_MyFunc();

     MyTest.GetValue(123);

    出現"嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。"的訊息

    我想可能是Class名稱Link_VendorAPI沒有被判讀到或者其他原因,想請教各位前輩如何解決

    謝謝

    2020年8月17日 上午 07:53

所有回覆

  • 這要看 VendorGetValue 原來的參數和回傳值設計 ,搞不好他原來參數是指標,那你可能要用 (ref int value) 宣告

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。 https://skilltree.my/

    2020年8月17日 下午 04:22
    版主