[英]Marshalling an MFC CArray to C# through P/Invoke
我正在嘗試編寫一個 C# class (2010),它允許使用包含在舊版 C++ Z0641Z316233FE5EC2484C 中的函數這些函數使用 __stdcall 導出,並具有不同的參數集。 我處理字符串和其他原語沒有問題,並且能夠毫無問題地調用這些函數。
問題是一些函數包含一個 CArray & 引用作為參數。 我無法弄清楚如何編組這種數據類型,或者是否有可能。
不幸的是,我無法更改舊版 DLL 代碼。
為了正確處理這個問題,您可以制作一個包裝器 DLL (使用與您要調用的相同的 MFC/C++ 運行時版本,並確保以傳統指針的形式接受相同的數組,例如指向本機 C++大批。
可以從 C# 調用此包裝器 DLL。
您可以嘗試使用更新的 MFC 版本(並使用 C++/CLI 進行編組),但是新的CArray
可能與遺留庫所期望的二進制不兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.