お世話になっております。
表題についていろいろ調べたのですがエラーの解決方法が見つからないため、質問させてください。
環境はVC++2005 CLD windowsフォームアプリケーション です。
貼り付けたリストボックスにtxtファイルをドラッグドロップして中身を取り出したいのですが、dragdrop関数内で、ファイルのパスを抜き出す部分でエラーが解決できません。
環境に合わせて下記のようなdragdrop関数を作成中です。
System::Void Form1::commandListBox_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) {
if(e ->Data ->GetDataPresent(DataFormats::FileDrop)){ // ファイルドロップのとき
std::string files[] = (std::string[])(e->Data->GetData(DataFormats::FileDrop));
}
}
最後の行はMSDNなどで書かれていた
string[] files = (string[])(e.Data.GetData(DataFormats.FileDrop));
となっている部分を参考にしているつもりですが、この部分で下記のエラーがでます。
1>.\mySrc\tab0.cpp(45) : error C2440: '型キャスト' : 'System::Object ^' から 'std::string []' に変換できません。
1> 配列型への変換はありませんが、参照またはポインタから配列への変換があります。
1>.\mySrc\tab0.cpp(45) : error C2075: 'files' : 配列の初期化には中かっこ ({}) が必要です。
このエラーの解決方法か、ドラッグドロップしたファイルのパスを取得する方法をご教授頂ければ幸いでございます。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
std::string[] を使うより cli::array<String^>^ を使う方が無難だと思います
array<String^>^arDrops = (array<String^>^)e->Data->GetData( DataFormats::FileDrop );
といった具合で取り出して
for( int n = 0; n < arDrops->Length; n++ ) {
String ^sName = arDrops[n];
// Dropされたファイルの個別の処理
}
といった具合でしょう
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- C言語・C++・C# このプログラミング誰か教えてくれませんか 3 2022/05/13 17:27
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 2 2022/05/14 09:45
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C# で、あるフォルダー内にあるすべてのテキストファイルを別のフォルダーにコピーする。 4 2022/11/21 13:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBでファイルが開かれているか...
-
gccを行ってもexeファイルが生...
-
FTPの送信結果を検知したい
-
access テキストボックスの値取得
-
Access2013にてドラッグ&ドロ...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
Adobeのプレミアプロの書き出し...
-
Returnに対するGoSubがありません
-
PowerShellを使って関連付けら...
-
自身のファイルのコピーを作成...
-
エクセルマクロでエラーの原因...
-
エクセル「これ以上新しいフォ...
-
freadでデータがない場合の読込...
-
cube PDFについて
-
ACCESS VBAでのインポート
-
DialogBoxのリソース読み込み
-
Request.BinaryReadでのエラー
-
VBから参照できないCのDLLを使...
-
エラー:インクルードファイル ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
gccを行ってもexeファイルが生...
-
VBでファイルが開かれているか...
-
「パス名が無効です」の発生原因
-
batファイルでレジストリキーの...
-
Returnに対するGoSubがありません
-
VBから参照できないCのDLLを使...
-
PowerShellを使って関連付けら...
-
アクセスのクエリでコンパイル...
-
VB6 Dir関数で52エラー発生
-
FTPの送信結果を検知したい
-
NAS上のファイルの使用中が解除...
-
VBA ExecuteExcel4Macro 型が一...
-
access テキストボックスの値取得
-
EXCELのVBAでWORDが開いてある...
-
すでにファイルが開かれている...
-
EXCELVBAでONEDRIVE上への保管...
-
Excelファイルのマクロによる排...
-
OUTLOOK VBA 指定フォルダ内の...
-
RAR圧縮ファイル(分割)の順番が...
-
エクセルマクロでエラーの原因...
おすすめ情報