Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 22:52   #1
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию Помогите с глюками Taglib в Visual Studio

Доброго времени суток! :-) Может кто работал с TagLib и подскажет ответы возникшие вопросы...
На досуге пишу свой плеер, для чтения тегов выбрал TagLib.
Но толи я тупой, толи лыжи не едут.

Проблема 1).
int _tmain(int argc, _TCHAR* argv[])
{
TagLib::FLAC::File file("C:\\1.flac");
return 0;
}

Сходу получаю Run-Time Check Failure #0. Из-за чего? Что ей надо? :-D

Проблема 2).
Забив на Run-Time Check Failure #0, иду дальше...
int _tmain(int argc, _TCHAR* argv[])
{
using namespace TagLib;
FLAC::File file("C:\\1.flac");
Ogg::XiphComment * comments = file.xiphComment();
UINT iCount = comments->fieldCount();
Ogg::FieldListMap map = comments->fieldListMap();
//Ogg::FieldListMap::ConstIterator it = comments->fieldListMap().begin();
return 0;
}
Переменная iCount равна 11.
Но если раскомментировать последнюю строчку, то получу "Нарушение прав доступа при чтении "0x00....".", хотя map реально содержит значения......

Пробовал и на TagLib 1.5 уже в бинарниках, что с сайта в готовом виде можно сказать. И сам компилил версию 1.6. И 2008 студию использовал и 2010 beta - результат один и тот же. Ну что за фигня?

Последний раз редактировалось SynTronic; 11.10.2009 в 22:56.
SynTronic вне форума Ответить с цитированием
Старый 11.10.2009, 23:11   #2
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Эту библиотеку я не использовал, а использовал библиотеку Xigga.ID3
http://www.xigga.com/index.php/c-net...-released-v05/

Тоже не идеально работала, но теги вроде бы читала.
Vitek-pm вне форума Ответить с цитированием
Старый 11.10.2009, 23:18   #3
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию Xigga

Спасибо, но она ж под .NET
SynTronic вне форума Ответить с цитированием
Старый 11.10.2009, 23:26   #4
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

А Вы саму либу не забыли подключить? Одного
Код:
#include <taglib/tag.h>
недостаточно.
Vitek-pm вне форума Ответить с цитированием
Старый 11.10.2009, 23:28   #5
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию

Всё подключил, иначе бы не скомпилировалась. Хотел бы ещё добавить, что версию 1.6 taglib'а я компилировал в 2х версиях: дебаг и релиз. Вот если к дебаг-версии моего плеера подключать дебаг-версию lib'ы и dll'ки taglib'a, то Run-Time Check Failure #0 не возникает (почему!?!?!?) (соответственно, к релиз-версии подключал release-версии taglib'а и тоже всё было гладко). Но вторая проблема всё равно остаётся.
SynTronic вне форума Ответить с цитированием
Старый 11.10.2009, 23:54   #6
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Объясните тогда, пожалуйста, по шагам как подключали. У меня уже на этом этапе возникают проблемы: возникает какие-то ошибки Linkera.
Vitek-pm вне форума Ответить с цитированием
Старый 12.10.2009, 00:11   #7
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию

В настройках папок Visual Studio прописал путь к include и Lib папкам TagView

Файл stdafx.h:

///// TagLib /////////////////////////
#include <tag.h>
#include <fileref.h>
#include <mpegfile.h>
#include <id3v2tag.h>
#include <id3v2frame.h>
#include <id3v2header.h>
#include <flacfile.h>
#include <xiphcomment.h>
#pragma comment(lib, "tag.lib")

//////////////////////////////////////

В папки debug и release программы скопировал tag.dll
SynTronic вне форума Ответить с цитированием
Старый 12.10.2009, 00:19   #8
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию

К теме:
компилирую пример framelist.cpp из архива с исходниками taglib и он выдает тот же Run-Time Check Failure #0 и ошибки чтения... что не так с Visual Studio или моими руками? :-)
SynTronic вне форума Ответить с цитированием
Старый 12.10.2009, 16:38   #9
Vitek-pm
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 56
По умолчанию

Попробовал подключить версию 1.5 - выдавало такую же ошибку как у Вас.
Скачал бинарники версии 1.3.1 - Run-Time Check Failure #0 исчезло, но почему -то когда я писал:
Код:
FLAC::File file("C:\\1.flac");
Ogg::XiphComment * comments = file.xiphComment();
то дальше обратиться к comments->... не получилсь...
Так что попробуйте эту версию http://sourceforge.net/projects/taglib-winport/
Vitek-pm вне форума Ответить с цитированием
Старый 14.10.2009, 13:48   #10
SynTronic
 
Регистрация: 11.10.2009
Сообщений: 6
По умолчанию Век живи, век учись...

Надо было собирать dll-ку и проект, её использующий, с одной и той же библиотекой времени выполнения. Перекомпиллил taglib и проект с использованием "многопоточной dll" и всё заработало :-D

Вопрос закрыт, Vitek-pm спасибо за попытку помочь
SynTronic вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с графикой в Visual Studio C++ 2008 Azgard Visual C++ 12 22.09.2010 17:19
Помогите с создание веб сайтов в Visual Studio Himick Помощь студентам 2 22.04.2009 11:59
Помогите срочно с прграмками на Visual Studio cartmanlendiya Помощь студентам 1 16.02.2009 19:46
Помогите с Visual Studio 2008(работа с формами) Bruster Помощь студентам 1 03.11.2008 21:42
Помогите с Visual Studio 2005 Поночка Visual C++ 1 08.03.2008 15:34