Translation Guide between Managed Extensions and the new C++/CLI binding Available
C and C++ programmers are notorious for relying on pointer indirection, and it seems blog entries are not immune to this. A translation guide attempting to exhaustively detail the differences between the original Managed Extensions for C++ (released with Visual Studio.NET) and the revised C++ binding to the CLI scheduled for Visual Studio 2005 (and attempting to provide some motivation behind each change) has been posted on MSDN at the following URL:
https://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/TransGuide.asp
Although there has been considerable effort made in correcting all errors within the text, I am sadly aware that how imperfect these pieces of mine nevertheless turn out. So, on the one hand, I believe this guide will prove valuable to those needing this information. On the other hand, I also believe there are areas that (a) could have been made clearer, and (b) details that … well, that are in error. If you do use this guide and find either (a) or (b) (or some (c), (d), or (e) not itemized), please let me know, either by a comment to this entry or by a private email.
Speaking of which – comments, that is. Due to the open nature of the internet, the providers of this site have found it necessary to provide a form of budget firewall – that is, they have put in place a facility to moderate the comments. This basically means that I see each comment before it becomes public, and it requires a click of my mouse in order for it to be published. I have not – not as yet, anyway – not published a comment; however, oddly enough, I can't prove that.
In any case, those of you whom have been reading this from the beginning will notice that patchwork pieces of the translation guide have been posted here in one form or another. Often, comments have helped me recognize shortcomings and recast material in a hopefully more comprehensible manner. For example, my treatment of deterministic finalization in the translation guide was considerably reworked to address some of the posted comments to the initial blog entry on that topic. As W.H.Auden said in a different context, a piece of writing is never finished, it is simply abandoned.
Comments
Anonymous
August 21, 2004
I believe the link should really point to http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/TransGuide.asp not to https://mail.microsoft.com/exchweb/bin/redir.asp?URL=http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/TransGuide.asp which seems to be copied from OWAAnonymous
August 22, 2004
Stan,
A FAQ for Visual C++ released recently: http://msdn.microsoft.com/visualc/productinfo/faq/default.aspx#C++/CLI
The FAQ mentions a couple of features for which no info was available previously. Specifically see the section about features to be impelemented in RTM which are not in Beta 1:
1) Ref classes with automatic storage duration, including destructors, copy constructors (!), and assignment (!). (no example given)
2) Operators (instance and global). (the example shows a ref class with an instance operator+())
The above features make ref classes much closer to native classes in C++. Could you explain what those features are and how are they going to be different from the corresponding features of the standard C++?Anonymous
August 23, 2004
When can we expect to see "mscfront" in beta? I have thousands of lines of code in the old syntax and I would love to test the migration utility.Anonymous
August 23, 2004
A Wiki topic could provide a venue for dissemination and refinement while off-loading "comment management" from your plate.Anonymous
August 23, 2004
honestly, i don't know what that involves. i've looked at wiki once or twice but i don't have any clue how to set it up ... hint, hint ...Anonymous
August 26, 2004
The comment has been removedAnonymous
August 26, 2004
Alexei asks,
1) Ref classes with automatic storage duration, including destructors, copy constructors (!), and assignment (!). (no example given)
-- yes, this is not turned on with the original beta1; we just released arefresh' today and i didn't check if that includes it -- you can read about it in my blog entry on
deterministic finalization' and within the translation guide -- hopefully i fixed the link -- thanks for those who commented -- in particular Eric Jarvi of msft who actually exlained to me what happened.
2) Operators (instance and global). (the example shows a ref class with an instance operator+())
yes, again. the design team impressed me with this -- i was worried this would overwhelm -- the ability to define a global, instance, and static operator+, for example.
however, you cannot write a function object without the ability to overload the call operator (()), and the stl/cli port needed this sort of ability.
so, yes to both your questions, although you may not find my answers providing sufficient detail.
what you and everyone SHOULD DO is download the refresh of beta 1 -- the team here worked very hard, and have provided both additional functionality (yes!) and significant bug fixes. so this is the bag of bits to begin pounding on.
stanAnonymous
November 27, 2007
PingBack from http://feeds.maxblog.eu/item_1230784.htmlAnonymous
January 21, 2009
PingBack from http://www.keyongtech.com/734779-deleting-int32Anonymous
June 19, 2009
PingBack from http://mydebtconsolidator.info/story.php?id=5083