用id3lib库创建id3tag 时出错。

hjl0508 2014-11-12 11:37:39
用id3lib库中自带的example中的代码去生成一个id3tag出现了访问冲突。这是example中的代码
void MakeDummyTag(void)
{
ID3_Tag myTag("dummy.tag");
ID3_Frame myFrame[3];

myFrame[0].SetID(ID3FID_USERTEXT);
myFrame[0].Field(ID3FN_TEXTENC) = ID3TE_UNICODE;
myFrame[0].Field(ID3FN_DESCRIPTION) = "example #1";
myFrame[0].Field(ID3FN_TEXT) = "This is the text for example #1";

myFrame[1].SetID(ID3FID_USERTEXT);
myFrame[1].Field(ID3FN_TEXTENC) = ID3TE_ASCII;
myFrame[1].Field(ID3FN_DESCRIPTION) = "example #2";
myFrame[1].Field(ID3FN_TEXT) = "This is the text for example #2";

myFrame[2].SetID(ID3FID_INVOLVEDPEOPLE);
myFrame[2].Field(ID3FN_TEXTENC) = ID3TE_ASCII;
myFrame[2].Field(ID3FN_TEXT).Add("String 1");
myFrame[2].Field(ID3FN_TEXT).Add("String 2");
myFrame[2].Field(ID3FN_TEXT).Add("String 3");
myFrame[2].Field(ID3FN_TEXT).Add("String 4");

myTag.AddFrames(myFrame, 3);

//myTag.SetVersion(3, 0);
myTag.SetUnsync(false);
myTag.SetExtendedHeader(false);
myTag.SetCompression(false);
myTag.SetPadding(false);

myTag.Strip();
myTag.Update();

return;
}

执行到return时会报内存冲突,大家看看是什么情况。如图
...全文
192 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjl0508 2014-12-05
  • 打赏
  • 举报
回复
应该是声明这个ID3_Frame myFrame[3];的时候没有new
hjl0508 2014-11-13
  • 打赏
  • 举报
回复
引用 2 楼 turingo 的回复:
先单步调试看看错误发生在哪一行。
比较郁闷的就是错误发生在return那一行截图那一行不是有个绿箭头么,如果没有return的话就会发生在最后那个大括号那里。。。这让我搞不懂
赵4老师 2014-11-12
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
图灵狗 2014-11-12
  • 打赏
  • 举报
回复
先单步调试看看错误发生在哪一行。
hjl0508 2014-11-12
  • 打赏
  • 举报
回复
没有人用过id3lib的库吗?

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧