Кракозябры в имени файла при раб

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
sergiokey
Knows some wx things
Knows some wx things
Posts: 30
Joined: Sat Mar 21, 2009 6:55 am

Кракозябры в имени файла при раб

Post by sergiokey » Wed Jun 03, 2009 6:12 pm

здравствуйте, пытаюсь открыть файл через wxAutomatizationObject с помощью "Documents.Open", если в пути есть русские буквы, не может открыть, сохраняю через SaveAS выдаёт сохраняет, но вместо имени - кракозябры. Вы не знаете как это убрать и сделать нормально?

и еще, уважаемые Знатоки :) не могли бы подсказать? при использовании технологии document/view при открытии файла в прослойке wxWidgets между wxDocManager::OnFileOpen и wxDocument::OnCreate на одной машине до отображения диалога виснет. С сохранением тоже самое. Моего кода в этой прослойке как вы понимаете нет.
Ни на каких других не виснет, а на этой виснет. и не понятно в чем дело - вроде бы тестировалось и на лиц ыиндах, и не лиц, сервиспаки тоже были разные, и была установлена вижуал студия, и не была - на всех нормально, а на этом нет, хотя он ничем особенным не выделяется.
Есть подозрения на comdlg32.dll, в котором лежат функции GetOpenFileNameW и GetSaveFileNameW, но изза чего это может быто - не знаю.

проект юникодный
Если кто-то с этим сталкивался, подскажите.
Visual Studio 2008 Express
wxWidgets 2.8.10
Windows XP sp2

Kolya
Experienced Solver
Experienced Solver
Posts: 85
Joined: Mon Dec 11, 2006 11:35 am
Location: /dev/null

Re: Кракозябры в имени файла при р

Post by Kolya » Thu Jun 04, 2009 6:33 am

sergiokey wrote:пытаюсь открыть файл через wxAutomatizationObject с помощью "Documents.Open", если в пути есть русские буквы, не может открыть, сохраняю через SaveAS выдаёт сохраняет, но вместо имени - кракозябры. Вы не знаете как это убрать и сделать нормально?
Похоже на использование функций From8BitData. Даже если проект юникодный, использование ANSI строк в нем может дать такие проблемы. Программы Microsoft Office полностью уверен нормально работают с юникодом. В отладне можно пройтись и найти преобразование.
sergiokey wrote:при использовании технологии document/view при открытии файла в прослойке wxWidgets между wxDocManager::OnFileOpen и wxDocument::OnCreate на одной машине до отображения диалога виснет. С сохранением тоже самое. Моего кода в этой прослойке как вы понимаете нет.
Ни на каких других не виснет, а на этой виснет. и не понятно в чем дело - вроде бы тестировалось и на лиц ыиндах, и не лиц, сервиспаки тоже были разные, и была установлена вижуал студия, и не была - на всех нормально, а на этом нет, хотя он ничем особенным не выделяется.
Есть подозрения на comdlg32.dll, в котором лежат функции GetOpenFileNameW и GetSaveFileNameW, но изза чего это может быто - не знаю.
Можно было бы посмотреть при помощи вызова Break All в отладке, но на машине вполе вероятно не установлена студия. Тогда можно анализировать логи wx. Ну или подправить код wx, добавив туда свое логирование.

sergiokey
Knows some wx things
Knows some wx things
Posts: 30
Joined: Sat Mar 21, 2009 6:55 am

Post by sergiokey » Fri Jun 05, 2009 4:58 am

спасибо за ответ

я попробовал решить 2-ю проблему, как Вы писали:
к сожалению не получилось - выводил лог в wxLogWindow - теда ничего не пишется про открытии и сохранении документа, просто виснет

а первую (с кодировкой) возможности проверить не было, сегодня вечером попробую
Visual Studio 2008 Express
wxWidgets 2.8.10
Windows XP sp2

Post Reply