View C ++ Library Members

I have a C ++ DLL written in 1998, and I want to view the elements (properties, fields, methods, constructors, etc.). I understand that the company that wrote the DLL is no longer working, but it is still in use.

If I have only a DLL, is this possible? Or you just need to know what is inside the DLL to work with it. If possible, how would I do this?

I am looking for work with .Net DLLs through P / Invoke.

+4
source share
3 answers

Get this: http://www.dependencywalker.com/ , use depends.exe to open the DLL, then activate the "Undecorate C ++ Functions" in the "View" menu. I mainly use it to look for dependencies, but it also provides entry points to the DLL.

This is not proof of a fool, because the DLL providing the class should not export its methods. For example, the layout of a pure virtual method is fairly uniform, and you can represent your instances as interface pointers, possibly using the factory function. But it can solve your problem.

And regardless, you need a copy of the dependent walker. :)

+4
source

You can use a tool like IDA to parse the binary and try to determine the function names, but it can be tricky. Why do you only have a DLL? It would be much easier to get information from the export table of related lib files or, even better, headers.

+3
source

you can use the command line prompt VS a simple command:

 dumpbin /exports <nameofdll> 
0
source

All Articles