15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


MSVC 4.1 Bug ?

Manos D. Anastasiadis -- manos@ced.tuc.gr
Friday, June 21, 1996


Platform: VC++ 4.1 / Win 95

I've been using a object model *similar* to COM interface model
(just postponing real COM) and even defined macros, to declare
embedded classes within a class that supports these 'interfaces'
in the same fashion as MFC does.

Assuming that I have a macro pair:

	BEGIN_IMSD_PART(localClass, baseClass)
	END_IMSD_PART(localClass)

defined identically to: 

	BEGIN_INTERFACE_PART_DERIVE(localClass, baseClass)
	END_INTERFACE_PART(localClass)

respectively (see  for definition of the latter), 
when I use them inside a class declaration to declare my embedded 
'interfaces' the Class View shows the names of the macros as if they
were member functions, instead of showing the actual classes
they define...
The same thing holds for any other macro (of my own) I've used to 
automatically declare members and / or functions in a class... 
(Yes, I do like this tricky stuff...)
One funny little thing is that the ClassView implementation *does*
understand the macro BEGIN_INTERFACE_PART()
(which also does a similar job) and shows the appropriate results.
It also has knowledge about the other related macros the guys
at Redmond (and only themselves :-) ) have defined

Is this actually a bug or am I missing something ?
Note that I have not been using Compiled Browser Info (BSC file)
Maybe this could be a workaround ....


/*==================================*
 * Manos D. Anastasiadis            *
 * Computer Engineering Dept.       *
 * Technical University of Crete    *
 * Mu.S.I.C.                        *
 * manos@ced.tuc.gr                 *
 *==================================*/




John & Annette Elsbree -- elsbree@msn.com
Sunday, June 23, 1996

Manos -

ClassView has special knowledge of the MFC macros and does some special-case 
handling for them. Unfortunately, it does not recognize other macros that do 
similar things. Doing so would require ClassView to parse and process all of 
the header files that your project includes... It's not that sophisicated.

Using Compiled Browse Info will not help. ClassView uses its own, entirely 
separate, non-compiling parser. (Trivia: The .NCB extension on ClassView's 
cache file stands for "no-compile browsing.")

John ("not speaking for Microsoft")

----------
From: 	owner-mfc-l@netcom.com on behalf of Manos D. Anastasiadis

Assuming that I have a macro pair:

	BEGIN_IMSD_PART(localClass, baseClass)
	END_IMSD_PART(localClass)

when I use them inside a class declaration to declare my embedded 
'interfaces' the Class View shows the names of the macros as if they
were member functions, instead of showing the actual classes
they define...
...
One funny little thing is that the ClassView implementation *does*
understand the macro BEGIN_INTERFACE_PART()
(which also does a similar job) and shows the appropriate results.
It also has knowledge about the other related macros the guys
at Redmond (and only themselves :-) ) have defined

Is this actually a bug or am I missing something ?
Note that I have not been using Compiled Browser Info (BSC file)




| Вернуться в корень Архива |