#visual-studio-2010 #exception #drag-and-drop
#visual-studio-2010 #исключение #перетаскивание
Вопрос:
Здесь очень ржавый программист на языке C с практически нулевым опытом работы с Visual Studio. Я просто пытаюсь собрать простую программу, которая изменит расширение файлов, которые на нее сбрасываются, но я столкнулся с проблемой в названии, которая возникает, когда событие DragDrop запускается при перетаскивании файла в форму. Оно доходит до следующей строки:
Строка ^ sOldName = (Строка ^) e-> Data-> getData(DataFormats::FileDrop, false);
затем возникает исключение и прерывается событие. Я разорвал много этого кода повсюду, так что есть большая вероятность, что это просто старомодный синтаксис или что-то в этом роде.
Я действительно ценю любую помощь в этом. Спасибо.
Ответ №1:
Здесь есть две проблемы.
Во-первых, вы можете указать true
, not false
, чтобы разрешить GetData
вызову автоматически обрабатывать преобразование формата для вас. Если данные в неправильном формате, вы не сможете преобразовать данные в String^
.
Во-вторых, данные из файла оболочки обычно удаляются array<String^>^
, а не String^
.
Попробуйте выполнить следующее:
array<String^>^ sOldName = (array<String^>^) e->Data->GetData(DataFormats::FileDrop, true);
Комментарии:
1. Большое спасибо, это сработало отлично. В случае, если кто-то еще работает так же медленно, как я, и читает это, не забывайте, что строка теперь является массивом и после этого должна обрабатываться как таковая. Вскоре исправлено с помощью нескольких квадратных скобок.