MFC C ++: TODO <описание файла> перестал работать - PullRequest
0 голосов
/ 12 июля 2011

Я написал программу, которая пытается записать файл в каталог C: \ windows \. Я протестировал программу на нескольких ПК с winXP, win7 (64 и 32 бит). Но когда я установил ее на ПК моего клиента, она вылетала с сообщением: TODO (описание файла) перестало работать Пожалуйста, если кто-нибудь знает какое-либо решение, ответьте мне.

Ответы [ 6 ]

5 голосов
/ 12 июля 2011

Решение - не записывать в папку C:\Windows.Вы не работаете в команде Microsoft Windows.

4 голосов
/ 14 июля 2011

Удивительно, что вы дали своему клиенту продукт "TODO: ..."?Отредактируйте информацию о версии, чтобы отразить название вашего продукта ~

Что касается сценария сбоя:

  • Проверьте, действительно ли вашему приложению нужны права администратора, если да, начните с «Запуск от имени администратора»и посмотрите, как это решит проблему.
  • Просмотрите подробности проблемы в «Остановленном рабочем диалоговом окне» или в средстве просмотра событий Windows.В обоих случаях вы видите код исключения (например, 0xC0000005) и имя DLL.Для этого вы должны включить генерацию файла PDB, включив флаг /DEBUG в настройках компоновщика (это , а не то же самое, что макрос _DEBUG в настройках компилятора!).
  • Поместите некоторые файлы регистрации или сообщения-бокс (временный) и посмотреть до куда программа идет правильно.Да, вам нужно внести несколько изменений, собрать и снова передать клиенту (и, пожалуйста, не указывайте «TODO» в качестве названия продукта - будьте профессионалом!).
1 голос
/ 12 июля 2011

Существует несколько возможных причин, среди которых нет доступа на запись (возможно, пользователь, запустивший программу, не имеет доступа на запись в папку C: \ Windows. Попробуйте вручную создать файл в этом месте) или неправильное программирование.1001 *

В любом случае у вас есть несколько вещей, чтобы попытаться выяснить проблему.Если отладка невозможна, вы должны поместить разумные части кода в попробуйте перехватить блоки (например, часть, где вы пишете файл).И если ошибка обнаружена, вы можете вывести сообщение о той части, где находится ошибка.Вы также должны включить решение для ведения журнала и добавить журналы в различных местах кода.После установки обновленного приложения при появлении ошибки посмотрите в файле журнала, чтобы увидеть, где остановился код.

0 голосов
/ 14 июля 2011

«Я написал программу, которая пытается записать файл в каталог C: \ windows \.»

Это твоя проблема. Не делай этого.

0 голосов
/ 12 июля 2011

Помимо вопроса о разрешениях, первое, что приведет к аварийному завершению работы вашего приложения, - это то, что среды выполнения не устанавливаются на ПК вашего клиента.Устанавливает ли ваш установочный пакет среды выполнения MSVC?Если нет, установили ли вы распространяемые среды выполнения MSVC на этом ПК?

0 голосов
/ 12 июля 2011

Возможно ли, что UAC выключен, а ваш клиент - нет? Или пользователь клиента не имеет прав администратора? Пользовательскому процессу не будет разрешено писать в папку c: \ Windows. В этом случае при попытке создать файл возникнет исключение.

Подходящим местом для создания файла данных будет:

  1. Данные приложения в папке пользователя, если файл для пользователя.
  2. ProgramData (Win7) или Данные приложения в разделе Все пользователи (XP), если файл относится к приложению (журнал или около того).
...