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