Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Calling newer DLL

ThomasBThomasB Member Posts: 1
Hello together,

I'm facing the following situation and hope that somebody can help me out:

I have a compiled exe file from a company which does not exist anymore.
We are using the program together with a third party DLL which provides functions to access a database.

Unfortunately we have to upgrade that database to the latest version and of course there is a new dll delivered with it which should replace our old DLL.

Now the problem:
The entry points in the newer dll are different from those in the old dll so I guess that this is the reason for the system not to work properly.
With the PE Explorer (Export Viewer) I can check the exported functions and their addresses but unfortuntely not change it. On the other hand I'm not that good in programming in c++. So I'm a little bit scared about it anyway.

Can anybody advise ?

best regards

Thomas


Comments

  • BitByBit_ThorBitByBit_Thor Member Posts: 2,444
    : Hello together,
    :
    : I'm facing the following situation and hope that somebody can help
    : me out:
    :
    : I have a compiled exe file from a company which does not exist
    : anymore.
    : We are using the program together with a third party DLL which
    : provides functions to access a database.
    :
    : Unfortunately we have to upgrade that database to the latest version
    : and of course there is a new dll delivered with it which should
    : replace our old DLL.
    :
    : Now the problem:
    : The entry points in the newer dll are different from those in the
    : old dll so I guess that this is the reason for the system not to
    : work properly.
    : With the PE Explorer (Export Viewer) I can check the exported
    : functions and their addresses but unfortuntely not change it. On the
    : other hand I'm not that good in programming in c++. So I'm a little
    : bit scared about it anyway.
    :
    : Can anybody advise ?
    :
    : best regards
    :
    : Thomas
    :
    :

    The EXE loader will do all the work for you.
    A newer DLL will work as long as it exposes all the functions it used to.

    However, I do not (yet) know enough about it all to say whether or not the EXE will need rebuilding [am currently reading about the subject, but I've only just started]. My experiences and what little I know tell me that it should work - as long as every function name is still present. The entry points are not important, as the EXE loader will fill in that data when it loads the executable in memory and only uses the names (so the function names after name-mangling have to be the same).

    Best Regards,
    Richard

    The way I see it... Well, it's all pretty blurry
  • zibadianzibadian Member Posts: 6,349
    : : Hello together,
    : :
    : : I'm facing the following situation and hope that somebody can help
    : : me out:
    : :
    : : I have a compiled exe file from a company which does not exist
    : : anymore.
    : : We are using the program together with a third party DLL which
    : : provides functions to access a database.
    : :
    : : Unfortunately we have to upgrade that database to the latest version
    : : and of course there is a new dll delivered with it which should
    : : replace our old DLL.
    : :
    : : Now the problem:
    : : The entry points in the newer dll are different from those in the
    : : old dll so I guess that this is the reason for the system not to
    : : work properly.
    : : With the PE Explorer (Export Viewer) I can check the exported
    : : functions and their addresses but unfortuntely not change it. On the
    : : other hand I'm not that good in programming in c++. So I'm a little
    : : bit scared about it anyway.
    : :
    : : Can anybody advise ?
    : :
    : : best regards
    : :
    : : Thomas
    : :
    : :
    :
    : The EXE loader will do all the work for you.
    : A newer DLL will work as long as it exposes all the functions it
    : used to.
    :
    : However, I do not (yet) know enough about it all to say whether or
    : not the EXE will need rebuilding [am currently reading about the
    : subject, but I've only just started]. My experiences and what little
    : I know tell me that it should work - as long as every function name
    : is still present. The entry points are not important, as the EXE
    : loader will fill in that data when it loads the executable in memory
    : and only uses the names (so the function names after name-mangling
    : have to be the same).
    :
    : Best Regards,
    : Richard
    :
    : The way I see it... Well, it's all pretty blurry

    Not only the function names are important, but also the function parameters. If the parameters (or the names) change, then rebuilding is necessary. If only the function implementation changes, or new functions are added, then you don't need to rebuild the executable.
Sign In or Register to comment.