在whatever.exe中发生了'System.InvalidCastException'类型的第一次机会异常

时间:2011-10-19 22:55:04

标签: visual-studio-2010 exception drag-and-drop

非常生疏的本地C ++程序员在这里使用Visual Studio几乎没有经验。我只是试图将一个简单的程序组合在一起,这个程序会改变掉落到它上面的文件的扩展名,但是我遇到了标题中的问题,当文件被拖放到表单上时会触发DragDrop事件。它到目前为止如下:

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

然后抛出异常并突破事件。我从很多地方扯掉了很多这样的代码,所以很有可能它只是一种老式的语法或其他东西。

我非常感谢这方面的任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

这里有两个问题。

首先,您可以指定true,而不是false,以允许GetData调用自动为您处理格式转换。如果数据格式不正确,则您无法将数据转换为String^

其次,来自shell文件的数据丢弃通常是array<String^>^,而不是String^

尝试以下方法:

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