DLL => static linkable .lib
Printed From: Debenu Quick PDF Library - PDF SDK Community Forum
Category: For Users of the Library
Forum Name: I need help - I can help
Forum Description: Problems and solutions while programming with the Debenu Quick PDF Library and Debenu PDF Viewer SDK
URL: http://www.quickpdf.org/forum/forum_posts.asp?TID=654
Printed Date: 07 May 25 at 5:42PM Software Version: Web Wiz Forums 11.01 - http://www.webwizforums.com
Topic: DLL => static linkable .lib
Posted By: mark
Subject: DLL => static linkable .lib
Date Posted: 27 Feb 07 at 8:17PM
Hello,
I've been using QuickPDF a little, for several years. Now though, I'm doing something new and I'm having problems with its rendering engine and form field processing, probably due to .pdf files supporting a newer standard than my library handles.
My library version is 4.41.11, so I'm hoping the work that's here will make a big difference. I tried simply replacing my old .dll with the new one (incidently I had to rename from ISEDQuickPDF.dll to ISEDQuickPDFSL.lib), but that just caused me to crash.
I'm hoping the reason for my crash is that my old ISEDQuickPDFSL.lib, created from the 4.41 era, is no longer compatible with the 5.21 dll. However, I have no idea how to create a new .lib to link into my application.
Can anyone help?
Thanks...
|
Replies:
Posted By: ukobsa
Date Posted: 28 Feb 07 at 1:58AM
Hello,
some questions before:
- can you tell on which function call quickPDF is crashing? - does this crash happens for all PDFs? - is the dll linked static or dynamic? Or is it used as an ActiveX lib? (in the later case you have used the wong dll; try the ActiveX version) - which development platform is used by your calling program? - can you provide a simple test application that shows the crash? - could you explain your renaming to .lib? I'm not sure that I understand what you rename to what in which version.
best regards, Ulrich
|
Posted By: mark
Date Posted: 28 Feb 07 at 9:35AM
I tracked the crash to my own failure to perform error checking. However, I'm still having trouble with the 5.21 DLL. I'm getting an error that I don't get with the older version.
The function iSEDLoadFromFile() is returning 0 (error) under the new version; this happens for any of my set of PDFs; all of these PDFs open under the old version.
This evening (USA time) I'll verify the status of iSEDUnlockKey() to make sure it's unlocking properly.
It seems that functions return 0 to indicate an error; is there a way to find the specific complaint of an error?
My DLL is statically linked. My program is written in C++ (using VC++ 6.0).
In the 4.41 verision of the library, SedTech provided a DLL named ISEDQuickPDFSL.dll (the SL on the end for static link); I suppose other models of the library had different names on them as well but I'm not certain. If I recall correctly (this is 3 - 5 years ago), they did not include the .lib which is needed for the static link, instead that was generated somehow (using VC's lib.exe tool). I could be mistaking that aspect with Sqlite.dll, which I'm certain requires manual .lib creation. At any rate, because my isedquickpdfsl.lib requires the DLL to be named similarly, I've had to rename my .dll in order to use it.
Thanks very much for offering to assist me. I know I'm probably not being as clear as you need me to be and I appologize. ================
The reasons I'm finding an upgrade necessary relate to rendering, in three different ways.
My application uses pre-created PDFs (created in various versions of Acrobat). All of them are a graphic background and numerous fields at appropriate locations over the graphic.
Initially my rendering was to (programatically) fill in the field contents, then flatten it, and when all fields were done: render the document. I'm finding that many fields don't display when I do this though. I've gotton around that problem by determing the bounds of the field, deleting the field, and drawing a text box. If 5.21 makes that hack not necessary I'll be happier.
Next, I have one PDF which displays entirely blank (though it displays properly in Acrobat Reader). I also have one whose graphic is all black (and it too displays properly in Reader).
Finally, and most important... for several of my PDFs I cannot locate my fields by name (iSEDFindFormFieldByTitle() ). I wrote a loop to iterate through all forms, printing out their titles, and for the PDFs with this problem the titles are all garbage data. (The PDFs are not encrypted.) Hopefully 5.21 addresses this too, or I'm in for a long time rebuilding many forms.
Thanks again!
|
Posted By: chicks
Date Posted: 28 Feb 07 at 9:50AM
iSEDQuickPDF 3.98
Static link DLL version
1 February 2004
http://www.sedtech.com/isedquickpdf/
There are two .def files included in this archive:
iSEDQuickPDF.def1
iSEDQuickPDF.def2
Use the lib.exe utility provided with your C++ distribution
to convert the .def file into a .lib file:
lib.exe /DEF:iSEDQuickPDF.def1
- or -
lib.exe /DEF:iSEDQuickPDF.def2
The files differ in the way functions with no parameters are
named. Run a test with a function like SelectedDocument to
test which version of the .def file you should be using for
your C++ compiler.
Remember to ensure your source files are named .cpp, or set
your compiler to C++ mode otherwise the extern "C" operands
in the header file will not be recognized.
Once you have generated a .lib file from the .def file you
can statically link the .lib into your project.
The functions in the DLL are named iSEDxxx where xxx is the
name of the function in the documentation. For example, the
DrawText function is named iSEDDrawText in the DLL.
Use the StringResultLength function to determine the
length of the data returned by the most recent function
with a PChar result.
--
SEDTech Support
http://www.sedtech.com/support/
|
Posted By: mark
Date Posted: 28 Feb 07 at 10:48AM
Thanks chicks, that sparks a little recollection for me.
Is it possible to get the .def1 and .def2 files for the 5.21 version created here?
Failing that, should I expect these files from an older version to continue to work for creation of the .lib (and, if so... is there a place to download them? I don't know if I could locate my originals anymore).
|
Posted By: marian_pascalau
Date Posted: 28 Feb 07 at 11:57AM
mark, the older version may not work because we (me) have no idea about the size of the interface changes between 4.** and 5.**.
A sample of your def file will be the following one (c++ header I don't have right now):
LIBRARY iSEDQuickPDF.dll EXPORTS iSEDSelectDocument iSEDRemoveDocument iSEDNewDocument iSEDCompressContent iSEDEncrypt iSEDPermissions iSEDSelectPage iSEDNewPage iSEDSaveToFile iSEDSetPageDimensions iSEDSelectFont iSEDSetTextColor iSEDSetTextAlign iSEDSetTextSize iSEDDrawText iSEDDrawLine iSEDDrawBox iSEDDrawWrappedText iSEDAddStandardFont iSEDAddTrueTypeFont iSEDAddPackagedFont iSEDDrawMultiLineText iSEDSetOrigin iSEDSetMeasurementUnits iSEDDrawImage iSEDDrawArc iSEDDrawRotatedText iSEDDrawCircle iSEDDrawBarcode iSEDSetInformation iSEDSaveToString iSEDLibraryVersion iSEDUnlocked iSEDLastErrorCode iSEDDocumentCount iSEDDocumentID iSEDSelectedDocument iSEDLoadFromFile iSEDLoadFromString iSEDLinearized iSEDEncrypted iSEDEncryptionStrength iSEDUnencrypt iSEDSecurityInfo iSEDSetPassword iSEDGetInformation iSEDPageCount iSEDSelectedPage iSEDPageWidth iSEDPageHeight iSEDGetPageText iSEDGetPageContent iSEDSetPageContent iSEDGetPagePreview iSEDReplaceTag iSEDFontCount iSEDFontID iSEDSelectedFont iSEDFontName iSEDCharWidth iSEDNewOutline iSEDImageCount iSEDImageID iSEDSelectedImage iSEDSelectImage iSEDImageWidth iSEDImageHeight iSEDImageType iSEDAddJPEGImageFromFile iSEDAddJPEGImageFromString iSEDGetTextWidth iSEDGetWrappedText iSEDGetWrappedTextHeight iSEDGetWrappedTextLineCount iSEDSetTextSpacing iSEDSetFillColor iSEDSetLineColor iSEDSetLineWidth iSEDStartPath iSEDAddLineToPath iSEDAddCurveToPath iSEDDrawPath iSEDClosePath iSEDFontReference iSEDFontType iSEDAddLinkToWeb iSEDAddLinkToPage iSEDDrawSpacedText iSEDClonePages iSEDSetPageMode iSEDSetPageLayout iSEDSetViewerPreferences iSEDSetOpenActionMenu iSEDCompressPage iSEDMergeDocument iSEDNewPages iSEDInsertPages iSEDLayerCount iSEDCombineLayers iSEDNewLayer iSEDSelectLayer iSEDEditableLayer iSEDMoveLayer iSEDSetPrecision iSEDSetTextMode iSEDSetFillColorCMYK iSEDSetLineColorCMYK iSEDSetTextColorCMYK iSEDGetTextAscent iSEDGetTextDescent iSEDGetTextHeight iSEDDeletePages iSEDGetTextBound iSEDAddBMPImageFromFile iSEDAddBMPImageFromString iSEDDrawScaledImage iSEDFormFieldCount iSEDDrawTextBox iSEDGetFormFieldBound iSEDGetFormFieldTitle iSEDSetFormFieldReadOnly iSEDSetFormFieldValue iSEDSetFormFieldValueByTitle iSEDSetFormFieldVisible iSEDSetImageMask iSEDAddTIFFImageFromFile iSEDAddTIFFImageFromString iSEDGetFormFieldValue iSEDCompressImages iSEDGetFormFieldType iSEDRotatePage iSEDSetLineDash iSEDDrawRoundedBox iSEDDeleteLayer iSEDDrawHTMLText iSEDExtractPages iSEDFindFormFieldByTitle iSEDGetCustomInformation iSEDGetFormFieldChildTitle iSEDGetFormFieldPage iSEDGetFormFieldSubCount iSEDGetFormFieldSubName iSEDHasFontResources iSEDLoadState iSEDSaveState iSEDSetClippingPath iSEDSetCustomInformation iSEDSetFormFieldChildTitle iSEDSetHTMLBoldFont iSEDSetHTMLBoldItalicFont iSEDSetHTMLItalicFont iSEDSetHTMLNormalFont iSEDSetOpenActionDestination iSEDSetScale iSEDAddType1Font iSEDLicenseInfo iSEDMovePage iSEDMultiplyScale iSEDNeedImagePreview iSEDNewFormField iSEDReplaceFonts iSEDSetFormFieldBounds iSEDSetFormFieldDefaultValue iSEDSetPageActionMenu iSEDSetTransparency iSEDHidePage iSEDSetTempFile iSEDSetFormFieldFlags iSEDGetFormFieldFlags iSEDFormFieldJavaScriptAction iSEDAddLinkToJavaScript iSEDSetImageMaskCMYK iSEDSetFontEncoding iSEDFindImages iSEDDrawHTMLTextBox iSEDGetHTMLTextHeight iSEDSetPageSize iSEDCapturePage iSEDDrawCapturedPage iSEDCopyPageRanges iSEDExtractPageRanges iSEDGetFormFieldValueByTitle iSEDGetOrigin iSEDDeleteFormField iSEDGetTextSize iSEDToPDFUnicode iSEDGetFormFieldJavaScript iSEDSetNeedAppearances iSEDDrawEllipse iSEDDrawEllipticArc iSEDSetCatalogInformation iSEDGetCatalogInformation iSEDSetOpenActionJavaScript iSEDSetFormFieldDescription iSEDGetFormFieldDescription iSEDStringResultLength iSEDCompressFonts iSEDSetJavaScriptMode iSEDPageJavaScriptAction iSEDDocJavaScriptAction iSEDGetOpenActionJavaScript iSEDGetDocJavaScript iSEDAddGlobalJavaScript iSEDGetGlobalJavaScript iSEDGetPageJavaScript iSEDSetFormFieldBorderColor iSEDSetFormFieldBackgroundColor iSEDSetFormFieldCaption iSEDSetFormFieldBorderStyle iSEDSetFormFieldIcon iSEDSetFormFieldIconStyle iSEDSetFormFieldHighlightMode iSEDEncryptFile iSEDDecryptFile iSEDAnalyseFile iSEDGetAnalysisInfo iSEDDeleteAnalysis iSEDGhostScriptInit iSEDGhostScriptGetPagePreview iSEDMergeFiles iSEDGetFormFieldAnnotFlags iSEDSetFormFieldAnnotFlags iSEDSetFormFieldPrintable iSEDSetFormFieldCalcOrder iSEDSetLineCap iSEDSetLineJoin iSEDPageRotation iSEDFindFonts iSEDAddNoteAnnotation iSEDSavePagePreview iSEDSaveImageToFile iSEDMovePath iSEDDrawPathEvenOdd iSEDSetClippingPathEvenOdd iSEDSetCropBox iSEDDrawRotatedImage iSEDDrawRotatedCapturedPage iSEDSetPageThumbnail iSEDAddImageFromFile iSEDAddToFileList iSEDClearFileList iSEDMergeFileList iSEDAddImageFromString iSEDFileListItem iSEDOutlineCount iSEDOutlineTitle iSEDOutlineID iSEDSetOutlineColor iSEDSetOutlineStyle iSEDSetOutlineDestination iSEDSetOutlineTitle iSEDRemoveOutline iSEDOpenOutline iSEDCloseOutline iSEDRemoveAppearanceStream iSEDSetTempPath iSEDGetTempPath iSEDTestTempPath iSEDSetTextScaling iSEDGetFormFieldAlignment iSEDSetFormFieldAlignment iSEDGetFormFieldMaxLen iSEDSetFormFieldMaxLen iSEDFitTextBox iSEDSetBreakString iSEDGetFormFieldFontName iSEDGetFormFieldTextSize iSEDGetFormFontCount iSEDGetFormFontName iSEDSetFormFieldFont iSEDAddFormFont iSEDSetFormFieldColor iSEDGetFormFieldColor iSEDSetFormFieldTextSize iSEDSetFormFieldTextFlags iSEDUpdateAppearanceStream iSEDSetFormFieldRotation iSEDFlattenFormField iSEDNewStaticOutline iSEDSetOutlineJavaScript iSEDSetOutlineWebLink iSEDGetOutlinePage iSEDGetFirstOutline iSEDGetPrevOutline iSEDGetNextOutline iSEDGetFirstChildOutline iSEDGetParentOutline iSEDImageHorizontalResolution iSEDImageVerticalResolution iSEDImageResolutionUnits iSEDFormFieldWebLinkAction iSEDGetFormFieldWebLink iSEDGetFormFieldTabOrder iSEDSetFormFieldTabOrder iSEDLayerSafe iSEDUseUnsafeLayers iSEDAddTrueTypeFontFromFile iSEDSetOutlineDestinationZoom iSEDGetFormFieldVisible iSEDGetFormFieldPrintable iSEDSetFormFieldPage iSEDGetFormFieldSubTempIndex iSEDGetFormFieldRotation iSEDGetOutlineDest iSEDGetDestPage iSEDGetDestType iSEDGetDestValue iSEDMergeFileListFast iSEDFileListCount iSEDExtractFilePageText iSEDExtractFilePageContent iSEDGetFormFieldTextFlags iSEDAddArcToPath iSEDAddImageFromFileOffset iSEDGetImagePageCount iSEDSetImageMaskFromImage iSEDSetImageAsMask iSEDReverseImage iSEDSetPageTransparencyGroup iSEDGetPageLayout iSEDGetPageMode iSEDAddSubsettedFont iSEDGetSubsetString iSEDFitImage iSEDSaveFontToFile iSEDDrawTextArc iSEDCheckObjects iSEDGetOpenActionDestination iSEDSetFontFlags iSEDExtractFilePages iSEDDAOpenFile iSEDDACloseFile iSEDDAAppendFile iSEDDASaveAsFile iSEDDAGetPageContent iSEDDAExtractPageText iSEDDAGetInformation iSEDDASetInformation iSEDDANewPages iSEDDACapturePage iSEDDAHidePage iSEDDADrawCapturedPage iSEDDAGetPageCount iSEDDASetPageSize iSEDDANewPage iSEDDAFindPage iSEDDAGetPageWidth iSEDDAGetPageHeight iSEDSetTextHighlight iSEDSetTextUnderline iSEDSetTextHighlightColor iSEDSetTextHighlightColorCMYK iSEDSetTextWordSpacing iSEDSetTextCharSpacing iSEDClearTextFormatting iSEDSetTextUnderlineColor iSEDSetTextUnderlineColorCMYK iSEDFontSize iSEDEncapsulateLayer iSEDSetTextUnderlineDash iSEDAppendText iSEDApplyStyle iSEDDrawRotatedTextBox iSEDGetWrappedTextBreakString iSEDGlobalJavaScriptCount iSEDGlobalJavaScriptPackageName iSEDRemoveStyle iSEDSaveStyle iSEDSetOutlineOpenFile iSEDMoveOutlineAfter iSEDMoveOutlineBefore iSEDRenderDocumentToFile iSEDPrintDocument iSEDStoreCustomData iSEDRetrieveCustomData iSEDSetTextRise iSEDGetFormFieldBorderColor iSEDGetFormFieldBackgroundColor iSEDGetFormFieldBorderStyle iSEDGetFormFieldBorderProperty iSEDSetTextColorSep iSEDSetTextHighlightColorSep iSEDSetTextUnderlineColorSep iSEDAddSeparationColor iSEDSetFillColorSep iSEDSetLineColorSep iSEDSetFormFieldBorderColorSep iSEDSetFormFieldBorderColorCMYK iSEDSetFormFieldBackgroundColorSep iSEDSetFormFieldBackgroundColorCMYK iSEDSetFormFieldColorSep iSEDSetFormFieldColorCMYK iSEDAddSVGAnnotationFromFile iSEDAnnotationCount iSEDGetAnnotDblProperty iSEDGetAnnotStrProperty iSEDGetAnnotIntProperty iSEDGetFormFieldReadOnly iSEDAppendSpace iSEDUseKerning iSEDFontHasKerning iSEDGetKerning iSEDSetKerning iSEDDARenderPageToString iSEDSetGDIPlusFileName iSEDSetJPEGQuality iSEDGetEncryptionFingerprint iSEDEncryptWithFingerprint iSEDAddPageLabels iSEDGetPageLabel iSEDClearPageLabels iSEDEmbedFile iSEDFitRotatedTextBox iSEDSetDocumentMetadata iSEDGetFormFieldKidCount iSEDFormFieldHasParent iSEDCapturePageEx iSEDDACapturePageEx iSEDPrintOptions iSEDGetPageBox iSEDHasPageBox iSEDDAMovePage iSEDDAPageRotation iSEDDARotatePage iSEDGetDocumentIdentifier iSEDAddLinkToFile iSEDCheckPageAnnots iSEDNewOptionalContentGroup iSEDSetCapturedPageOptional iSEDSetLayerOptional iSEDOptionalContentGroupCount iSEDGetOptionalContentGroupName iSEDGetOptionalContentGroupID iSEDSetOptionalContentGroupVisible iSEDDeleteOptionalContentGroup iSEDSetImageOptional iSEDImageFillColor iSEDReplaceImage iSEDGetBarcodeWidth iSEDSetAnnotContents iSEDGetFormFieldComb iSEDSetFormFieldComb iSEDSetFormFieldStandardFont iSEDDAGetPageImageList iSEDDAGetImageListCount iSEDDAGetImageIntProperty iSEDDAGetImageDblProperty iSEDDAGetImageDataAsString iSEDDASaveImageDataToFile iSEDSetBlendMode iSEDRenderPageToString iSEDGetCustomKeys iSEDGetDocumentMetadata iSEDNewCustomPrinter iSEDSetupCustomPrinter iSEDGetPrinterNames iSEDGetFileMetadata iSEDSetCustomLineDash iSEDRemoveSharedLayers iSEDGetPrinterBins iSEDSplitPageText iSEDSetGDIPlusOptions iSEDGetDefaultPrinterName iSEDGetFormFieldChoiceType iSEDGetFormFieldDefaultValue iSEDGetFormFieldCaption iSEDGetOutlineWebLink iSEDGetOutlineOpenFile iSEDAddFormFieldSub iSEDSetFormFieldCheckStyle iSEDStoreCustomDataLength iSEDBeginBuffer iSEDStoreBuffer iSEDSetFormFieldOptional iSEDDrawDataMatrixSymbol iSEDGetXFAFormFieldValue iSEDSetXFAFormFieldValue iSEDSetXFAFormFieldBorderWidth iSEDSetXFAFormFieldBorderColor iSEDSetXFAFormFieldBorderPresence iSEDSetXFAFormFieldAccess iSEDGetViewerPreferences iSEDNewPostScriptXObject iSEDDrawPostScriptXObject iSEDStoreCustomDataFromFile iSEDRetrieveCustomDataToFile iSEDUnlockKey
|
Posted By: marian_pascalau
Date Posted: 28 Feb 07 at 11:59AM
one more suggestion. To create the lib file use:
lib.exe /DEF:iSEDQuickPDF.def /MACHINE:X86
Who knows what the lib.exe will compile by default 
Best regards, Marian
|
Posted By: mark
Date Posted: 28 Feb 07 at 12:43PM
Hi marian, thanks for your posts. If I understand you, I can cut-n-paste your 1st post (starting with "LIBRARY iSEDQuickPDF.dll") to create the .def I need. I'll try that tonight.
Will I be ok to continue using the same .h I currently use? Perhaps a better question... is the calling convention of the functions cdecl, stdcall, or fastcall?
Off topic, but what exactly goes into the def... is it a list of function names to look for, or is it what I wish to call functions (where order is significant)? That is, if I wanted to rename a function (or a statically linked DLL), is this a valid technique?
|
Posted By: mark
Date Posted: 28 Feb 07 at 3:42PM
No luck yet.
I was able to create the .lib, but when linking my application I was presented with errors along the lines of: testform.obj : error LNK2001: unresolved external symbol _iSEDLoadFromFile@4
One of these for each iSED function I use.
For each of these functions I went through and appended "@4" (or whatever the number was in each unique error line; adding the underscore didnt change anything), and I was able to link... but I wasn't able to run.
At runtime, I encountered a single error as part of the static DLL load. This error was a dialog box, whose text stated: The procedure entry point iSEDDrawText@20 could not be located in the dynamic link library iSEDQuickPDF.dll.
It seems like I'm getting close, but not quite there, eh?
My .h builds prototypes that all resemble: extern "C" { int __declspec(dllimport) __stdcall iSEDSelectDocument(int iDocumentID); }
extern "C" { int __declspec(dllimport) __stdcall iSEDRemoveDocument(int iDocumentID); }
Now, to try to get past the loading error I inserted at the top: #define __stdcall After this, I had to remove the "@4", etc, from the .def and then I was able to link and start. However, as soon as I tried to return from the first function that called an iSED function, I crashed... apparently the call stack was trashed because I broke the call type in the prototype.
Replacing __stdcall with __cdecl resulted in the same crash. Replacing it with __fastcall required I modify the .def entries again, to add a @ before each function to get a static link... and then I had the same error dialog before my app even reached main.
Anyone out here using QuickPDF 5.21 with a C/C++ program?
|
Posted By: marian_pascalau
Date Posted: 28 Feb 07 at 3:55PM
mark,
the __declspec(dllimport) __stdcall is not needed.
please use only:
extern "C" {
int stdcall iSEDSelectDocument(int iDocumentID);
}
Keep in mind that Delphi does not know about the @SIZEOFARGS stuff.
For more info we can talk tomorrow.
Best regards, Marian
|
Posted By: mark
Date Posted: 03 Mar 07 at 7:04PM
Thank you for the suggestions. Unfortunately they haven't panned out just yet but I appreciate the effort.
My .h no longer has the __declspec(dllimport) __stdcall on its prototypes. I could not use int stdcall functionname() as you suggested though; the double underscore before stdcall seems necessary. (At least, I get compile errors about it without them; did you just typo or do I need to add something else?).
With all functions declared as __stdcall's, I still get errors like the following when linking: mainwindow.obj : error LNK2001: unresolved external symbol _iSEDUnlockKey@4 mainwindow.obj : error LNK2001: unresolved external symbol _iSEDDrawTextBox@40
(For completeness, yes, I have included iSQDQuickPDF.lib in my list of llibrary modules.)
Thank you again for any continuing advice you may be able to provide...
|
Posted By: chicks
Date Posted: 03 Mar 07 at 11:34PM
mark,
Have a look at pages 15-16 of this archive of the iSEDQuickPDF forum:
http://www.organicsw.co.uk/ised/archive/iSEDQuickPDF-forum.pdf
Also, see this thread:
http://www.tutorialsall.com/VC/Export-symbols/
I remember doing this a long time ago with another DLL, and IIRC I had to alias all the exported functions in a .DEF file, like so:
LIBRARY iSEDQuickPDF.dll
EXPORTS
iSEDAddArcToPath = _iSEDAddArcToPath
iSEDAddBMPImageFromFile = _iSEDAddBMPImageFromFile
iSEDAddBMPImageFromString = _iSEDAddBMPImageFromString
iSEDAddCurveToPath = _iSEDAddCurveToPath
...
|
Posted By: mark
Date Posted: 04 Mar 07 at 10:11AM
chicks,
I think you're pointing me in the right direction.... though after as many variations as I could derive, I can't get something that both links and loads.
I've gone off in a different direction though and I've got past this issue. Instead of linking the library statically, I've written a stub that uses LoadLibrary() and GetProcAddress(), and provides function pointers for the QuickPDF functions (well, at least the 20 or so I use... I didn't do anything about the other 400+ functions).
I'm glad I went through this upgrade exercise. Under the 4.x library, I had many Acrobat-created forms whose fields could not be located by name, and under 5.22 the few I've examined are working well.
I also had two forms which did not render at all... one was all white and the other was all black. The white form now renders its background image properly. The black one doesn't, but I suspect it may be related to pixel depth... once I've had time to look into it I'll start a new thread / debug report.
Thanks all....
|
Posted By: marian_pascalau
Date Posted: 05 Mar 07 at 5:16AM
mark, if you are willing to contribute I may create and publish the header and lib files for VC as well.
For more info please contact me on:
support(at)quickpdf.org or
quickpdf(at)gmx.net
|
Posted By: chicks
Date Posted: 05 Mar 07 at 10:50AM
Read up on M$ site regarding "decoration" of exported functions, took one more stab at the .DEF:
LIBRARY iSEDQuickPDF.dll
EXPORTS
_iSEDAddArcToPath@12 = iSEDAddArcToPath
_iSEDAddBMPImageFromFile@4 = iSEDAddBMPImageFromFile
_iSEDAddBMPImageFromString@8 = iSEDAddBMPImageFromString
_iSEDAddCurveToPath@52 = iSEDAddCurveToPath
_iSEDAddFormFont@4 = iSEDAddFormFont
_iSEDAddGlobalJavaScript@8 = iSEDAddGlobalJavaScript
_iSEDAddImageFromFile@8 = iSEDAddImageFromFile
...
Maybe this is the format you need...
(Later)
Just found this: http://groups.google.com/group/comp.lang.c++/browse_thread/thread/c39a05fbd6b02f5a/b32a763a91913bf8%23b32a763a91913bf8 - borland2msvc
See the last post. Looks like you may not need the underscore prefixes. IIRC, the ordinal values aren't required.
|
|