Discussion Locked

How to compare DLL files

0 helpful
7 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.
At the end of our Sw production line we would like to know which changes made it into the built .dll files. For that we would like to compare the .dll files generated with the .dll files of the previous version of the product. A simple compare doesn't do because, due to the automatic generation each object in the .dll does have a new timestamp, and thus appears different. I am looking for a way to just compare the code! Any suggestions?

7 replies

by donmars

There are too many file compare programs available. Do a search for "file compare" and from the thousands of results returned you can find what is suitable for your needs and download an evaluation copy. These things are not expensive either. Here is an example site:

http://www.formulasoft.com/afc.html

by -rob-

The reference you give talks about ascii compares (source files)! Please read the questionb thoroughly! Dynamic Link Libraries (.dll files) are object files and need interpretation before comparing. Also, individual built in headers of the objects need to be ignored.

by jackofalltech

There are several possible solutions. All versions of Windows have a binary file compare util call FC (File Compare).
I'm not sure but I believe all version also have a COMP util for comparing also.
You can also right-click on each DLL, select properties, then select the version tab. Assuming you're compiling these DLLs correctly, you should be including some type of Company/Copyright and version info.

Ralph

by -rob-

I guess I wasn't clear enough in my question, sorry about that!

We use a high level tool called COOL:Gen. This generates C/C++ files and make files. These C/C++ files get built and deployed. Well, in the testing phase people can?t easily see if no changes occurred since multiple object are packed into various .dll files. The .dll file size doesn?t say much, since the size is always rounded to the next full blocksize. The date has proven to be unreliable too. All .dlls are regenerated. On top of that, the MS C/C++ compiler does not guarantee that the individual segments inside a .dll are in the same sequence in subsequent compiles.

Therefore, we need a tool or procedure wich analyses the section headers, and then compares the associated code 1 by 1, and reports on differences.

Here is what we do now, but that doesn?t cope with the seqencing problem:

dumpbin /RAWDATA %1.dll >%1.txt
dumpbin /headers %1.dll >%1.hdr
dumpbin /RAWDATA %2.dll >%2.txt
dumpbin /headers %2.dll >%2.hdr
diff %1.txt %2.txt
diff %1.hdr %2.hdr

by aquaris

Correct me If i am wrong as i am not a programmer ...but a curious guy..

But doesn't source safe in Visual Studio does the same job..

Visual studio does have a Visual C++ IDE in it too..

by -rob-

Aquarius, soirce safe does what its name suggests, it saves source. In my case the C/C++ source is generated gy a tool. Because multiple pieces of source are packed together in a DLL file, it is later unclear what has changed in a specific DLL.

This discussion is closed to new replies.