C#中VarPtr的實現

來源:互聯網
上載者:User

VarPtr 是 VB 中的一個函數,這個函數的作用,是返回變數的地址,說白了就是一個指標,但是,.Net平台放棄了指標,採用了委託,對於Managed 程式碼,.Net 的限制較多,這也跟 .NET 平台的本身定位有關係。

VarPtr在 C# 和 VB.NET 中,都不存在了,但是,在使用.NET平台,做一些外設的二次開發的時候,有時還是需要用到類似 VarPtr 的功能,例如: USB 裝置介面, COM裝置等。

這裡,給出一個 VarPtr 的 在 .NET 平台下 C# 的實現方法:

int VarPtr(object e){    System.Runtime.InteropServices.GCHandle gh = System.Runtime.InteropServices.GCHandle.Alloc(e, System.Runtime.InteropServices.GCHandleType.Pinned);    int gc = gh.AddrOfPinnedObject().ToInt32();    gh.Free();    return gc;}    

這個代碼的使用方式,和 VB 的 VarPtr 是一致的,希望能幫到有需要的朋友吧。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.