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. inside lib and dll

inside lib and dll

Scheduled Pinned Locked Moved C / C++ / MFC
learning
12 Posts 5 Posters 1 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.
  • P Offline
    P Offline
    pc_dev
    wrote on last edited by
    #1

    Is there a way that we can know all exposed functions and their signatures and exposed data items which dlls and lib files expose, if we donot have any documentation about them, something like resource hacker.

    R S D 3 Replies Last reply
    0
    • P pc_dev

      Is there a way that we can know all exposed functions and their signatures and exposed data items which dlls and lib files expose, if we donot have any documentation about them, something like resource hacker.

      R Offline
      R Offline
      Renjith Ramachandran
      wrote on last edited by
      #2

      use dumpbin utility Loka Samastha Sukhino Bhavanthu..!!! ( May all beings be happy and free )

      1 Reply Last reply
      0
      • P pc_dev

        Is there a way that we can know all exposed functions and their signatures and exposed data items which dlls and lib files expose, if we donot have any documentation about them, something like resource hacker.

        S Offline
        S Offline
        Sarath C
        wrote on last edited by
        #3

        You can use DumpBin[^] utility provided by Microsoft. This is console based application You can use "Dependency Walker" which is provided with Visual Studio tools for the same purpose. SaRath.
        "Don't Do Different things... Do Things Differently..." Understanding State Pattern in C++

        1 Reply Last reply
        0
        • P pc_dev

          Is there a way that we can know all exposed functions and their signatures and exposed data items which dlls and lib files expose, if we donot have any documentation about them, something like resource hacker.

          D Offline
          D Offline
          David Crow
          wrote on last edited by
          #4

          While dumpbin and depends can show the export table, they will not show you the function signatures.


          "The largest fire starts but with the smallest spark." - David Crow

          "Judge not by the eye but by the heart." - Native American Proverb

          M 1 Reply Last reply
          0
          • D David Crow

            While dumpbin and depends can show the export table, they will not show you the function signatures.


            "The largest fire starts but with the smallest spark." - David Crow

            "Judge not by the eye but by the heart." - Native American Proverb

            M Offline
            M Offline
            Michael Dunn
            wrote on last edited by
            #5

            If functions are exported as mangled C++ names, Depends can translate those into C++ prototypes.

            --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

            D 1 Reply Last reply
            0
            • M Michael Dunn

              If functions are exported as mangled C++ names, Depends can translate those into C++ prototypes.

              --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

              D Offline
              D Offline
              David Crow
              wrote on last edited by
              #6

              Michael Dunn wrote:

              ...Depends can translate those into C++ prototypes.

              Return type and argument list included?


              "The largest fire starts but with the smallest spark." - David Crow

              "Judge not by the eye but by the heart." - Native American Proverb

              M 1 Reply Last reply
              0
              • D David Crow

                Michael Dunn wrote:

                ...Depends can translate those into C++ prototypes.

                Return type and argument list included?


                "The largest fire starts but with the smallest spark." - David Crow

                "Judge not by the eye but by the heart." - Native American Proverb

                M Offline
                M Offline
                Michael Dunn
                wrote on last edited by
                #7

                Yes, because all that info is encoded into the mangled name. For example: ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z becomes: protected: void __thiscall WTL::CString::ConcatInPlace(int,char const *)

                --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                D 1 Reply Last reply
                0
                • M Michael Dunn

                  Yes, because all that info is encoded into the mangled name. For example: ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z becomes: protected: void __thiscall WTL::CString::ConcatInPlace(int,char const *)

                  --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                  D Offline
                  D Offline
                  David Crow
                  wrote on last edited by
                  #8

                  What DLL is that contained in?


                  "The largest fire starts but with the smallest spark." - David Crow

                  "Judge not by the eye but by the heart." - Native American Proverb

                  M 1 Reply Last reply
                  0
                  • D David Crow

                    What DLL is that contained in?


                    "The largest fire starts but with the smallest spark." - David Crow

                    "Judge not by the eye but by the heart." - Native American Proverb

                    M Offline
                    M Offline
                    Michael Dunn
                    wrote on last edited by
                    #9

                    I just pulled that from a MAP file of one of my apps. I was just demonstrating that the mangled name contains all the info necesary to convert it to a C++ prototype.

                    --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                    D 1 Reply Last reply
                    0
                    • M Michael Dunn

                      I just pulled that from a MAP file of one of my apps. I was just demonstrating that the mangled name contains all the info necesary to convert it to a C++ prototype.

                      --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                      D Offline
                      D Offline
                      David Crow
                      wrote on last edited by
                      #10

                      So does Depends also use said .map file, or how does it generate the function's signature?


                      "The largest fire starts but with the smallest spark." - David Crow

                      "Judge not by the eye but by the heart." - Native American Proverb

                      M 1 Reply Last reply
                      0
                      • D David Crow

                        So does Depends also use said .map file, or how does it generate the function's signature?


                        "The largest fire starts but with the smallest spark." - David Crow

                        "Judge not by the eye but by the heart." - Native American Proverb

                        M Offline
                        M Offline
                        Michael Dunn
                        wrote on last edited by
                        #11

                        It's all encoded in the mangled name. You can see for yourself using the undname tool in the PSDK:

                        F:\>undname -f ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z
                        Microsoft(R) Windows NT(R) Operating System
                        UNDNAME Version 5.00.1768.1Copyright (C) Microsoft Corp. 1981-1998

                        ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z == protected: void __thiscall WTL::CString::ConcatInPlace(int,char const *)

                        --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                        D 1 Reply Last reply
                        0
                        • M Michael Dunn

                          It's all encoded in the mangled name. You can see for yourself using the undname tool in the PSDK:

                          F:\>undname -f ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z
                          Microsoft(R) Windows NT(R) Operating System
                          UNDNAME Version 5.00.1768.1Copyright (C) Microsoft Corp. 1981-1998

                          ?ConcatInPlace@CString@WTL@@IAEXHPBD@Z == protected: void __thiscall WTL::CString::ConcatInPlace(int,char const *)

                          --Mike-- Visual C++ MVP :cool: LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

                          D Offline
                          D Offline
                          David Crow
                          wrote on last edited by
                          #12

                          Thanks Mike, but that's undname, not Depends.


                          "The largest fire starts but with the smallest spark." - David Crow

                          "Judge not by the eye but by the heart." - Native American Proverb

                          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