[英]System::IntPtr to int* in C++/CLI
我試圖使用C ++ / CLI互操作層從C#應用程序調用現有的C ++庫。 我有一個看起來像這樣的C ++函數:
void doSomething(int* foo, int size);
還有一個C#對象,它包含兩個字段,一個IntPtr start和一個int size。 我寫了一個托管的C ++類,看起來像這樣:
public ref class Wrapper {
public:
void run(System::IntPtr itn, int size);
};
現在我想在Wrapper :: run中調用doSomething,並且doSomething可以訪問C#對象指向的同一數據塊。 如果沒有副本,我正在嘗試做什么,如果是這樣,怎么樣?
要從Wrapper :: run調用doSomething ,請嘗試轉換System :: IntPtr :: ToPointer的返回,如下所示:
doSomething(reinterpret_cast<int*>(itn.ToPointer()), size);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.