Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
-22 / 5 / 0
Регистрация: 15.08.2014
Сообщений: 516

Ошибка в приложении MFC

20.09.2025, 20:59. Показов 3855. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!
Только начал изучать MFC.
Создал проект в VS 2019: тип приложения - несколько документов, стиль = MFC Standard.
Проект создает " стандартный" шаблон документа и простейший CView, как указано далее.

Я заменил родительский объект CTestMFCEmptyView на CEditView, чтобы на экране образовалось что-то более интересное,
чем пустое окно.

В результате в строке с вызовом "f (!ProcessShellCommand(cmdInfo))" возникает ошибка.
При замене CView на CRichEditView - то же самое.

Понятно, что парсинг строки вряд ли является причиной.

Вопрос: в чем может заключаться причина ошибки - что необходимо сделать кроме замены CView на CEditView (в перспективе - др. view), чтобы работало нормально ?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---------------- Шаблонный код в BOOL CTestMFCEmptyApp::InitInstance() - ничего не менялось --------------:
 
    // Зарегистрируйте шаблоны документов приложения.  Шаблоны документов
    //  выступают в роли посредника между документами, окнами рамок и представлениями
    CMultiDocTemplate* pDocTemplate;
    pDocTemplate = new CMultiDocTemplate(IDR_TestMFCEmptyTYPE,
        RUNTIME_CLASS(CTestMFCEmptyDoc),
        RUNTIME_CLASS(CChildFrame), // настраиваемая дочерняя рамка MDI
        RUNTIME_CLASS(CTestMFCEmptyView));
    if (!pDocTemplate)
        return FALSE;
    AddDocTemplate(pDocTemplate);
 
    // создайте главное окно рамки MDI
    CMainFrame* pMainFrame = new CMainFrame;
    if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
    {
        delete pMainFrame;
        return FALSE;
    }
    m_pMainWnd = pMainFrame;
 
 
    // Разрешить использование расширенных символов в горячих клавишах меню
    CMFCToolBar::m_bExtCharTranslation = TRUE;
 
 
    // Синтаксический разбор командной строки на стандартные команды оболочки, DDE, открытие файлов
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
 
    // Команды диспетчеризации, указанные в командной строке.  Значение FALSE будет возвращено, если
    // приложение было запущено с параметром /RegServer, /Register, /Unregserver или /Unregister.
    if (!ProcessShellCommand(cmdInfo))        // --- здесь возникает ошибка - см. скриншот
        return FALSE;
 
 
...
 
------------------ Наследование от CVIEW: - здесь я заменил view --------------------------------------
 
 
//class CTestMFCEmptyView : public CRichEditView
//class CTestMFCEmptyView : public CView -- стандартная заготовка
class CTestMFCEmptyView : public CEditView     // -- это моя версия, которая крашится.
{
protected: // создать только из сериализации
    CTestMFCEmptyView() noexcept;
    DECLARE_DYNCREATE(CTestMFCEmptyView)
 
// Атрибуты
public:
    CTestMFCEmptyDoc* GetDocument() const;
 
// Операции
public:
...
Миниатюры
Ошибка в приложении MFC  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.09.2025, 20:59
Ответы с готовыми решениями:

Ошибка в консольном приложении при подключении MFC?
Здорова! Создал консольное приложение и в него добавил код: #include <iostream> using...

При попытке создать переменную-член типа CString в приложении MFC появляется ошибка
При попытке создать переменную-член типа CString в приложении MFC появляется ошибка. В чем может...

подключение классов MFC к не MFC
Как подключить MFC Class From ActiveX Control к не MFC проекту? т.е. пишу обычными винапи...

23
 Аватар для Наталья8
640 / 404 / 68
Регистрация: 09.03.2016
Сообщений: 4,429
25.09.2025, 01:55
Студворк — интернет-сервис помощи студентам
Почему winApi?
Потому что не хочеться загаживать компьютер всяким мусором.
А вин апи, встроено во все окна.

Добавлено через 3 минуты
Цитата Сообщение от LUN2 Посмотреть сообщение
здесь генерируется целый оконный интерфейс
У тебя есть идеи? Зачем тебе интерфейс?
Програмировать учись, а не интерфейсы создавать, черезжопными методами.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
25.09.2025, 11:46
Цитата Сообщение от Наталья8 Посмотреть сообщение
Програмировать учись, а не интерфейсы создавать, черезжопными методами.
WinApi - это изначально "черезжопный" метод.
Сколько ты его не оборачивай целофаном, лучше не станет. Но радикальные обертки которые полностью меняют подход, давно существуют в виде различных фреймворков и библиотек.
MFC - это попытка автоматизировать рутинную работу с WinApi, включая GUI.
В своё время это было оправдано, скорость разработки, переиспользование кода и так далее.
Но едрить-мадрить, добровольно сейчас этим заниматься, ухх.
LUN2,
0
 Аватар для Наталья8
640 / 404 / 68
Регистрация: 09.03.2016
Сообщений: 4,429
25.09.2025, 13:06
Цитата Сообщение от SmallEvil Посмотреть сообщение
WinApi - это изначально "черезжопный" метод.
Может кому и так. Но это как скала. Не меняеться раз в три года, не прокисает.
Если ты его знаешь, значит знаешь.
Чувствуешь, что пишешь серьёзно, а не хрен как и для чего.
Не устаревает (deprecate)
C++
1
2
3
4
5
6
avpicture_fill((AVPicture *)m_pFrameRGB, m_pBuffer, AV_PIX_FMT_RGBA,
                m_Video_CodecCtx->width / size_divider
                , m_Video_CodecCtx->height / size_divider
                );//  <---- Выделение памяти для целевого фрейма
 
// ============ Больше не работает, про неё ни кто ни чего не пишет. Чем хочешь тем и меняй
Полностью заменить winApi ни какой обёрткой нельзя.
На winApi умные люди делают волшебные вещи. Если умные...
Волшебные вещи, в обёртки не оборачивают, и не особо афишируют.

типа...
C++
1
2
3
4
5
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
 HDC dc = CreateCompatibleDC (NULL);
    SetLayout (dc, LAYOUT_RTL);
    ScaleWindowExtEx (dc, INT_MIN, -1, 1, 1, NULL);}
Чё это? А это синий экран смерти...
Можешь проверить. Я последний раз на семёрке проверял.
0
 Аватар для Наталья8
640 / 404 / 68
Регистрация: 09.03.2016
Сообщений: 4,429
25.09.2025, 13:49
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2025, 13:49

Из MFC 2012 в MFC 2005
Есть прокт для студии 12, всё хорошо, писал на 8ке в VS 2012 и он отлично работает. Позже...

Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll
Здравствуйте. Подключил afx.h, появилась ошибка. Из-за чего? Что делать?

Построение графиков в MFC приложении Visual Studio.
Ребята, проверьте пожалуйста код программы. Задача построить график функции f(x)=sec x. Вроде бы...

MFC, рисование в однодокументном приложении
Заранее извините, если вопрос слишком глупый.(в своё оправдание могу сказать лишь, что я не такой...

Debug assertion failed в MFC приложении
Здравствуйте народ. Прошу помощи. Столкнулся с проблемой Debug assertion failed. Не могу понять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru