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!
![]() |
DLL => static linkable .lib |
Post Reply ![]() |
Author | |
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() 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... |
|
![]() |
|
ukobsa ![]() Senior Member ![]() Joined: 29 May 06 Location: Germany Status: Offline Points: 115 |
![]() ![]() ![]() ![]() ![]() |
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 |
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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! |
|
![]() |
|
chicks ![]() Debenu Quick PDF Library Expert ![]() Joined: 29 Oct 05 Location: United States Status: Offline Points: 251 |
![]() ![]() ![]() ![]() ![]() |
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/ |
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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). |
|
![]() |
|
marian_pascalau ![]() Debenu Quick PDF Library Expert ![]() Joined: 28 Mar 06 Location: Germany Status: Offline Points: 278 |
![]() ![]() ![]() ![]() ![]() |
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 |
|
![]() |
|
marian_pascalau ![]() Debenu Quick PDF Library Expert ![]() Joined: 28 Mar 06 Location: Germany Status: Offline Points: 278 |
![]() ![]() ![]() ![]() ![]() |
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 Edited by marian_pascalau - 28 Feb 07 at 11:59AM |
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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? |
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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? |
|
![]() |
|
marian_pascalau ![]() Debenu Quick PDF Library Expert ![]() Joined: 28 Mar 06 Location: Germany Status: Offline Points: 278 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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... |
|
![]() |
|
chicks ![]() Debenu Quick PDF Library Expert ![]() Joined: 29 Oct 05 Location: United States Status: Offline Points: 251 |
![]() ![]() ![]() ![]() ![]() |
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 |
|
![]() |
|
mark ![]() Beginner ![]() ![]() Joined: 27 Feb 07 Location: United States Status: Offline Points: 10 |
![]() ![]() ![]() ![]() ![]() |
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.... |
|
![]() |
|
marian_pascalau ![]() Debenu Quick PDF Library Expert ![]() Joined: 28 Mar 06 Location: Germany Status: Offline Points: 278 |
![]() ![]() ![]() ![]() ![]() |
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
|
|
![]() |
|
chicks ![]() Debenu Quick PDF Library Expert ![]() Joined: 29 Oct 05 Location: United States Status: Offline Points: 251 |
![]() ![]() ![]() ![]() ![]() |
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 |
|
![]() |
Post Reply ![]() |
|
Tweet
|
Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |
Copyright © 2017 Debenu. Debenu Quick PDF Library is a PDF SDK. All rights reserved. About — Contact — Blog — Support — Online Store