Использование pugixml в Visual C ++ .NET 2010 - PullRequest
1 голос
/ 15 июля 2011

Я создаю графический интерфейс для моего окончательного проекта.Этот проект использует pugixml в качестве парсера xml для чтения некоторых данных.Все работает в режиме консоли.

Итак, я запустил новый проект формы Windows и добавил все файлы заголовков, которые я написал.Я разработал свой графический интерфейс и т. Д. Когда я пытаюсь скомпилировать, все компилируется, но это:

pugixml.cpp (5627): ошибка C2440: 'return': невозможно преобразовать из 'System :: String ^' в 'const pugi:: char_t * 'Нет определенного пользователем оператора преобразования, или Невозможно преобразовать управляемый тип в неуправляемый тип

Вот код, из которого происходит ошибка:

const char_t * convert_number_to_string_special(двойное значение) {# если определено (_MSC_VER) ||определено ( BORLANDC ), если (_finite (значение)) возвращает (значение == 0)?PUGIXML_TEXT ("0"): 0;if (_isnan (значение)) возвращает PUGIXML_TEXT ("NaN");Эта строка ----> return PUGIXML_TEXT ("- Infinity") + (значение> 0);

Я пытался изменить конфигурацию проекта, но ничего не понял.

Есть подсказка?Я был бы очень признателен!

Заранее спасибо!

1 Ответ

2 голосов
/ 15 июля 2011

Это ошибка совместимости;к сожалению, pugixml 1.0 не был полностью протестирован с C ++ / CLI (насколько я знаю, это единственная проблема с C ++ / CLI, поэтому после исправления вы можете безопасно использовать pugixml).

Вы можетелибо получите самую последнюю версию из репозитория (http://pugixml.googlecode.com/svn/trunk/), либо примените патч вручную: замените строку

return PUGIXML_TEXT("-Infinity") + (value > 0);

на

return value > 0 ? PUGIXML_TEXT("Infinity") : PUGIXML_TEXT("-Infinity");

...