簡體   English   中英

轉換數組<system::string^>到 std::string*</system::string^>

[英]Converting array<System::string^> to std::string*

我是 C++/Cli 的新手,實際上在 C# 項目中我有我轉換為數組的字符串 [],現在我需要將此非托管數組傳遞到本機 CPP 文件中,即我想將此“數組”轉換為 std: :細繩*。 我怎么能做到這一點。 我在下面試過這個:

無效函數A(cli::array^varA){

cli::pin_ptr<System::String^>varA_value = &varA[0];
    std::string* varA_value_final = varA_value;

}

但它給出了錯誤提示:cli::pin_ptr 類型的值不能用於初始化 std::string* 類型的實體

托管 class System::String與非托管 class std::string完全不同。 類是完全不同的,存儲完全不同的數據。 你不能得到一個指針並假裝它是另一個。

遍歷cli::array<System::String^> ,轉換每個元素,並將結果粘貼到std::vector<std::string>或其他非托管容器中。 獲取指向第一個元素的指針。 使用marshal_as<std::string>()轉換每個元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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