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.
  • G Offline
    G Offline
    George_George
    wrote on last edited by
    #1

    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

    T S 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

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

      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 1 Reply Last reply
      0
      • 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