I am supposed to migrate a second-party code written in C++(using VC++) from Windows NT server to Windows 2003 server.

The migration procedure is standard and there doesn't seem to be any problem in the migration part. In fact the program runs fine with one set of parameters.

However, when i run the program with another parameter, it crashes giving the followng error:

The instruction at "0x00336777" referenced memory at "0x0000000c". The memory could not be "read".

Click on OK to terminate the program
Click on CANCEL to debug the program.

When i cancel to debug it, debugging instantly stops giving the following error:

Unhandled Exception in MYPROGRAM.exe(third_party_dll.dll):0x00000005. Access Violation.

I have examined and found that when i give this particular parameter, this code tries to execute a certain function which is written inside a dll(and declared in the corresponding header) . As soon as it tries to execute this function, the program crashes with the above mentioned errors. I do not have access to read the dll since it has been provided by a third party.

I can only read the declaration of this function in the header file. This function was executing fine before the migration with its older version of dll. I have not made any changes in the code during migration.

What can be the reasons and solution to this problem?