簡體   English   中英

通過 P/Invoke 將 MFC CArray 編組到 C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM