Я использую MediaInfoDLL для получения тех. инф. с видеофайлов (кодек, битрейт и т.п.) -
http://mediaarea.net/uk/MediaInfo
это отдельный dll-файл, подключаю так:
#include "MediaInfoDLL.h" //Dynamicly-loaded library (.dll or .so)
#define MediaInfoNameSpace MediaInfoDLL;
using namespace MediaInfoNameSpace;
1. Самое очевидное решение - убрать
using namespace MediaInfoNameSpace;
и при этом вызывать функции (и типы) этой библиотеки с явным разрешением пространства имен, например
MediaInfoNameSpace::String a = ""; // имя типа
int x = MediaInfoNameSpace::foo(); // вызов функции
2. Другой вариант - использовать везде System::String, если конфликт только с этим именем.
3. Или же можно вместо System::String (которое, кстати, является не прямым именем типа, а псевдонимом) можно использовать конкретный тип - AnsiString или UnicodeString (в зависимости от версии студии).