C#アプリケーションから受け取っているString ^の配列を変換する際に問題が発生しました。なぜString ^の配列を作成できないのですか? 私はC++をかなり新しくしているので、どんな助けもありがとうございます。ハンドルの配列は許可されていません。C++
public ref class Example
{
public:
String^ Convert(String^ pointNames[], String^ outputPath)
{
std::string convertedPath = msclr::interop::marshal_as<std::string>(outputPath);
std::string result = otherFunction(pointNames, convertedPath);
return msclr::interop::marshal_as<String^>(result);
}
};
pointsNames []にはエラーとして下線が表示されます。ハンドルの配列は許可されていません。
C#アプリケーションからC++に文字列の配列を送る方が良いでしょうか?
「String^pointNames []」を 'WriteOnlyArray^pointNames'に変更することをお勧めします。 –
Thebluefish
@Thebluefish私はストリング^をWriteOnlyArray ^に置き換えました^しかし、コンパイラはWriteOnlyArrayがテンプレートではないと言っていますが、ライブラリをいくつか含める必要がありますか? –
これは 'Platform'名前空間に属しているようです - [この投稿](https://social.msdn.microsoft.com/Forums/en-US/f0e968b2-5798-430a-8a00-d45c4a9ef1e0/pointer- to-ac-array-of-hat-handles?forum = winappswithnativecode)を参照してください。 – Thebluefish