Multiple cdintf.dll's

The Amyuni PDF Converter is our Printer Driver that enables you to convert any documents to PDF format. If you have any questions about installing and using the Amyuni PDF Converter please post them here.
Post Reply
pohtro01
Posts: 2
Joined: Wed Jun 01 2011

Multiple cdintf.dll's

Post by pohtro01 »

We have version 4.0.1 of the PDF Converter, and it looks like Quicken has recently done an update which changed the registered cdintf to a newer version we no longer have access to. Our clients get error code 30 or error code 41 now.

I looked around and found this newsletter you published about Side-by-side activation.

Is this only for .net or is there a way to do this in C++ too?
I played around with the Project properties there is a Isolated COM under the Manifest Tool node, but I couldn't get this to work.

Is there anything else I could try?

Thanks,
Troy
Devteam
Posts: 119
Joined: Fri Oct 14 2005
Location: Montreal
Contact:

Re: Multiple cdintf.dll's

Post by Devteam »

An easy solution is to keep your own copy of CDINTF.DLL in your application's folder then call LoadLibrary( "my_application_path\\cdintf.dll" ) at the initialization of your application. This will force loading the right version when the ActiveX object is instantiated later on in your code.
Amyuni Development Team

Efficient and accurate conversion to PDF, XPS, PDF/A and more. Free trials at - https://www.amyuni.com
pohtro01
Posts: 2
Joined: Wed Jun 01 2011

Re: Multiple cdintf.dll's

Post by pohtro01 »

Sorry it has taken me a while to get back to this.

Anyway I checked my code and I am already doing this. (I don't do it on app init but do it the first time they click my create PDF function)

It seems like using the print driver is working okay, the part that fails is when I use the CDINTF.DLL to Concatenate files, Add encryption , add / remove bookmarks...

Right now I Create a CDIDocument instance and call its functions.

I'm guessing this uses the currently registered CDINTF.DLL to create this object. Is there any way I can use the specific CDINTF.DLL in my application directory for this object?

I have looked into replacing the CDIDocument into calls into the .DLL (I think I did this several years ago.) , it looks to me like I don't have all of the functions available to me if I just do the .dll calls. For example I can't find one that deletes all of the bookmarks.

I'm also hesitant to go back to using these dll functions because previously I had many more problems and switching to the CDIDocument made it much better, do you think that that is still the case?
Devteam
Posts: 119
Joined: Fri Oct 14 2005
Location: Montreal
Contact:

Re: Multiple cdintf.dll's

Post by Devteam »

Please provide us with the code that you are using to load the library and initialize the ActiveX component. We don't understand why this is not working for you. Also if you can run your application from a debugger, on the call to LoadLibrary you should be able to see exactly where is CDINTF loaded from, same thing on the call to ActiveX component initialization.

The DLL functions are only wrappers to the same internal functions as the ActiveX methods, so both should work exactly the same way. With the DLL, if you are linking to CDINTF.LIB file, it will be more difficult to control where the DLL is loaded from. If you are dynamically linking and calling the various functions, then you can control the location of CDINTF.DLL but you will have more code to write.
Amyuni Development Team

Efficient and accurate conversion to PDF, XPS, PDF/A and more. Free trials at - https://www.amyuni.com
Post Reply