static LPCSTR pszAppName = "Karp_app";
CWinApp theApp(pszAppName);
CInternetSession inetSession(pszAppName);
Объявление переменной класса MFC до main()
Создал проект на основе 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" ), то все проходит нормально, но как-то это не очень красиво и боюсь в дальнейшем может какнить плохо сказаться на работе программы. Подскажите правильно ли это или есть какой-нибудь выход из этого положения, т.е. что бы определить объект глобально и спокойно использовать в других функциях?
С уважением Павел!
Цитата:
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" ), то все проходит нормально, но как-то это не очень красиво и боюсь в дальнейшем может какнить плохо сказаться на работе программы. Подскажите правильно ли это или есть какой-нибудь выход из этого положения, т.е. что бы определить объект глобально и спокойно использовать в других функциях?
С уважением Павел!
Доброго времени суток!
Создал проект на основе 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, ну и в дальнейшем работать как с указателем
Цитата:
Originally posted by god3
А не пробовал создать сначала указатель на объект, в теле main создать сам объект через new, ну и в дальнейшем работать как с указателем
А не пробовал создать сначала указатель на объект, в теле main создать сам объект через new, ну и в дальнейшем работать как с указателем
Да, я именно так и сделал. А сообщение отослал чуть раньше чем до меня дошло. Прошу прощения за беспокойство! Спасибо ВАМ за помощь! С уважением Павел!!!
Цитата:
Originally posted by Karp
Доброго времени суток!
Создал проект на основе Win32 Console Application с использованием MFC
...
CWinApp theApp;
CInternetSession inetSession; // <--Ошибка во время выполнения
...
С уважением Павел!
Доброго времени суток!
Создал проект на основе Win32 Console Application с использованием MFC
...
CWinApp theApp;
CInternetSession inetSession; // <--Ошибка во время выполнения
...
С уважением Павел!
Тёзка, объявите так.
Код: