1

I am building a GUI for my final project. This project uses pugixml as xml parser for reading some data. Everything works in console mode.

So I started a new windows form project and I added all the headers files I wrote. I desgined my GUI etc. When I try to compile everything compiles but this:

pugixml.cpp(5627): error C2440: 'return' : cannot convert from 'System::String ^' to 'const pugi::char_t *' No user-defined-conversion operator available, or Cannot convert a managed type to an unmanaged type

Here is the code where the error comes from:

const char_t* convert_number_to_string_special(double value) { #if defined(_MSC_VER) || defined(BORLANDC) if (_finite(value)) return (value == 0) ? PUGIXML_TEXT("0") : 0; if (_isnan(value)) return PUGIXML_TEXT("NaN"); This line----> return PUGIXML_TEXT("-Infinity") + (value > 0);

I tried to change the configuration of the project but I didn't get anything straight.

Any clue? I'd appreciate very much!

Thanks in advance!

1 Answer 1

2

This is the compatibility bug; unfortunately, pugixml 1.0 was not fully tested with C++/CLI (as far as I'm aware, this is the only problem with C++/CLI, so after fixing this you can use pugixml safely).

You can either get the most recent version from the repository (http://pugixml.googlecode.com/svn/trunk/) or manually apply the patch: replace the line

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

with

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.