2011-10-19 7 views
1

Visual Studioでの経験がほとんどない非常に錆びたネイティブC++プログラマーです。私はちょうどそれにドロップされるファイルの拡張子を変更するシンプルなプログラムをノックしようとしているが、DragDropイベントがファイルにドロップされたときに発生するタイトルの問題に遭遇した。これは、次の行までです。「System.InvalidCastException」タイプの最初のチャンス例外が何者のファイルでも発生しました

String^sOldName =(String ^)e-> Data-> GetData(DataFormats :: FileDrop、false);

は例外をスローアップし、イベントから抜け出します。私はこの場所のいたるところにあるこのコードをたくさんリッピングしたので、それはちょうど古風な構文なのかもしれません。

本当にありがとうございます。ありがとう。

答えて

0

ここには2つの問題があります。

最初にGetData呼び出しが自動的にフォーマット変換を処理できるように、trueではなく、falseと指定することができます。データの形式が正しくない場合は、データをString^に変換することはできません。

第2に、シェルファイルドロップからのデータは、通常array<String^>^であり、String^ではありません。

次のことを試してみてください。完全に働いた非常に多くの

array<String^>^ sOldName = (array<String^>^) e->Data->GetData(DataFormats::FileDrop, true); 
+0

おかげで、。他の誰かが私と同じくらい遅く、これを読んでいるなら、文字列が配列になっていることを忘れずに、それ以降はそのように扱う必要があります。まもなく大括弧で囲まれて固定されました。 – user962023

関連する問題