Print Page | Close Window

Quick PDF Library 7.25 Released

Printed From: Debenu Quick PDF Library - PDF SDK Community Forum
Category: For Users of the Library
Forum Name: Library Downloads
Forum Description: News and links for latest versions of Debenu Quick PDF Library and Debenu PDF Viewer SDK
URL: http://www.quickpdf.org/forum/forum_posts.asp?TID=1847
Printed Date: 25 Nov 24 at 2:09PM
Software Version: Web Wiz Forums 11.01 - http://www.webwizforums.com


Topic: Quick PDF Library 7.25 Released
Posted By: Rowan
Subject: Quick PDF Library 7.25 Released
Date Posted: 03 Jun 11 at 10:26PM
We're happy to announce that Quick PDF Library 7.25 has been released. You can download this new version from our http://www.quickpdflibrary.com/products/quickpdf/updates.php - updates page . It's a great new release, we highly recommend that you update.

Users of Delphi 4 and 5 should upgrade as an issue that was previously preventing you from upgrading has been resolved.



Replies:
Posted By: jpbro
Date Posted: 04 Jun 11 at 6:44PM
Just a word of warning to other users who might be installing the 7.25 release - I'm experiencing a compatibility issue in VB6. It may just be my computer that is messed up, but I thought I would post this here in case it might affect others:

I had 7.25 Beta 3 installed, and it was working beautifully, so I decided to install the latest 7.25 release.

Now when I try to compile one of my projects, Binary Compatibility is broken, so I can't compile without recompiling all of my projects that rely on that DLL.

In a project that uses GetCanvasDC, I now get the following error when I try to run or compile:

Compile error:

Function or interface marked as restricted, or the function uses an Automation type not supported in Visual Basic

And when I look in the VB6 Object Browser I see this:

GetCanvasDC(CanvasWidth As Long, CanvasHeight As Long) As <Unsupported variant type>

So I presume the unsupported variant type has broken compatibility with the previous 7.25 beta (and maybe older releases)?

Again, maybe something just went wrong during install on my computer, but now I've had to rollback in order to get things compiling/running again, so I hope there is a solution for this! I'll try some more test in a VM and I've also opened a support request, so I'll report back here when I have some answers.



Posted By: Rowan
Date Posted: 06 Jun 11 at 10:14AM
Hi There,

In 7.25 final release we made a switch to using unsigned integers to resolve some other errors but it doesn't look like VB6 supports unsigned integers so we have a workaround for you. It basically involves registering the ActiveX version as per usual but then we provide you with a TLB file that you add to your project which acts as an interface to the ActiveX. The TLB file has the GUID of the ActiveX class and that gets hooked up in the registry to link back to the DLL.

We'll send the TLB to you shortly but can you send us the code that you're using with the GetCanvasDC so that we can do some final testing on our end to make sure it will work on your end?

- Rowan.


Posted By: jpbro
Date Posted: 06 Jun 11 at 3:23PM
Thanks for you quick response! I'll send some code shortly (I have to strip out some sections with code to other third-party libraries) - will the binary compatibility still be there with this workaround?That is will DLLs compiled against previous versions of QuickPDF still be binary compatible when compiled against the new 7.25 + TLB?



Posted By: jpbro
Date Posted: 07 Jun 11 at 2:17PM
Sorry for the delay - here's the VB6 sample that is working with 7.25 Beta 3:

http://www.statslog.net/quickpdfcanvasdc.zip - http://www.statslog.net/quickpdfcanvasdc.zip


Posted By: Shotgun Tom
Date Posted: 07 Jun 11 at 4:43PM
Question:  For VB6 compiled programs... will we have to distribute the TLB file as well as the DLL?


Posted By: Rowan
Date Posted: 07 Jun 11 at 5:07PM
There won't be binary compatibility with old/new versions of Quick PDF Library and officially we've never supported this. While part of the idea behind ActiveX is to have drag and drop compatibility this is not something that we support with the library for a number of reasons. 

One of the primary reasons is that we license Quick PDF Library to many different companies and the chances of an end-user installing two different applications that use Quick PDF Library are significant, which can cause major issues if these two different applications were built against different versions of Quick PDF Library.

So this means that with each new version of Quick PDF Library we give the ActiveX a new class name and a new binary file name to avoid any conflicts on the end users machine.

I should note that it is not necessary to use the TLB file that we'll now provide for VB if you are not using the GetCanvasDC, DARenderPageToDC or RenderPageToDC functions which use unsigned integers. Also, this only applies to older versions of Visual Basic as VB.NET supports unsigned integers.


Posted By: Rowan
Date Posted: 07 Jun 11 at 5:08PM
Tom, it should not be necessary to distribute the TLB file with your application as it should only be used at compile time.


Posted By: jpbro
Date Posted: 07 Jun 11 at 5:54PM
So we're just snookered if we compiled with the 7.25 Beta? I guess I just didn't expect the binary compatibility to change with the same version number, but I'll know for the future to create a separate VM for testing betas.

Any idea on when the TLB will be available?

Thanks.


Posted By: Rowan
Date Posted: 07 Jun 11 at 5:59PM
I just posted an article on this topic on our blog:

http://www.quickpdflibrary.com/blog/2011/06/unsigned-integers-and-visual-basic/ - http://www.quickpdflibrary.com/blog/2011/06/unsigned-integers-and-visual-basic/

The TLB file is now included with the installer but can also be downloaded from the above page.

As a general rule I would not rely on binary compatibility even between betas. Obviously this isn't clear on our website, but I'll make some updates to make it's clear to avoid any confusion in the future.

Apologies for any inconvenience that this has caused.

Cheers,
- Rowan.


Posted By: Rowan
Date Posted: 09 Jun 11 at 5:14PM
Tom, I made a mistake earlier, this change will not affect the DLL edition if you are using the existing import header for the DLL edition as that continues to use the same Long type as before. So no changes necessary in this case.


Posted By: Rowan
Date Posted: 21 Jun 11 at 4:05PM
Guys, we have a further update on this topic, posted on our blog.

http://www.quickpdflibrary.com/blog/2011/06/device-context-handles-and-signedunsigned-integers/ - http://www.quickpdflibrary.com/blog/2011/06/device-context-handles-and-signedunsigned-integers/

This means that you no longer have to use the TLB file as it is embedded into the ActiveX edition, however, we still provide a TLB file for the ActiveX edition for anyone who would like to use it (it's a general ActiveX TLB, not specifically for VB).

Working with so many different editions of the library and programming languages it was difficult to find the right solution, but we think we have found it now.



Print Page | Close Window

Forum Software by Web Wiz Forums® version 11.01 - http://www.webwizforums.com
Copyright ©2001-2014 Web Wiz Ltd. - http://www.webwiz.co.uk