Click here to Skip to main content
15,896,154 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello Guys,

We had been using the old msado15.dll in our program . And we used to import it #import "msado15.dll" . Now just a few days back we upgraded to Windows 8. And alas, our software stopped working on Windows 7 which didnt have Service pack 1 installed.
Earlier when we were using Windows 7 we had upgraded to Service pack 1 and the same problem was happening so we uninstalled the service pack 1 for windows 7 from all machines and everything worked fine.

But with Windows 8 i suppose they have already changed the msado15.dll.
I did some research online and they said that we should replace the imports with the msado60.tlb but this also didnt work with our compilation breaking.

Can any one suggest proper steps that we can follow so as to get our program running on Windows 7 without service pack 1 as we as on windows 8.

Have been stuck with this issue for a few days now . help will be much appreciated.
Posted

sounds like this[^] is your problem - MS changed the IIDs

That article also includes a hot fix ...

Fixing it in your code could be an alternative, but I don't know how you've set it out - you'd have to import both old and new typelibs (using the rename_namespace[^] directive) and have two implementations
 
Share this answer
 
Comments
Saurabh.abhyankar 30-Oct-12 2:08am    
This is how we used to refer in our C++ environment
#import "c:\program Files\Common Files\system\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndofFile")

I have changed it to
#import "c:\program Files\Common Files\system\ado\msado28.tlb" rename_namespace("ADOCG") rename("EOF","EndofFile")

Also can you please elaborate on what you mean by "you'd have to import both old and new typelibs (using the rename_namespace[^] directive) and have two implementations"
barneyman 2-Nov-12 6:09am    
ok - the major problem is that MS changed the all the IIDs and GUIDs between those two releases ... i guess the hotfix tries to remedy that ... if you want to fix it in code, you're going to need two sets of code, one which references the 'old' IDs, and one which uses the new ones = the actual code should be identical ...

This is how we used to refer in our C++ environment
#import "c:\program Files\Common Files\system\ado\msado15.dll" rename_namespace("ADOCG") rename("EOF","EndofFile")

I have changed it to
#import "c:\program Files\Common Files\system\ado\msado28.tlb" rename_namespace("ADOCG") rename("EOF","EndofFile")

Also can you please elaborate on what you mean by "you'd have to import both old and new typelibs (using the rename_namespace[^] directive) and have two implementations"
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900