Do you own a Debenu Quick PDF Library version 7, 8, 9, 10, 11, 12, 13 or iSEDQuickPDF license? Upgrade to Debenu Quick PDF Library 14 today!

Debenu Quick PDF Library - PDF SDK Community Forum Homepage
Forum Home Forum Home > For Users of the Library > I need help - I can help
  New Posts New Posts RSS Feed - DLL => static linkable .lib
  FAQ FAQ  Forum Search   Register Register  Login Login

DLL => static linkable .lib

 Post Reply Post Reply
Author
Message
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post Topic: DLL => static linkable .lib
    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...
Back to Top
ukobsa View Drop Down
Senior Member
Senior Member


Joined: 29 May 06
Location: Germany
Status: Offline
Points: 115
Post Options Post Options   Thanks (0) Thanks(0)   Quote ukobsa Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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!

Back to Top
chicks View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 29 Oct 05
Location: United States
Status: Offline
Points: 251
Post Options Post Options   Thanks (0) Thanks(0)   Quote chicks Quote  Post ReplyReply Direct Link To This Post 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/
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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).

Back to Top
marian_pascalau View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 28 Mar 06
Location: Germany
Status: Offline
Points: 278
Post Options Post Options   Thanks (0) Thanks(0)   Quote marian_pascalau Quote  Post ReplyReply Direct Link To This Post 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


Edited by marian_pascalau - 28 Feb 07 at 12:17PM
Back to Top
marian_pascalau View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 28 Mar 06
Location: Germany
Status: Offline
Points: 278
Post Options Post Options   Thanks (0) Thanks(0)   Quote marian_pascalau Quote  Post ReplyReply Direct Link To This Post 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 Confused
 
Best regards, Marian


Edited by marian_pascalau - 28 Feb 07 at 11:59AM
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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?
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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?

Back to Top
marian_pascalau View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 28 Mar 06
Location: Germany
Status: Offline
Points: 278
Post Options Post Options   Thanks (0) Thanks(0)   Quote marian_pascalau Quote  Post ReplyReply Direct Link To This Post 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 
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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...

Back to Top
chicks View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 29 Oct 05
Location: United States
Status: Offline
Points: 251
Post Options Post Options   Thanks (0) Thanks(0)   Quote chicks Quote  Post ReplyReply Direct Link To This Post 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
...



Edited by chicks - 04 Mar 07 at 12:20AM
Back to Top
mark View Drop Down
Beginner
Beginner
Avatar

Joined: 27 Feb 07
Location: United States
Status: Offline
Points: 10
Post Options Post Options   Thanks (0) Thanks(0)   Quote mark Quote  Post ReplyReply Direct Link To This Post 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....

Back to Top
marian_pascalau View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 28 Mar 06
Location: Germany
Status: Offline
Points: 278
Post Options Post Options   Thanks (0) Thanks(0)   Quote marian_pascalau Quote  Post ReplyReply Direct Link To This Post 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
Back to Top
chicks View Drop Down
Debenu Quick PDF Library Expert
Debenu Quick PDF Library Expert


Joined: 29 Oct 05
Location: United States
Status: Offline
Points: 251
Post Options Post Options   Thanks (0) Thanks(0)   Quote chicks Quote  Post ReplyReply Direct Link To This Post 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: borland2msvc

See the last post. Looks like you may not need the underscore prefixes. IIRC, the ordinal values aren't required.



Edited by chicks - 05 Mar 07 at 4:32PM
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.

Copyright © 2017 Debenu. Debenu Quick PDF Library is a PDF SDK. All rights reserved. AboutContactBlogSupportOnline Store