| 
			| 
					
						| 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 и используется для внутренней работы. Я ее явно не вызываю. |  
						| 
								|  |  
								|  |  Записан | 
 |  |  | 
	|  |