Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. Clever Code
  4. Subtle crashes [modified]

Subtle crashes [modified]

Scheduled Pinned Locked Moved Clever Code
question
12 Posts 10 Posters 35 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Rama Krishna Vavilala
    wrote on last edited by
    #1

    Original code:

    [ComVisible(true)]
    [Guid(".....")]
    interface IDocument
    {
    public void Method1();

    public Property1 { get; }
    }

    Note:- a valid Guid was supplied. After some months:

    [ComVisible(true)]
    [Guid(".....")]
    interface IDocument
    {
    public Property1 { get; }

    public void Method1();
    }

    VSS Comments: Changed the member order to conform to coding standards. The second code breaks lot of existing clients. Can anyone tell me why?:)

    modified on Saturday, March 21, 2009 9:20 AM

    D E P L 4 Replies Last reply
    0
    • R Rama Krishna Vavilala

      Original code:

      [ComVisible(true)]
      [Guid(".....")]
      interface IDocument
      {
      public void Method1();

      public Property1 { get; }
      }

      Note:- a valid Guid was supplied. After some months:

      [ComVisible(true)]
      [Guid(".....")]
      interface IDocument
      {
      public Property1 { get; }

      public void Method1();
      }

      VSS Comments: Changed the member order to conform to coding standards. The second code breaks lot of existing clients. Can anyone tell me why?:)

      modified on Saturday, March 21, 2009 9:20 AM

      D Offline
      D Offline
      dighn
      wrote on last edited by
      #2

      same interface, v-table entries got shifted, and clients weren't recompiled?

      R 1 Reply Last reply
      0
      • D dighn

        same interface, v-table entries got shifted, and clients weren't recompiled?

        R Offline
        R Offline
        Rama Krishna Vavilala
        wrote on last edited by
        #3

        Yes. I am glad that someone still remembers COM concepts:) While in .NET method and interface binding is via name for COM clients it's via vtable so all native clients which used COM interface crashed.

        P 1 Reply Last reply
        0
        • R Rama Krishna Vavilala

          Yes. I am glad that someone still remembers COM concepts:) While in .NET method and interface binding is via name for COM clients it's via vtable so all native clients which used COM interface crashed.

          P Offline
          P Offline
          PIEBALDconsult
          wrote on last edited by
          #4

          COM sucketh, don't use it.

          E S D 3 Replies Last reply
          0
          • P PIEBALDconsult

            COM sucketh, don't use it.

            E Offline
            E Offline
            Electron Shepherd
            wrote on last edited by
            #5

            PIEBALDconsult wrote:

            COM sucketh, don't use it.

            Or just follow the COM rules, one of which is "if you change the interface in any way, change it's UUID as well".

            Server and Network Monitoring

            1 Reply Last reply
            0
            • R Rama Krishna Vavilala

              Original code:

              [ComVisible(true)]
              [Guid(".....")]
              interface IDocument
              {
              public void Method1();

              public Property1 { get; }
              }

              Note:- a valid Guid was supplied. After some months:

              [ComVisible(true)]
              [Guid(".....")]
              interface IDocument
              {
              public Property1 { get; }

              public void Method1();
              }

              VSS Comments: Changed the member order to conform to coding standards. The second code breaks lot of existing clients. Can anyone tell me why?:)

              modified on Saturday, March 21, 2009 9:20 AM

              E Offline
              E Offline
              Ed Poore
              wrote on last edited by
              #6

              Rama Krishna Vavilala wrote:

              interfact

              Surprised it compiled at all...


              I doubt it. If it isn't intuitive then we need to fix it. - Chris Maunder

              R 1 Reply Last reply
              0
              • E Ed Poore

                Rama Krishna Vavilala wrote:

                interfact

                Surprised it compiled at all...


                I doubt it. If it isn't intuitive then we need to fix it. - Chris Maunder

                R Offline
                R Offline
                Rama Krishna Vavilala
                wrote on last edited by
                #7

                It's a new keyword in C# 4.0 ;)

                1 Reply Last reply
                0
                • P PIEBALDconsult

                  COM sucketh, don't use it.

                  S Offline
                  S Offline
                  Stephen Hewitt
                  wrote on last edited by
                  #8

                  Large chunks on the OS are exposed using COM. For many jobs COM is the way to go, regardless of the language used. COM does not "sucketh".

                  Steve

                  G 1 Reply Last reply
                  0
                  • R Rama Krishna Vavilala

                    Original code:

                    [ComVisible(true)]
                    [Guid(".....")]
                    interface IDocument
                    {
                    public void Method1();

                    public Property1 { get; }
                    }

                    Note:- a valid Guid was supplied. After some months:

                    [ComVisible(true)]
                    [Guid(".....")]
                    interface IDocument
                    {
                    public Property1 { get; }

                    public void Method1();
                    }

                    VSS Comments: Changed the member order to conform to coding standards. The second code breaks lot of existing clients. Can anyone tell me why?:)

                    modified on Saturday, March 21, 2009 9:20 AM

                    P Offline
                    P Offline
                    peterchen
                    wrote on last edited by
                    #9

                    vtable binding. :doh:

                    Don't attribute to stupidity what can be equally well explained by buerocracy.
                    My latest article | Linkify!| FoldWithUs! | sighist

                    1 Reply Last reply
                    0
                    • R Rama Krishna Vavilala

                      Original code:

                      [ComVisible(true)]
                      [Guid(".....")]
                      interface IDocument
                      {
                      public void Method1();

                      public Property1 { get; }
                      }

                      Note:- a valid Guid was supplied. After some months:

                      [ComVisible(true)]
                      [Guid(".....")]
                      interface IDocument
                      {
                      public Property1 { get; }

                      public void Method1();
                      }

                      VSS Comments: Changed the member order to conform to coding standards. The second code breaks lot of existing clients. Can anyone tell me why?:)

                      modified on Saturday, March 21, 2009 9:20 AM

                      L Offline
                      L Offline
                      Luc Pattyn
                      wrote on last edited by
                      #10

                      :confused:

                      Luc Pattyn [Forum Guidelines] [My Articles]


                      - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets


                      1 Reply Last reply
                      0
                      • P PIEBALDconsult

                        COM sucketh, don't use it.

                        D Offline
                        D Offline
                        Dan Neely
                        wrote on last edited by
                        #11

                        Writing non trivial office plugins in VBA sucketh worse. COM is a much better alternative.

                        Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                        1 Reply Last reply
                        0
                        • S Stephen Hewitt

                          Large chunks on the OS are exposed using COM. For many jobs COM is the way to go, regardless of the language used. COM does not "sucketh".

                          Steve

                          G Offline
                          G Offline
                          Gary R Wheeler
                          wrote on last edited by
                          #12

                          COM does indeed sucketh, but sinceth it's the only game in town for certain things, get used to the vacuum.

                          Software Zen: delete this;
                          Fold With Us![^]

                          1 Reply Last reply
                          0
                          Reply
                          • Reply as topic
                          Log in to reply
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes


                          • Login

                          • Don't have an account? Register

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • World
                          • Users
                          • Groups