Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не выгружается приложение 
:(
    Опции темы
__Sergey__
Дата 21.12.2004, 01:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











У меня не выгружается приложение.
Проблемы в #pragma comment(linker, "-entry:main") вместе с ф-цией CoCreateInstance.
Если в конец дописать ExitProcess(0), приложение завершится, но
не вызываются деструкторы классов.
Может кто подскажет, что происходит и как правильно выйти из main(), при этом
#pragma comment(linker, "-entry:main") надо оставить.
Код

//====================== KAdoCnn.h ================================
#pragma once
#include <windows.h>
#include <initguid.h>
#include <adoid.h>
#include <adoint.h>
#include <atlbase.h>

#pragma  comment(lib, "adoid.lib")

class KAdoCnn
{
public:

   KAdoCnn();
   
   HRESULT Open(LPCTSTR lpszSource, LPCTSTR lpszUser = TEXT(""), LPCTSTR lpszPassword = TEXT(""));

   void    Close();

   ~KAdoCnn();

protected:
   CComPtr<ADOConnection> m_cnn;
};

//-----------------------------------------------------------------------------
__inline KAdoCnn::KAdoCnn()
{ m_cnn.CoCreateInstance( CLSID_CADOConnection ); }
//-----------------------------------------------------------------------------
__inline KAdoCnn::~KAdoCnn()
{}
//-----------------------------------------------------------------------------
__inline void KAdoCnn::Close()
{ m_cnn->Close(); }
//-----------------------------------------------------------------------------
__inline HRESULT KAdoCnn::Open(LPCTSTR lpszSource, LPCTSTR lpszUser, LPCTSTR lpszPassword)
{
   CComBSTR bstrSource = lpszSource, bstrUser = lpszUser, bstrPassword = lpszPassword;
   return m_cnn->Open( bstrSource, bstrUser, bstrPassword );
}
//====================== end KAdoCnn.h ================================


//====================== main.cpp ================================
//   Project options:
//     /nologo /ML /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /Fo"Release/" /Fd"Release/" /FD /c

#include "KAdoCnn.h"

#ifndef _DEBUG
#pragma comment(linker, "-entry:main")
#endif


void main()
{
   LPCTSTR lpszCnnStr = TEXT("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\mybase.mdb");
   
   CoInitialize(NULL);

   KAdoCnn cnn;
   HRESULT hr = cnn.Open(lpszCnnStr);
   if (FAILED(hr))
   {
   CoUninitialize();
   return;
   }
   cnn.Close();
   CoUninitialize();
}


  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0356 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.