Megas13 писал(а):В общем нужно открыть файл (желательно средствами ВБ, т.е. командой open) содержащий символы юникода.
Private Sub Form1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Long, file_n As String
If Data.GetFormat(vbCFFiles) Then
For i = 1 To Data.Files.Count
file_n = Data.Files(i)
Open file_n For Binary As #1 '<=== тут возникает ошибка
'Тут делаем чтото с файлом
Close 1
Next
End If
End Sub
SLIM писал(а):FSO пробовал? Он должен нормально работать с Unicode
tyomitch писал(а):Есть вероятность, что уже DataObject не понимает Юникод, тогда FSO не поможет.
SLIM писал(а):Поэтому может воспользоваться API перекодировкой?
tyomitch писал(а):Т.е. нужно искать не альтернативный механизм работы с файлами, а альтернативный механизм работы с OLE Drop.
Megas13 писал(а):tyomitch писал(а):Т.е. нужно искать не альтернативный механизм работы с файлами, а альтернативный механизм работы с OLE Drop.
Проблема ещё усугубляется тем, что программа открывает файлы не только посредством OLE Drop, но и через Common Dialog и через коммандную строку. И во всех случаях появляются вопросики вместо юникодных символов.
Megas13 писал(а):Вот такие вот пироги. Придется значит и с файлом работать посредством API.
Хакер писал(а):А куда делся мой ответ про RegisterDragDrop и IDropTarget?
Хакер писал(а):Я не о глюках, а о модераторах. Вдруг кто-то снёс по каким-то причинам.
Хакер писал(а):Вряд ли, но теоретически могло, если удаляющий сделал запрос и тут же разорвал соединение.
Хакер писал(а):Но я скорее сам непрожал кнопку "Отправить". А вопрос задал не только с целью собственно спросить, а также чтобы показать своё как-бы негодование по поводу того, что был написан относительно большой пост, но по каким-то причинам его запощивание обломалось.
Megas13 писал(а):Кстати, FSO отказался открывать файл в юникоде также как и команда open.
Megas13 писал(а):Прикрепил к сообщению пример кода.
Megas13 писал(а):Хм... не понятно, но здорово
tyomitch писал(а):Кстати, всю конструкцию из lstrlenW+ReDim+CopyMemory можно заменить одним вызовом SysAllocString
Хакер писал(а):А куда делся мой ответ про RegisterDragDrop и IDropTarget?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 91