如何使id3lib在C++生成器10.2中工作?

How to make id3lib works in C++ Builder 10.2?

本文关键字:工作 id3lib 何使 C++      更新时间:2023-10-16

如何在Windows 7上的C++ Builder 10.2中安装此库? 我从"id3lib-3.8.3 win binaries/debug"复制了id3lib.dll并将我的项目.exe文件放在文件夹中,然后我通过ImpLib创建了id3lib.lib(使用-a选项(并添加到我的项目中。之后,我将标题文件夹(id3(链接到我的项目并编写了#include "id3/tag.h"。当我尝试编译时,我得到:

[bcc32 致命错误] globals.h(56(: F1003 错误指令:读取消息 以上或 win32.readme.first.txt

安装此库我做错了什么?

globals.h的第 56 行有一个#error指令:

#ifdef WIN32
#  define LINKOPTION_STATIC         1 //both for use and creation of static lib
#  define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
#  define LINKOPTION_USE_DYNAMIC    3 //if your project links id3lib dynamic
#  ifndef ID3LIB_LINKOPTION
#    pragma message("*** NOTICE *** (not a real error)")
#    pragma message("* You should include a define in your project which reflect how you link the library")
#    pragma message("* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add")
#    pragma message("* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.")
#    pragma message("* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3")
#    pragma message("* to your preprocessor definitions of your project.")
#    pragma message("***")
#    error read message above or win32.readme.first.txt // <-- HERE

如果定义了WIN32但未定义ID3LIB_LINKOPTION则编译器将到达#error

正如您在"上面的消息"中看到的,您需要根据链接到ID3库的方式手动定义项目中的ID3LIB_LINKOPTION。 您尚未执行此操作,这就是出现错误的原因。

进入"项目选项",并在"条件"部分添加ID3LIB_LINKOPTION=3条目(因为您使用的是 ID3 库的 DLL 版本(。 或者,在 ID3 头文件的任何#include语句上方的 C++ 代码中放置一个#define ID3LIB_LINKOPTION 3语句。

此外,请确保使用项目管理器将生成的id3lib.lib文件添加到项目中,或在C++代码中的某个位置放置#pragma comment(lib, "id3lib.lib")指令。