Creating a dll in pdfium

2019-07-21 04:03发布

问题:

I am trying to create a dll for pdfium. I am using Visual Studio 2013 (C++) I've tried following instructions from https://github.com/pvginkel/PdfiumViewer but that hasn't worked.(I am trying to get a pdfium dll for a project that is not PdfiumViewer). I get the following errors:

2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1193,5): warning MSB8012: TargetPath(\build\Debug\lib\pdfium.dll) does not match the Linker's OutputFile property value (C:\build\Debug\pdfium.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
2>     Creating library \build\Debug\pdfium.lib and object \build\Debug\pdfium.exp
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_CreateFontA referenced in function "public: static class CPDF_Font * __cdecl CPDF_InterForm::AddSystemFont(class CPDF_Document const *,class CFX_ByteString,unsigned char)" (?AddSystemFont@CPDF_InterForm@@SAPEAVCPDF_Font@@PEBVCPDF_Document@@VCFX_ByteString@@E@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_CreateFontA
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_CreateFontW referenced in function "public: static class CPDF_Font * __cdecl CPDF_InterForm::AddSystemFont(class CPDF_Document const *,class CFX_WideString,unsigned char)" (?AddSystemFont@CPDF_InterForm@@SAPEAVCPDF_Font@@PEBVCPDF_Document@@VCFX_WideString@@E@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_DeleteObject
2>fpdfdoc.lib(doc_form.obj) : error LNK2001: unresolved external symbol __imp_DeleteObject
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2001: unresolved external symbol __imp_DeleteObject
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_DeleteObject
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_DeleteObject
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_EnumFontFamiliesExA referenced in function "int __cdecl RetrieveSpecificFont(struct tagLOGFONTA &)" (?RetrieveSpecificFont@@YAHAEAUtagLOGFONTA@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_EnumFontFamiliesExA
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_GetStockObject referenced in function "int __cdecl RetrieveStockFont(int,unsigned char,struct tagLOGFONTA &)" (?RetrieveStockFont@@YAHHEAEAUtagLOGFONTA@@@Z)
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_GetObjectA referenced in function "public: static class CPDF_Font * __cdecl CPDF_InterForm::AddSystemFont(class CPDF_Document const *,class CFX_ByteString,unsigned char)" (?AddSystemFont@CPDF_InterForm@@SAPEAVCPDF_Font@@PEBVCPDF_Document@@VCFX_ByteString@@E@Z)
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_GetObjectW referenced in function "public: static class CPDF_Font * __cdecl CPDF_InterForm::AddSystemFont(class CPDF_Document const *,class CFX_WideString,unsigned char)" (?AddSystemFont@CPDF_InterForm@@SAPEAVCPDF_Font@@PEBVCPDF_Document@@VCFX_WideString@@E@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_GetObjectW
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_GetObjectW
2>fxge.lib(fx_win32_dwrite.obj) : error LNK2001: unresolved external symbol __imp_GetObjectW
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_GetDC referenced in function "int __cdecl RetrieveSpecificFont(struct tagLOGFONTA &)" (?RetrieveSpecificFont@@YAHAEAUtagLOGFONTA@@@Z)
2>fpdfdoc.lib(doc_form.obj) : error LNK2019: unresolved external symbol __imp_ReleaseDC referenced in function "int __cdecl RetrieveSpecificFont(struct tagLOGFONTA &)" (?RetrieveSpecificFont@@YAHAEAUtagLOGFONTA@@@Z)
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_CreateCompatibleDC referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_CreateCompatibleDC
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_CreateCompatibleDC
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_CreateFontIndirectA referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_CreateFontIndirectA
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_DeleteDC referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_DeleteDC
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_DeleteDC
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_GetCharWidthW referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_GetFontData referenced in function "class CFX_ByteString __cdecl _FPDF_GetPSNameFromTT(struct HDC__ *)" (?_FPDF_GetPSNameFromTT@@YA?AVCFX_ByteString@@PEAUHDC__@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_GetFontData
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_GetOutlineTextMetricsW referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fpdfapi.lib(fpdf_edit_doc.obj) : error LNK2019: unresolved external symbol __imp_SelectObject referenced in function "public: class CPDF_Font * __cdecl CPDF_Document::AddWindowsFont(struct tagLOGFONTA *,int,int)" (?AddWindowsFont@CPDF_Document@@QEAAPEAVCPDF_Font@@PEAUtagLOGFONTA@@HH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2001: unresolved external symbol __imp_SelectObject
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_SelectObject
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_BitBlt referenced in function "protected: virtual int __cdecl CGdiDisplayDriver::GetDIBits(class CFX_DIBitmap *,int,int,void *,int)" (?GetDIBits@CGdiDisplayDriver@@MEAAHPEAVCFX_DIBitmap@@HHPEAXH@Z)
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_BitBlt
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreateBitmap referenced in function "protected: __cdecl CGdiDeviceDriver::CGdiDeviceDriver(struct HDC__ *,int)" (??0CGdiDeviceDriver@@IEAA@PEAUHDC__@@H@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreateCompatibleBitmap referenced in function "protected: virtual int __cdecl CGdiDisplayDriver::GetDIBits(class CFX_DIBitmap *,int,int,void *,int)" (?GetDIBits@CGdiDisplayDriver@@MEAAHPEAVCFX_DIBitmap@@HHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreatePen referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawCosmeticLine(float,float,float,float,unsigned int,int,void *,int)" (?DrawCosmeticLine@CGdiDeviceDriver@@MEAAHMMMMIHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreateRectRgn referenced in function "protected: virtual void * __cdecl CGdiDeviceDriver::GetClipRgn(void)" (?GetClipRgn@CGdiDeviceDriver@@MEAAPEAXXZ)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_CreateRectRgn
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreateSolidBrush referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::FillRect(struct FX_RECT const *,unsigned int,int,void *,int)" (?FillRect@CGdiDeviceDriver@@MEAAHPEBUFX_RECT@@IHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_ExtEscape referenced in function "int __cdecl GetPSLevel(struct HDC__ *)" (?GetPSLevel@@YAHPEAUHDC__@@@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_ExtEscape
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetClipBox referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::GetClipBox(struct FX_RECT *)" (?GetClipBox@CGdiDeviceDriver@@MEAAHPEAUFX_RECT@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetClipRgn referenced in function "protected: virtual void * __cdecl CGdiDeviceDriver::GetClipRgn(void)" (?GetClipRgn@CGdiDeviceDriver@@MEAAPEAXXZ)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_GetClipRgn
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetDeviceCaps referenced in function "protected: __cdecl CGdiDeviceDriver::CGdiDeviceDriver(struct HDC__ *,int)" (??0CGdiDeviceDriver@@IEAA@PEAUHDC__@@H@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_GetDeviceCaps
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetDIBits referenced in function "protected: virtual int __cdecl CGdiDisplayDriver::GetDIBits(class CFX_DIBitmap *,int,int,void *,int)" (?GetDIBits@CGdiDisplayDriver@@MEAAHPEAVCFX_DIBitmap@@HHPEAXH@Z)
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_GetDIBits
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetObjectType referenced in function "protected: __cdecl CGdiDeviceDriver::CGdiDeviceDriver(struct HDC__ *,int)" (??0CGdiDeviceDriver@@IEAA@PEAUHDC__@@H@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_IntersectClipRect referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::SetClip_PathFill(class CFX_PathData const *,class CFX_Matrix const *,int)" (?SetClip_PathFill@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@H@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_LineTo referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawCosmeticLine(float,float,float,float,unsigned int,int,void *,int)" (?DrawCosmeticLine@CGdiDeviceDriver@@MEAAHMMMMIHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_RestoreDC referenced in function "protected: virtual void __cdecl CGdiDeviceDriver::RestoreState(int)" (?RestoreState@CGdiDeviceDriver@@MEAAXH@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_RestoreDC
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SaveDC referenced in function "protected: virtual void __cdecl CGdiDeviceDriver::RestoreState(int)" (?RestoreState@CGdiDeviceDriver@@MEAAXH@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2001: unresolved external symbol __imp_SaveDC
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SelectClipRgn referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::SetClipRgn(void *)" (?SetClipRgn@CGdiDeviceDriver@@MEAAHPEAX@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SetDIBitsToDevice referenced in function "protected: int __cdecl CGdiDeviceDriver::GDI_SetDIBits(class CFX_DIBitmap const *,struct FX_RECT const *,int,int,void *)" (?GDI_SetDIBits@CGdiDeviceDriver@@IEAAHPEBVCFX_DIBitmap@@PEBUFX_RECT@@HHPEAX@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SetPolyFillMode referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawPath(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *,unsigned int,unsigned int,int,int,void *,int)" (?DrawPath@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@IIHHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_StretchDIBits referenced in function "protected: int __cdecl CGdiDeviceDriver::GDI_SetDIBits(class CFX_DIBitmap const *,struct FX_RECT const *,int,int,void *)" (?GDI_SetDIBits@CGdiDeviceDriver@@IEAAHPEBVCFX_DIBitmap@@PEBUFX_RECT@@HHPEAX@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SetStretchBltMode referenced in function "protected: __cdecl CGdiDeviceDriver::CGdiDeviceDriver(struct HDC__ *,int)" (??0CGdiDeviceDriver@@IEAA@PEAUHDC__@@H@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetTextMetricsW referenced in function "public: virtual int __cdecl CWin32FontInfo::GetFontCharset(void *,int &)" (?GetFontCharset@CWin32FontInfo@@UEAAHPEAXAEAH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CreateDIBSection referenced in function "public: __cdecl CFX_WinBitmapDevice::CFX_WinBitmapDevice(int,int,enum FXDIB_Format)" (??0CFX_WinBitmapDevice@@QEAA@HHW4FXDIB_Format@@@Z)
2>fxge.lib(fx_win32_dib.obj) : error LNK2001: unresolved external symbol __imp_CreateDIBSection
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_BeginPath referenced in function "void __cdecl _SetPathToDC(struct HDC__ *,class CFX_PathData const *,class CFX_Matrix const *)" (?_SetPathToDC@@YAXPEAUHDC__@@PEBVCFX_PathData@@PEBVCFX_Matrix@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_CloseFigure referenced in function "void __cdecl _SetPathToDC(struct HDC__ *,class CFX_PathData const *,class CFX_Matrix const *)" (?_SetPathToDC@@YAXPEAUHDC__@@PEBVCFX_PathData@@PEBVCFX_Matrix@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_EndPath referenced in function "void __cdecl _SetPathToDC(struct HDC__ *,class CFX_PathData const *,class CFX_Matrix const *)" (?_SetPathToDC@@YAXPEAUHDC__@@PEBVCFX_PathData@@PEBVCFX_Matrix@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_FillPath referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawPath(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *,unsigned int,unsigned int,int,int,void *,int)" (?DrawPath@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@IIHHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SelectClipPath referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::SetClip_PathFill(class CFX_PathData const *,class CFX_Matrix const *,int)" (?SetClip_PathFill@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@H@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_SetMiterLimit referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawPath(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *,unsigned int,unsigned int,int,int,void *,int)" (?DrawPath@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@IIHHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_StrokeAndFillPath referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawPath(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *,unsigned int,unsigned int,int,int,void *,int)" (?DrawPath@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@IIHHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_StrokePath referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawPath(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *,unsigned int,unsigned int,int,int,void *,int)" (?DrawPath@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@IIHHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_WidenPath referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::SetClip_PathStroke(class CFX_PathData const *,class CFX_Matrix const *,class CFX_GraphStateData const *)" (?SetClip_PathStroke@CGdiDeviceDriver@@MEAAHPEBVCFX_PathData@@PEBVCFX_Matrix@@PEBVCFX_GraphStateData@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_ExtCreatePen referenced in function "struct HPEN__ * __cdecl _CreatePen(class CFX_GraphStateData const *,class CFX_Matrix const *,unsigned int)" (?_CreatePen@@YAPEAUHPEN__@@PEBVCFX_GraphStateData@@PEBVCFX_Matrix@@I@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_MoveToEx referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::DrawCosmeticLine(float,float,float,float,unsigned int,int,void *,int)" (?DrawCosmeticLine@CGdiDeviceDriver@@MEAAHMMMMIHPEAXH@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_PolyBezierTo referenced in function "void __cdecl _SetPathToDC(struct HDC__ *,class CFX_PathData const *,class CFX_Matrix const *)" (?_SetPathToDC@@YAXPEAUHDC__@@PEBVCFX_PathData@@PEBVCFX_Matrix@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_GetTextFaceA referenced in function "public: virtual int __cdecl CWin32FontInfo::GetFaceName(void *,class CFX_ByteString &)" (?GetFaceName@CWin32FontInfo@@UEAAHPEAXAEAVCFX_ByteString@@@Z)
2>fxge.lib(fx_win32_device.obj) : error LNK2019: unresolved external symbol __imp_FillRect referenced in function "protected: virtual int __cdecl CGdiDeviceDriver::FillRect(struct FX_RECT const *,unsigned int,int,void *,int)" (?FillRect@CGdiDeviceDriver@@MEAAHPEBUFX_RECT@@IHPEAXH@Z)
2>fxge.lib(fx_win32_dib.obj) : error LNK2019: unresolved external symbol __imp_CreateDIBitmap referenced in function "public: static struct HBITMAP__ * __cdecl CFX_WindowsDIB::GetDDBitmap(class CFX_DIBitmap const *,struct HDC__ *)" (?GetDDBitmap@CFX_WindowsDIB@@SAPEAUHBITMAP__@@PEBVCFX_DIBitmap@@PEAUHDC__@@@Z)
2>fxge.lib(fx_win32_dib.obj) : error LNK2019: unresolved external symbol __imp_LoadImageW referenced in function "public: static class CFX_DIBitmap * __cdecl CFX_WindowsDIB::LoadDIBitmap(struct WINDIB_Open_Args_)" (?LoadDIBitmap@CFX_WindowsDIB@@SAPEAVCFX_DIBitmap@@UWINDIB_Open_Args_@@@Z)
2>fxge.lib(fx_win32_dwrite.obj) : error LNK2019: unresolved external symbol __imp_GetCurrentObject referenced in function "public: long __cdecl CDwGdiTextRenderer::DrawGlyphRun(struct FX_RECT const &,class CFX_ClipRgn *,struct DWRITE_MATRIX const *,float,float,enum DWRITE_MEASURING_MODE,struct DWRITE_GLYPH_RUN const *,unsigned long const &)" (?DrawGlyphRun@CDwGdiTextRenderer@@QEAAJAEBUFX_RECT@@PEAVCFX_ClipRgn@@PEBUDWRITE_MATRIX@@MMW4DWRITE_MEASURING_MODE@@PEBUDWRITE_GLYPH_RUN@@AEBK@Z)
2>fxge.lib(fx_win32_print.obj) : error LNK2019: unresolved external symbol __imp_GetRegionData referenced in function "public: int __cdecl CPSPrinterDriver::Init(struct HDC__ *,int,int)" (?Init@CPSPrinterDriver@@QEAAHPEAUHDC__@@HH@Z)
2>\build\Debug\pdfium.dll : fatal error LNK1120: 57 unresolved externals
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Does anyone have an idea on what I am supposed to do?

回答1:

I downloaded and build pdfium as described in https://github.com/pvginkel/PdfiumViewer. My steps:

  1. Download pdfium
  2. Generate Visual Studio projects and solution
  3. Open solution all.sln
  4. Build all.sln, error LNK1112. I change target machine for project pdfium to /MACHINE:x86. Now all is ok, I get static lib
  5. I change pdfium project type to dll
  6. Add FPDFSDK_EXPORTS to preprocessor definitions
  7. Add dependencies as described in https://github.com/pvginkel/PdfiumViewer
  8. I change toolset to v120_xp
  9. Build, linker errors. I change library list to (all libraries from $(OutDir)): kernel32.lib user32.lib advapi32.lib gdi32.lib winmm.lib $(OutDir)\lib\bigint.lib $(OutDir)\lib\fdrm.lib $(OutDir)\lib\formfiller.lib $(OutDir)\lib\fpdfapi.lib $(OutDir)\lib\fpdfdoc.lib $(OutDir)\lib\fpdftext.lib $(OutDir)\lib\freetype.lib $(OutDir)\lib\fx_lpng.lib $(OutDir)\lib\fxcodec.lib $(OutDir)\lib\fxcrt.lib $(OutDir)\lib\fxedit.lib $(OutDir)\lib\fxge.lib $(OutDir)\lib\gmock.lib $(OutDir)\lib\gtest.lib $(OutDir)\lib\gtest_main.lib $(OutDir)\lib\icui18n.lib $(OutDir)\lib\icuuc.lib $(OutDir)\lib\javascript.lib $(OutDir)\lib\jsapi.lib $(OutDir)\lib\pdfwindow.lib $(OutDir)\lib\v8_base_0.lib $(OutDir)\lib\v8_base_1.lib $(OutDir)\lib\v8_base_2.lib $(OutDir)\lib\v8_base_3.lib $(OutDir)\lib\v8_libbase.lib $(OutDir)\lib\v8_libplatform.lib $(OutDir)\lib\v8_nosnapshot.lib $(OutDir)\lib\v8_snapshot.lib
  10. Buil, Now all is ok, I get dynamic lib (dll)
  11. I download file pdfiumviewer.cpp and add it to project
  12. Build, compilation error, no header file found
  13. Add third_party\freetype\include;v8;v8\include; to addition include directories
  14. Build, compilation error.
  15. In file pdfiumviewer.cpp replace string #include "../../fpdfsdk/include/fpdfview.h" to #include "../../public/fpdfview.h"
  16. Build, now all is ok, I get dynamic lib (dll)

One more thing, if you want build pdfium_test project, you need fix fpdfview.h file:

#define DLLEXPORT __declspec( dllexport )
#define STDCALL __stdcall
#else
#define DLLEXPORT

#if !defined(_WIN64)
// On Windows Win32 (not x64) requires __stdcall convention
#define STDCALL __stdcall
#else
#define STDCALL
#endif  // !defined(_WIN64)

#endif

For build pdfium_embeddertests you can just turn off Treat warnings as errors option, but I do not know about consequences.