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. General Programming
  3. C / C++ / MFC
  4. COM tlb file

COM tlb file

Scheduled Pinned Locked Moved C / C++ / MFC
c++comcsharpquestion
19 Posts 4 Posters 0 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.
  • T ThatsAlok

    George_George wrote:

    1. I am wondering what are the content of COM tlb file? I think it should be something like import library file (.lib) for a DLL which contains address and signature of exported functions.

    you are somewhat right, yes it contain the decalartion of interface and related constant and enum. which vc++ compiler read to generate equivalent tlb and tlh files.

    George_George wrote:

    Why for C# COM client, tlb file is not needed? Why for C/C++ (native) client, tlb file is needed?

    it not necessary to have tlb file even in vc++(native) to use com component, you can directly import com dll or add Header File geenrated by actual com workspace .

    "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

    cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

    G Offline
    G Offline
    George_George
    wrote on last edited by
    #3

    Thanks ThatsAlok,

    ThatsAlok wrote:

    it not necessary to have tlb file even in vc++(native) to use com component, you can directly import com dll or add Header File geenrated by actual com workspace .

    If I have a C++ client and a C# COM component. Without a tlb file, how could the C++ client utilizing the C# COM component? I do not think it could be achieved by using header file, since C# does not have any header files. For managed C++ client, we could import DLL directly, but for unmanaged C++ client, how could we utilize C# COM interfaces/classes without a tlb? regards, George

    T F 2 Replies Last reply
    0
    • G George_George

      Hello everyone, Two questions about COM tlb file, 1. I am wondering what are the content of COM tlb file? I think it should be something like import library file (.lib) for a DLL which contains address and signature of exported functions. 2. Why for C# COM client, tlb file is not needed? Why for C/C++ (native) client, tlb file is needed? thanks in advance, George

      S Offline
      S Offline
      Shouvik Das
      wrote on last edited by
      #4

      visit this http://207.46.196.83/MSDN/ShowPost.aspx?PostID=454035&SiteID=1[^]


      There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

      G 1 Reply Last reply
      0
      • S Shouvik Das

        visit this http://207.46.196.83/MSDN/ShowPost.aspx?PostID=454035&SiteID=1[^]


        There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

        G Offline
        G Offline
        George_George
        wrote on last edited by
        #5

        Thanks shouvik! I think only containing interface information is not enough. I think it should also contain the CLSID (implementation class guid of the interface) information, right? Or else, in client program, how could we know and pass both the IID and CLSID information to QueryInterface? regards, George

        S 1 Reply Last reply
        0
        • G George_George

          Thanks ThatsAlok,

          ThatsAlok wrote:

          it not necessary to have tlb file even in vc++(native) to use com component, you can directly import com dll or add Header File geenrated by actual com workspace .

          If I have a C++ client and a C# COM component. Without a tlb file, how could the C++ client utilizing the C# COM component? I do not think it could be achieved by using header file, since C# does not have any header files. For managed C++ client, we could import DLL directly, but for unmanaged C++ client, how could we utilize C# COM interfaces/classes without a tlb? regards, George

          T Offline
          T Offline
          ThatsAlok
          wrote on last edited by
          #6

          George_George wrote:

          For managed C++ client, we could import DLL directly, but for unmanaged C++ client, how could we utilize C# COM interfaces/classes without a tlb?

          since c# com component deploy managed stuff, i believe might be you are not able to use it in c++ native.. but by the way... what C# dll is COM Server Exe or DLL

          "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

          cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

          G 1 Reply Last reply
          0
          • G George_George

            Thanks shouvik! I think only containing interface information is not enough. I think it should also contain the CLSID (implementation class guid of the interface) information, right? Or else, in client program, how could we know and pass both the IID and CLSID information to QueryInterface? regards, George

            S Offline
            S Offline
            Shouvik Das
            wrote on last edited by
            #7

            Might be they have some wrap over class informations written within the COM component. I actually am more like a novice when it comes to COM. Please forgive me :-O


            There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

            G 1 Reply Last reply
            0
            • S Shouvik Das

              Might be they have some wrap over class informations written within the COM component. I actually am more like a novice when it comes to COM. Please forgive me :-O


              There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

              G Offline
              G Offline
              George_George
              wrote on last edited by
              #8

              Thanks all the same shouvik! Do you have any recommendations for learning resources? regards, George

              S 1 Reply Last reply
              0
              • T ThatsAlok

                George_George wrote:

                For managed C++ client, we could import DLL directly, but for unmanaged C++ client, how could we utilize C# COM interfaces/classes without a tlb?

                since c# com component deploy managed stuff, i believe might be you are not able to use it in c++ native.. but by the way... what C# dll is COM Server Exe or DLL

                "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                G Offline
                G Offline
                George_George
                wrote on last edited by
                #9

                Thanks ThatsAlok, I have tested that we could invoke C# (COM) function from C++ unmanaged code. regards, George

                T 1 Reply Last reply
                0
                • G George_George

                  Thanks all the same shouvik! Do you have any recommendations for learning resources? regards, George

                  S Offline
                  S Offline
                  Shouvik Das
                  wrote on last edited by
                  #10

                  http://www.codeproject.com/com/COM_from_scratch_1.asp[^] http://www.codeproject.com/com/COM_from_scratch_2.asp[^] http://www.codeproject.com/com/COM_from_scratch_3.asp[^] http://www.codeproject.com/com/comintro.asp[^] http://www.codeproject.com/com/#Beginners[^] http://www.xml.com/pub/rg/COM[^] Hope the above resources help you out


                  There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

                  G 1 Reply Last reply
                  0
                  • S Shouvik Das

                    http://www.codeproject.com/com/COM_from_scratch_1.asp[^] http://www.codeproject.com/com/COM_from_scratch_2.asp[^] http://www.codeproject.com/com/COM_from_scratch_3.asp[^] http://www.codeproject.com/com/comintro.asp[^] http://www.codeproject.com/com/#Beginners[^] http://www.xml.com/pub/rg/COM[^] Hope the above resources help you out


                    There are only two kinds of people who are really fascinating-people who know absolutely everything, and people who know absolutely nothing. Oscar Wilde (1854-1900) Regards... Shouvik

                    G Offline
                    G Offline
                    George_George
                    wrote on last edited by
                    #11

                    Thanks shouvik, great links! regards, George

                    1 Reply Last reply
                    0
                    • G George_George

                      Thanks ThatsAlok, I have tested that we could invoke C# (COM) function from C++ unmanaged code. regards, George

                      T Offline
                      T Offline
                      ThatsAlok
                      wrote on last edited by
                      #12

                      George_George wrote:

                      I have tested that we could invoke C# (COM) function from C++ unmanaged code.

                      I don't have much Experience in InterOpr!, but just want know what C~ compiler is producing, is it dll or exe

                      "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                      cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                      G 1 Reply Last reply
                      0
                      • T ThatsAlok

                        George_George wrote:

                        I have tested that we could invoke C# (COM) function from C++ unmanaged code.

                        I don't have much Experience in InterOpr!, but just want know what C~ compiler is producing, is it dll or exe

                        "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                        cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                        G Offline
                        G Offline
                        George_George
                        wrote on last edited by
                        #13

                        Hi ThatsAlok, I am using C++ unmanaged native exe and C# COM server. regards, George

                        T 1 Reply Last reply
                        0
                        • G George_George

                          Thanks ThatsAlok,

                          ThatsAlok wrote:

                          it not necessary to have tlb file even in vc++(native) to use com component, you can directly import com dll or add Header File geenrated by actual com workspace .

                          If I have a C++ client and a C# COM component. Without a tlb file, how could the C++ client utilizing the C# COM component? I do not think it could be achieved by using header file, since C# does not have any header files. For managed C++ client, we could import DLL directly, but for unmanaged C++ client, how could we utilize C# COM interfaces/classes without a tlb? regards, George

                          F Offline
                          F Offline
                          Fernando A Gomez F
                          wrote on last edited by
                          #14

                          George_George wrote:

                          If I have a C++ client and a C# COM component. Without a tlb file, how could the C++ client utilizing the C# COM component?

                          Because the C# COM component implements IDispatch among other interfaces. With this one you have an automatized component, and you don't need to know the name of the method invoked, only their number (1, 2, 3, etc) which can be found in the extra information of the component, defined with IDL language.

                          A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Quanehsti Pah Nation States

                          G 1 Reply Last reply
                          0
                          • G George_George

                            Hi ThatsAlok, I am using C++ unmanaged native exe and C# COM server. regards, George

                            T Offline
                            T Offline
                            ThatsAlok
                            wrote on last edited by
                            #15

                            George_George wrote:

                            I am using C++ unmanaged native exe and C# COM server.

                            try #import "Path to application with app name" and see if any .tlh and .tli file generated

                            "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                            cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                            G 1 Reply Last reply
                            0
                            • T ThatsAlok

                              George_George wrote:

                              I am using C++ unmanaged native exe and C# COM server.

                              try #import "Path to application with app name" and see if any .tlh and .tli file generated

                              "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                              cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                              G Offline
                              G Offline
                              George_George
                              wrote on last edited by
                              #16

                              Hi ThatsAlok, I have found there is no .tlh and .tli generated in C# COM server project. Do you know how to make then generated? regards, George

                              T 1 Reply Last reply
                              0
                              • F Fernando A Gomez F

                                George_George wrote:

                                If I have a C++ client and a C# COM component. Without a tlb file, how could the C++ client utilizing the C# COM component?

                                Because the C# COM component implements IDispatch among other interfaces. With this one you have an automatized component, and you don't need to know the name of the method invoked, only their number (1, 2, 3, etc) which can be found in the extra information of the component, defined with IDL language.

                                A polar bear is a bear whose coordinates has been changed in terms of sine and cosine. Quanehsti Pah Nation States

                                G Offline
                                G Offline
                                George_George
                                wrote on last edited by
                                #17

                                Thanks Fernando, In my C# COM Server project, no IDL file is generated, do you know how to generate it? regards, George

                                1 Reply Last reply
                                0
                                • G George_George

                                  Hi ThatsAlok, I have found there is no .tlh and .tli generated in C# COM server project. Do you know how to make then generated? regards, George

                                  T Offline
                                  T Offline
                                  ThatsAlok
                                  wrote on last edited by
                                  #18

                                  George_George wrote:

                                  I have found there is no .tlh and .tli generated in C# COM server project. Do you know how to make then generated?

                                  look if this help How to call a COM C# component from VC++?[^].. and by the way the original name is Alok :)

                                  "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                                  cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                                  G 1 Reply Last reply
                                  0
                                  • T ThatsAlok

                                    George_George wrote:

                                    I have found there is no .tlh and .tli generated in C# COM server project. Do you know how to make then generated?

                                    look if this help How to call a COM C# component from VC++?[^].. and by the way the original name is Alok :)

                                    "Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow

                                    cheers, Alok Gupta VC Forum Q&A :- I/ IV Support CRY- Child Relief

                                    G Offline
                                    G Offline
                                    George_George
                                    wrote on last edited by
                                    #19

                                    Thanks ThatsAlok, good resource! regards, George

                                    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