我在网上下载了libFLAC的静态库,然后在VC6用写了个调用的程序,用于解码FLAC文件,在编译时一直提示
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_process_until_end_of_metadata
playback.obj : error LNK2001: unresolved external symbol _FLAC_plugin__show_error
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__StreamDecoderInitStatusString
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_get_resolved_state_string
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_init_file
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_set_metadata_respond
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_set_metadata_ignore_all
playback.obj : error LNK2001: unresolved external symbol __imp__FLAC__stream_decoder_set_md5_checking
我在库引用中也已经添加了libFLAC.lib后来我用UEdit打开了libFLAC.lib,仔细检查后发现库里面的接口函数都是_FLAC__stream_decoder_process_until_end_of_metadata之类的,而在我写的程序里引用时就变成了__imp__FLAC__stream_decoder_process_until_end_of_metadata,前面就多了个__imp,这是怎么回事呢??
应该如何解决???急~~在线等~~~

解决方案 »

  1.   

    接口文件和lib文件版本是否一致?软件开发最好都是基于源码级,别人的无源lib尽量少用.
      

  2.   

    好象是添加库的问题#pragma   comment(lib,"libFLAC.lib") 
      

  3.   

    版本是没有问题的,这个已经确认了!#pragma  comment(lib,"libFLAC.lib")也已经加了,问题还是有!在静态库中定义接口时是不是有前缀之分?和调用时是不是也要一样?
      

  4.   

    问题解决啦~~
    原来是头文件里的宏定义出问题了,头里的#if条件没有效果,导致输入接口函数定义成_declspec(dllexport)动态库类型的了,所以在静态库里自然找不到接口!也谢谢各位啦~~