簡體   English   中英

在C ++ / CLI中將System :: IntPtr轉換為int *

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

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