Шаг 4 - m_pszAppName

Определяет имя приложения. Имя приложения может быть взято из параметра, переданного к CWinApp конструктору, или, если не определено из строки ресурса с ID - AFX_IDS_APP_TITLE. Если имя приложения не найдено в ресурсе, это имя берется как из .EXE имени файла программы.

Возвращается глобальной функцией AfxGetAppName. m_pszAppName - общая переменная типа const char*.

Если Вы назначаете значение к m_pszAppName, это оно должно быть динамически распределено в куче. CWinApp destructor вызывает free() с этим указателем. Вы можете хотеть использовать _tcsdup () функцию чтобы распределить строку. Также, освободите память, связанную с текущим указателем перед назначением нового значения. Например:

// Сначала освободите строку, распределенную MFC при запуске CWinApp.
// строка распределяется  прежде чем InitInstance вызывается.
free((void*)m_pszAppName); 
// Изменяем имя файла приложения.
// CWinApp destructor освободит память.
m_pszAppName=_tcsdup(_T("d:\\somedir\\myapp.exe"));

Пример:

// Установить pWnd к некоторому объекту CWnd, объект окна должен быть создан.
// Следующее обращение к CWnd:: MessageBox использует заголовок приложения
// для заголовка окна сообщения.
pWnd->MessageBox("Some message", AfxGetApp()->m_pszAppName);
// Более прямой способ получать заголовок приложения
// вызывать функцию AfxGetAppName:
pWnd->MessageBox("Some message", AfxGetAppName());
// Более простой способ отображать окно сообщения, используя заголовок приложение
//как заголовок окна сообщения вызвать AfxMessageBox:
AfxMessageBox("Some message");

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.