LibHaru 库的问题

问题描述

我遇到链接错误的问题:

Error 112 error LNK2019: 未解析的外部符号 函数中引用的 HPDF_Stream_WritetoStreamWithDeflate HPDF_Stream_WritetoStream C:\Users\tykab\OneDrive\Dokumenty\Visual Studio 2013\Projects\PDF2\PDF2\hpdf_streams.obj PDF2

Error 111 error LNK2019: 未解析的外部符号 函数中引用的 HPDF_Image_LoadpngImage LoadpngImageFromStream C:\Users\tykab\OneDrive\Dokumenty\Visual Studio 2013\Projects\PDF2\PDF2\hpdf_doc_png.obj

错误 113 错误 LNK1120:2 未解决 外部 C:\Users\tykab\OneDrive\Dokumenty\Visual Studio 2013\Projects\PDF2\Toradex_CE800\Debug\PDF2.exe PDF2

在这个项目中使用 Visual Studio 2013。 源代码是用C语言编写的,我用的是C++ 与错误相关的 hpdf_stream.h 的头文件具有 extern "C" 标识符。 我把这个标题代码放在下面:

#ifndef _HPDF_STREAMS_H
#define _HPDF_STREAMS_H

#include "hpdf_list.h"
#include "hpdf_encrypt.h"

#ifdef __cplusplus
extern "C" {
#endif


#define HPDF_STREAM_SIG_BYTES  0x5354524DL

typedef enum _HPDF_StreamType {
    HPDF_STREAM_UNKNowN = 0,HPDF_STREAM_CALLBACK,HPDF_STREAM_FILE,HPDF_STREAM_MEMORY
} HPDF_StreamType;

#define HPDF_STREAM_FILTER_NONE          0x0000
#define HPDF_STREAM_FILTER_ASCIIHEX      0x0100
#define HPDF_STREAM_FILTER_ASCII85       0x0200
#define HPDF_STREAM_FILTER_FLATE_DECODE  0x0400
#define HPDF_STREAM_FILTER_DCT_DECODE    0x0800
#define HPDF_STREAM_FILTER_CCITT_DECODE  0x1000

typedef enum _HPDF_WhenceMode {
    HPDF_SEEK_SET = 0,HPDF_SEEK_CUR,HPDF_SEEK_END
} HPDF_WhenceMode;

typedef struct _HPDF_Stream_Rec  *HPDF_Stream;

typedef HPDF_STATUS
(*HPDF_Stream_Write_Func)  (HPDF_Stream      stream,const HPDF_BYTE  *ptr,HPDF_UINT        siz);


typedef HPDF_STATUS
(*HPDF_Stream_Read_Func)  (HPDF_Stream  stream,HPDF_BYTE    *ptr,HPDF_UINT    *siz);


typedef HPDF_STATUS
(*HPDF_Stream_Seek_Func)  (HPDF_Stream      stream,HPDF_INT         pos,HPDF_WhenceMode  mode);


typedef HPDF_INT32
(*HPDF_Stream_Tell_Func)  (HPDF_Stream      stream);


typedef void
(*HPDF_Stream_Free_Func)  (HPDF_Stream  stream);


typedef HPDF_UINT32
(*HPDF_Stream_Size_Func)  (HPDF_Stream  stream);


typedef struct _HPDF_MemStreamAttr_Rec  *HPDF_MemStreamAttr;


typedef struct _HPDF_MemStreamAttr_Rec {
    HPDF_List  buf;
    HPDF_UINT  buf_siz;
    HPDF_UINT  w_pos;
    HPDF_BYTE  *w_ptr;
    HPDF_UINT  r_ptr_idx;
    HPDF_UINT  r_pos;
    HPDF_BYTE  *r_ptr;
} HPDF_MemStreamAttr_Rec;


 typedef struct _HPDF_Stream_Rec {
    HPDF_UINT32               sig_bytes;
    HPDF_StreamType           type;
    HPDF_MMgr                 mmgr;
    HPDF_Error                error;
    HPDF_UINT                 size;
    HPDF_Stream_Write_Func    write_fn;
    HPDF_Stream_Read_Func     read_fn;
    HPDF_Stream_Seek_Func     seek_fn;
    HPDF_Stream_Free_Func     free_fn;
    HPDF_Stream_Tell_Func     tell_fn;
    HPDF_Stream_Size_Func     size_fn;
    void*                     attr;
} HPDF_Stream_Rec;


 int
     main(int argc,char **argv);
__declspec(dllimport) HPDF_Stream
HPDF_MemStream_New  (HPDF_MMgr  mmgr,HPDF_UINT  buf_siz);


__declspec(dllimport) HPDF_BYTE*
HPDF_MemStream_GetBufPtr  (HPDF_Stream  stream,HPDF_UINT    index,HPDF_UINT    *length);


 HPDF_UINT __cdecl
HPDF_MemStream_GetBufSize(HPDF_Stream  stream);


HPDF_UINT __cdecl
HPDF_MemStream_GetBufCount  (HPDF_Stream  stream);


__declspec(dllimport) HPDF_STATUS
HPDF_MemStream_Rewrite  (HPDF_Stream  stream,HPDF_BYTE    *buf,HPDF_UINT    size);


__declspec(dllimport) void
HPDF_MemStream_FreeData  (HPDF_Stream  stream);


HPDF_STATUS __cdecl
HPDF_Stream_WritetoStream  (HPDF_Stream   src,HPDF_Stream   dst,HPDF_UINT     filter,HPDF_Encrypt  e);


__declspec(dllimport) HPDF_Stream
HPDF_FileReader_New  (HPDF_MMgr   mmgr,const char  *fname);


__declspec(dllimport) HPDF_Stream
HPDF_FileWriter_New  (HPDF_MMgr        mmgr,const char  *fname);


__declspec(dllimport) HPDF_Stream
HPDF_CallbackReader_New  (HPDF_MMgr              mmgr,HPDF_Stream_Read_Func  read_fn,HPDF_Stream_Seek_Func  seek_fn,HPDF_Stream_Tell_Func  tell_fn,HPDF_Stream_Size_Func  size_fn,void*                  data);


__declspec(dllimport) HPDF_Stream
HPDF_CallbackWriter_New (HPDF_MMgr               mmgr,HPDF_Stream_Write_Func  write_fn,void*                   data);


__declspec(dllimport) void
HPDF_Stream_Free  (HPDF_Stream  stream);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteChar  (HPDF_Stream  stream,char    value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteStr  (HPDF_Stream      stream,const char  *value);


HPDF_STATUS
HPDF_Stream_WriteUChar  (HPDF_Stream  stream,HPDF_BYTE    value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteInt  (HPDF_Stream  stream,HPDF_INT     value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteUInt  (HPDF_Stream  stream,HPDF_UINT    value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteReal  (HPDF_Stream  stream,HPDF_REAL    value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_Write  (HPDF_Stream      stream,HPDF_UINT        size);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_Read  (HPDF_Stream  stream,HPDF_UINT    *size);

__declspec(dllimport) HPDF_STATUS
HPDF_Stream_ReadLn  (HPDF_Stream  stream,char    *s,HPDF_UINT    *size);


__declspec(dllimport) HPDF_INT32
HPDF_Stream_Tell  (HPDF_Stream  stream);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_Seek  (HPDF_Stream      stream,HPDF_WhenceMode  mode);


__declspec(dllimport) HPDF_BOOL
HPDF_Stream_EOF  (HPDF_Stream  stream);


__declspec(dllimport) HPDF_UINT32
HPDF_Stream_Size  (HPDF_Stream  stream);

__declspec(dllimport) HPDF_STATUS
HPDF_Stream_Flush  (HPDF_Stream  stream);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteEscapeName  (HPDF_Stream      stream,const char  *value);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteEscapeText2  (HPDF_Stream    stream,const char    *text,HPDF_UINT      len);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteEscapeText  (HPDF_Stream      stream,const char  *text);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_WriteBinary  (HPDF_Stream      stream,const HPDF_BYTE  *data,HPDF_UINT        len,HPDF_Encrypt     e);


__declspec(dllimport) HPDF_STATUS
HPDF_Stream_Validate  (HPDF_Stream  stream);


#ifdef __cplusplus
}
#endif  __cplusplus 

#endif _HPDF_STREAMS_H 

下面是导致链接错误调用函数

    void CPDF2View::OnInitialUpdate()
{
    CView::OnInitialUpdate();
    AfxGetMainWnd()->ActivatetopParent();

    HPDF_Doc pdf;
    pdf = HPDF_New(error_handler,NULL);
    HPDF_Page page_1;

    page_1 = HPDF_AddPage(pdf);
    HPDF_SavetoFile(pdf,"test.pdf");

    Invalidate(TRUE);
}

我使用 /VERBOSE 来诊断链接输出,并且我得到 hpdflib.lib 未使用的信息。 sb 我能解释一下有什么问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)