Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Managed C++ и Instance Handle.  (Прочитано 5103 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Valery B
Гость
« : 11-03-2004 09:03 » 

Из Managed C++ вызываю функцию AfxGetInstanceHandle()  в версии Debug - генерится Assertion и возвращается ноль. В Release версии возвращает ноль. Как заставить эту функцию возвращать Instance?
Уточнение!!! Функция содержится внутри DLL extention, которая связывается динамически.
Записан
Serega
Гость
« Ответ #1 : 11-03-2004 11:43 » 

AfxGetInstanceHandle это функция из библиотеки MFC, причем здесь MC++ ?
Записан
Valery B
Гость
« Ответ #2 : 11-03-2004 11:58 » 

Вызов этой функции происходит из DLL extension. DLL extension написана с использованием MFC. Обращение к DLL-ки происходит из MC++. По такой цепочки происходит вызов этой ф-ции.
Записан
Serega
Гость
« Ответ #3 : 11-03-2004 13:18 » 

А что assert выдает ?
Записан
Valery B
Гость
« Ответ #4 : 11-03-2004 13:27 » 

Вот пример этого макроса.

_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
   { ASSERT(afxCurrentInstanceHandle != NULL);
      return afxCurrentInstanceHandle; }
Записан
Serega
Гость
« Ответ #5 : 11-03-2004 14:22 » 

А как у тебя MFC линкуется к dll'ке ?
MC++ код выполняется в своем домене, а к native коду обращается через PInvoke, в этом тоже может быть проблема
и зачем тебе вообще эту функцию вызывать, ну вернет она тебе хендл dll'ки (во всяком случае должна это сделать), а толку от него ?
Записан
Valery B
Гость
« Ответ #6 : 12-03-2004 05:56 » 

DLL - extention всегда прилинковывается динамически!! Как я уже говорил, вызов функции происходит из DLL extention и используется для внутренней работы. Я ее явно не вызываю.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines