Help request

Nick Nelson

2008-02-23 20:22:27

Dear Florian,
I don't use Restorator very often, so tend to forget how to do things.
I'm trying to add a bitmap to a dll file.
I add the bitmap resource OK.
Then I assign my bmp file to that resource.
An arrow appears on the LHS of the file icon for the resource.
I save the file - all looks OK, the backup is created.
The LH arrow disappears and a new arrow appears in the bottom RHS of the file icon for the resource.
But the application can't open the new dll.
"This application failed to start because .dll was not found..."
Also, when I reopen the dll in Restorator, the little arrow is still there over the icon.
I must be doing something wrong, but I can't think what.
A hint appreciated, please.
Best regards,
Nick Nelson

florian

2008-02-23 22:48:58

Hi Nick,

yes, the arrows work that way: left arrow for an unsaved change, right arrow on a resource previously modified.

Why the application can't load the DLL I don't know... there may be cases where the DLL has a non-standard format which is then modified when Restorator writes the DLL. For a start, you could try to not change anything and use "Save As" to create the same DLL, but saved by Restorator. Will it still load? Then, go one step further: edit something minor in the DLL, e.g. a letter in a string resource or so. Will that still load the DLL?

Let me know...
Florian

Nick Nelson

2008-02-25 15:57:52

"Save as" but with no changes works OK.
Editing a dialog works OK.
Adding a completely new dialog works OK.
It's just adding a bitmap that causes trouble.

The dll does contain non-Microsoft elements - some dialogs use the old WinWidgets components, including grid controls which are defined in a special resource. However, I can edit these dialogs without trouble.

In fact, the reason I am using Restorator is to support an application that can no longer be easily edited using Microsoft tools, and so far, Restorator has been just the job for this.

Question: How does Restorator know that a resource has been reassigned, when the dll is reopened? It must be storing some flag in the dll. Could this be the cause of the trouble?

Best regards,
Nick Nelson

florian

2008-03-31 22:37:33

Hi Nick,

sorry, this question got lost somehow...
Nick Nelson wrote:Question: How does Restorator know that a resource has been reassigned, when the dll is reopened? It must be storing some flag in the dll. Could this be the cause of the trouble?
Restorator stores it in the version info of the respective resource. It's marked as "not used" in the specs I've seen, so I figured it's safe to use it. You can switch off "marking" in Restorator's settings.

Regards,
Florian