Compartilhar via


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 OWA

  • Anonymous
    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 removed

  • Anonymous
    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 a refresh' 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.

    stan

  • Anonymous
    November 27, 2007
    PingBack from http://feeds.maxblog.eu/item_1230784.html

  • Anonymous
    January 21, 2009
    PingBack from http://www.keyongtech.com/734779-deleting-int32

  • Anonymous
    June 19, 2009
    PingBack from http://mydebtconsolidator.info/story.php?id=5083