Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Объявление переменной класса MFC до main()

6.0K
04 апреля 2005 года
Karp
10 / / 22.06.2004
Доброго времени суток!
Создал проект на основе Win32 Console Application с использованием MFC

#include "stdafx.h"
#include "Mzel.h"

#include <afxinet.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

CInternetSession inetSession; // <--Ошибка во время выполнения

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
cout << ::AfxGetAppName() << endl;

int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
.............
.............
.........
}
..........
.....



и объявил inetSession, как показано выше. Компиляция и линковка прошла нормально. Во время выполнения выдает Debug Assertion Failed в afxwin1.inl строка 27. Стал разбираться — оказалось нужно ей, блин, название приложения и все тут! А мне нужно этот объект класса применять не только в main, но и в других функция, поэтому и попытался определить его глобально!.... Если в ручную задать имя приложения ( CInternetSession inetSession( "MyApp" ), то все проходит нормально, но как-то это не очень красиво и боюсь в дальнейшем может какнить плохо сказаться на работе программы. Подскажите правильно ли это или есть какой-нибудь выход из этого положения, т.е. что бы определить объект глобально и спокойно использовать в других функциях?
С уважением Павел!
8.5K
05 апреля 2005 года
god3
24 / / 01.12.2004
Цитата:
Originally posted by Karp
Доброго времени суток!
Создал проект на основе Win32 Console Application с использованием MFC

#include "stdafx.h"
#include "Mzel.h"

#include <afxinet.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

CInternetSession inetSession; // <--Ошибка во время выполнения

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
cout << ::AfxGetAppName() << endl;

int nRetCode = 0;

// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
.............
.............
.........
}
..........
.....



и объявил inetSession, как показано выше. Компиляция и линковка прошла нормально. Во время выполнения выдает Debug Assertion Failed в afxwin1.inl строка 27. Стал разбираться — оказалось нужно ей, блин, название приложения и все тут! А мне нужно этот объект класса применять не только в main, но и в других функция, поэтому и попытался определить его глобально!.... Если в ручную задать имя приложения ( CInternetSession inetSession( "MyApp" ), то все проходит нормально, но как-то это не очень красиво и боюсь в дальнейшем может какнить плохо сказаться на работе программы. Подскажите правильно ли это или есть какой-нибудь выход из этого положения, т.е. что бы определить объект глобально и спокойно использовать в других функциях?
С уважением Павел!



А не пробовал создать сначала указатель на объект, в теле main создать сам объект через new, ну и в дальнейшем работать как с указателем

6.0K
05 апреля 2005 года
Karp
10 / / 22.06.2004
Цитата:
Originally posted by god3
А не пробовал создать сначала указатель на объект, в теле main создать сам объект через new, ну и в дальнейшем работать как с указателем



Да, я именно так и сделал. А сообщение отослал чуть раньше чем до меня дошло. Прошу прощения за беспокойство! Спасибо ВАМ за помощь! С уважением Павел!!!

425
05 апреля 2005 года
sq_deep
498 / / 18.02.2005
Цитата:
Originally posted by Karp
Доброго времени суток!
Создал проект на основе Win32 Console Application с использованием MFC

...
CWinApp theApp;

CInternetSession inetSession; // <--Ошибка во время выполнения
...

С уважением Павел!



Тёзка, объявите так.

 
Код:
static LPCSTR pszAppName = "Karp_app";
CWinApp theApp(pszAppName);
CInternetSession inetSession(pszAppName);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог