.NET Forum / Languages / Managed C++ / May 2005
Microsoft Document Explorer - VC++ 2005
|
|
Thread rating:  |
John Gabriel - 06 May 2005 17:06 GMT The *back* and *forward* butttons do not work. Anyone noticed this?
I know this is a beta edition but even for a beta edition, it's hard to believe Microsoft performed any real quality control.... *Help* is pretty important.
The help feature topics are very badly organized. There is ambiguity and context disorder. The topic headings are misleading and a lot is assumed about the knowledge of the user. Example, *managed code" is mentioned often without a link to this topic. Also, since the last version I used was 6.0, it came as a shock to my system when I encountered a new (not the same as new()) operator (now old I guess) caret (^) which means a handle to an object. 2005 looks a lot like an attempt to convert Java programmers to C++. We now have a brilliant new C++ with garbage collection, interface implementation, superclass definition. Oops, I did not notice, is there an "extends" keyword for derived classes ? Java junkies will miss this one I am afraid. The IDE is soooo cluttered and complicated - it just keeps on getting harder and harder to use. Pretty soon one will have to be a rocket scientist to use the C++ IDE never mind learn it! On the bright side, it's nice not to have to do so much coding as before but the new compiled C++ programs are slower than snails.
Oh well, it's free, so unsuspecting students will get used to it - warts and all and expect to find it in the workplace - good strategy once again Bill!! Go Microsoft!!!
Ioannis Vranos - 06 May 2005 17:35 GMT > The *back* and *forward* butttons do not work. Anyone noticed this? > [quoted text clipped - 6 lines] > about the knowledge of the user. Example, *managed code" is mentioned often > without a link to this topic. I think this is because it is Beta and the documentation is redesigned. Current Help in 2003 is OK.
> Also, since the last version I used was 6.0, it > came as a shock to my system when I encountered a new (not the same as new()) > operator (now old I guess) caret (^) which means a handle to an object. 2005 > looks a lot like an attempt to convert Java programmers to C++. I do not agree with this. Handles have different semantics than usual pointers and I like it better this way, than what it was in "managed extensions" for C++ (VS 2002/2003).
You can not do standard pointer operations with objects in the managed heap (like pointer arithmetic), so by using pointer notation as in VS 2002/2003 can only be confusing.
In this way different things are kept separated.
> We now have > a brilliant new C++ with garbage collection, interface implementation, [quoted text clipped - 5 lines] > so much coding as before but the new compiled C++ programs are slower than > snails. In .NET, C++ is two worlds. The unmanaged world and the managed world. In the managed world every .NET feature is provided separately from the unmanaged world features.
Here is a link to a page of mine, that you may find useful:
http://www23.brinkster.com/noicys/cppcli.htm
John Gabriel - 06 May 2005 19:40 GMT Hmmm. Let me see:
> I think this is because it is Beta and the documentation is redesigned. Current > Help in 2003 is OK. Where does this leave me with VC++ 2005 - do you acknowledge this is a problem which is going to be fixed, i.e. Microsoft knows about it?
Well Ioannis, you may be correct but I am going by the documentation I read:
Start Quote: Declares a handle to an object on the managed heap. A handle to an object on the managed heap points to the "whole" object, and not to a member of the object.
See gcnew for information on how to create an object on the managed heap.
In Visual C++ 2002 and Visual C++ 2003, __gc * was used to declare an object on the managed heap. The ^ replaces __gc * in the new syntax.
Remarks The common language runtime maintains a separate heap on which it implements a precise, asynchronous, compacting garbage collection scheme. To work correctly, it must track all storage locations that can point into this heap at runtime. ^ provides a handle through which the garbage collector can track a reference to an object on the managed heap, thereby being able to update it whenever that object is moved. Member selection through a handle (^) uses the pointer-to-member operator (->). End Quote.
Seems to me that when one uses ^, the compiler generates code so that it is used as an index into an array of pointers to objects on the *managed heap* the CLR uses to manage the separate heap. So in this sense it is not a pointer and can not be used as one. So although you state that *Handles have different semantics than usual pointers* - this is only true for the CLR for in all previous versions of C++, it was essentially the same as a pointer. Strange then that it is called a *handle* and not a *gc-index*.
> In .NET, C++ is two worlds. The unmanaged world and the managed world. In > the managed world every .NET feature is provided separately from the > unmanaged world features. So I am led to believe. Your webpage makes sense. Can I take it for granted everything you state is correct or do I need to make yet more comparisons against other sources? :-)
Jochen Kalmbach [MVP] - 06 May 2005 20:02 GMT Hi John!
>>I think this is because it is Beta and the documentation is redesigned. Current >>Help in 2003 is OK. > > Where does this leave me with VC++ 2005 - do you acknowledge this is a > problem which is going to be fixed, i.e. Microsoft knows about it? I can´t repro the problem... Do yu have VC2005 Express Beta 2? (Version beta2.050215-4400) (latest Beta2 from MS download)
 Signature Greetings Jochen
My blog about Win32 and .NET http://blog.kalmbachnet.de/
John Gabriel - 07 May 2005 21:32 GMT Here are the version details:
Microsoft Visual Studio 2005 (Express Edition) Version 8.0.50215.44 (beta2.050215-4400)
I downloaded it last week Wednesday or Thursday - am not sure.
You can't reproduce the problem means you can use the *forward* and *back* buttons in your help windows?
> Hi John! > >>I think this is because it is Beta and the documentation is redesigned. Current [quoted text clipped - 6 lines] > Do yu have VC2005 Express Beta 2? (Version beta2.050215-4400) > (latest Beta2 from MS download) Jochen Kalmbach [MVP] - 08 May 2005 08:23 GMT Hi John!
> You can't reproduce the problem means you can use the *forward* and *back* > buttons in your help windows? Yes.
 Signature Greetings Jochen
My blog about Win32 and .NET http://blog.kalmbachnet.de/
John Gabriel - 08 May 2005 16:22 GMT Jochen, You appear to be having a dialogue with yourself. I did not say I cannot reproduce the problem. You read your own post and thought I had replied. :-)
Actually, I don't need to reproduce the problem because it is *ALWAYS* there, i.e. the *back* and *forward* buttons are GRAYED OUT and cannot be used!!!! :-)
There is nothing for me to prove, disprove or reproduce. The problem is with Microsoft's buggy Document Explorer.
BTW: When I use CAPS, it's for emphasis. I am not shouting. :-)
Do I understand correctly that you do not see this problem when you use the document explorer?
If you respond yes, then there must be a gremlin in my system.... :-)
> Hi John! > > You can't reproduce the problem means you can use the *forward* and *back* > > buttons in your help windows? > > Yes. Carl Daniel [VC++ MVP] - 08 May 2005 17:01 GMT > Jochen, > You appear to be having a dialogue with yourself. I did not say I > cannot reproduce the problem. You read your own post and thought I > had replied. :-) Read the thread again.
> Actually, I don't need to reproduce the problem because it is *ALWAYS* > there, i.e. the *back* and *forward* buttons are GRAYED OUT and > cannot be used!!!! :-) Whever you report a problem, others will try to reproduce the problem. Just because you see some ill-behavior doesn't mean others will see the same. In this case, Jochen reported that he didn't see the behavior you described - he was unable to reproduce the problem.
> There is nothing for me to prove, disprove or reproduce. The problem > is with Microsoft's buggy Document Explorer. [quoted text clipped - 5 lines] > > If you respond yes, then there must be a gremlin in my system.... :-) That's exactly the question Jochen already answered - Yes, the forward and backward buttons work. They work for me too.
-cd
John Gabriel - 09 May 2005 02:18 GMT I responded with a second post after I realized I had misread the thread but it was not posted for some reason. So apologies once again to Jochen. But what you write does not help much either.
How can you reproduce a problem without any apparent cause? The way I understand it is: You normally are given a set of events which lead to the problem.
In this case, all I was doing was browsing the Document Helper. The buttons should have been working but they were grayed out.
So it works for you too. This is very strange indeed. You downloaded the same version as I. I have no idea why it does not work on my system. What operating system are you using?
> > Jochen, > > You appear to be having a dialogue with yourself. I did not say I [quoted text clipped - 26 lines] > > -cd Carl Daniel [VC++ MVP] - 09 May 2005 03:45 GMT > I responded with a second post after I realized I had misread the > thread but it was not posted for some reason. So apologies once again [quoted text clipped - 3 lines] > understand it is: You normally are given a set of events which lead > to the problem. Well, you gave a set of events: Load the software and it doesn't work. Those events didn't reproduce the problem elsewhere, so there's obviously more involved than simply installing the software.
> In this case, all I was doing was browsing the Document Helper. The > buttons should have been working but they were grayed out. > > So it works for you too. This is very strange indeed. You downloaded > the same version as I. I have no idea why it does not work on my > system. What operating system are you using? Server 2003/SP1. My guess would be that it's not an OS issue though - more likely an install issue of some kind.
Had you previously installed an earlier beta or CTP on the same machine?
-cd
John Gabriel - 09 May 2005 15:11 GMT Hi!
I am using XP Home and yes I agree, the OS doesn't matter. However, I do not agree with you that it is an install issue. As for the version, if you read the whole thread you will see it is a beta version - the Express Edition available at Microsoft Downloads. Here are the exact steps:
If you have the IDE fired up, close it down.
Now fire up the IDE. Click on "Help" in the menu bar. Click on "Search" in the drop-down menu. Type in "ref" (without quotes) in the search box and press ENTER. Click on the sub-title "Attribute targets"
Now look at the state of the forward and back buttons - they are still grayed out.
John Gabriel
> > I responded with a second post after I realized I had misread the > > thread but it was not posted for some reason. So apologies once again [quoted text clipped - 21 lines] > > -cd Carl Daniel [VC++ MVP] - 09 May 2005 18:04 GMT > Hi! > [quoted text clipped - 14 lines] > Now look at the state of the forward and back buttons - they are still > grayed out. I missed the fact that you were using the express edition. I'm sure the doc explorer (the executable that is) is the same between Express edition and Visual Studio, so I'd have to guess that the VC++ Express installer didn't install doc explorer correctly, or there's something else about your system that resulted in a fouled install.
I'd suggest posting a bug report at http://lab.msdn.microsoft.com/productfeedback/default.aspx. In a quick search, I didn't find any existing reports of a similar sounding bug.
-cd
Jochen Kalmbach [MVP] - 09 May 2005 19:51 GMT Hi John!
> If you have the IDE fired up, close it down. > [quoted text clipped - 6 lines] > Now look at the state of the forward and back buttons - they are still > grayed out. I also have the Express-Edition... But I can still not repro the problem...
(Of course I do not find the step "Click on the sub-title "Attribute targets""). But if I click on any other link, the forward and back button get enabled.
 Signature Greetings Jochen
My blog about Win32 and .NET http://blog.kalmbachnet.de/
John Gabriel - 10 May 2005 02:48 GMT Jochen,
The first subtitle is "Generic Classes". The very next one is "Attribute Targets".
You don't even need to scroll down to see it. It appears all at once on the same help page. You don't see it??
I had downloaded a previous beta copy but did not need to uninstall it because I reformatted my hard drive (low level) to get rid of the XP upgrade I had purchased and could not install successfully. So, this has nothing to do with it.
John
> Hi John! > > If you have the IDE fired up, close it down. [quoted text clipped - 14 lines] > targets""). > But if I click on any other link, the forward and back button get enabled. Jochen Kalmbach [MVP] - 09 May 2005 19:53 GMT Hi John!
>>Had you previously installed an earlier beta or CTP on the same machine? You missed to answer this question!
If you had any previous versions (or other betas) installed see:
See: Uninstalling Previous Versions of Visual Studio 2005 http://lab.msdn.microsoft.com/vs2005/uninstall/
You also can use the unofficial removal tool: http://blogs.msdn.com/astebner/archive/2005/04/19/409555.aspx
 Signature Greetings Jochen
My blog about Win32 and .NET http://blog.kalmbachnet.de/
Ioannis Vranos - 07 May 2005 07:43 GMT > Where does this leave me with VC++ 2005 - do you acknowledge this is a > problem which is going to be fixed, i.e. Microsoft knows about it? What I know so far, is that they are redesigning MSDN documentation for 2005 from scratch, so I suppose any documentation problems will be fixed.
> Seems to me that when one uses ^, the compiler generates code so that it is > used as an index into an array of pointers to objects on the *managed heap* [quoted text clipped - 4 lines] > essentially the same as a pointer. Strange then that it is called a *handle* > and not a *gc-index*. I do not know the implementation details of a handle (perhaps if you check the latest C++/CLI draft
http://www.plumhall.com/C++-CLI%20draft%201.10.pdf
and the CLI standard that provides implementation details of the VM as well as its assembly language, you will probably find how they are implemented.
I am not sure I understand the difference between a handle in C++/CLI and a managed pointer in "managed extensions". In both cases, handles/managed pointers have been different than native pointers, in the sense that their values change whenever the object is moved in the managed heap by the CLR (that's why you can't do pointer arithmetic with them).
> So I am led to believe. Your webpage makes sense. Can I take it for granted > everything you state is correct or do I need to make yet more comparisons > against other sources? :-) As far as I know it is correct, with perhaps some room left for minor clarifications. Legally speaking, I do not provide any guarantee however. :-)
Ioannis Vranos - 07 May 2005 08:08 GMT > I do not know the implementation details of a handle (perhaps if you > check the latest C++/CLI draft [quoted text clipped - 4 lines] > well as its assembly language, you will probably find how they are > implemented. http://www.ecma-international.org/publications/standards/Ecma-335.htm
> I am not sure I understand the difference between a handle in C++/CLI > and a managed pointer in "managed extensions". In both cases, [quoted text clipped - 10 lines] > clarifications. Legally speaking, I do not provide any guarantee > however. :-)
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|