Javier Gálvez Guerrero wrote:
Sorry, I didn't find the "additional libraries" but now these to lib's are
added. However, now appear 10 errors...(before, they were 74).

Creando archivo temporal "d:\Ser teleco
mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000716012284764.rsp"
con contenido
[
/OUT:"D:\Ser teleco
mola\IPTV\Aplicación\Desarrollo\dIPTV\Debug\contents_manager.exe"
/INCREMENTAL /LIBPATH:"D:\Ser teleco
mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\lib" /MANIFEST
/MANIFESTFILE:"Debug\contents_manager.exe.intermediate.manifest"
/DEBUG /ASSEMBLYDEBUG /PDB:"d:\Ser teleco
mola\IPTV\Aplicación\Desarrollo\dIPTV\debug\contents_manager.pdb"
/SUBSYSTEM:CONSOLE /MACHINE:X86 /FIXED:No xerces-c_2.lib
xerces-c_2D.lib kernel32.lib

".\Debug\contents_manager.obj"
]
Creando línea de comandos "link.exe @"d:\Ser teleco
mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000716012284764.rsp"
/NOLOGO /ERRORREPORT:PROMPT"

Ventana Resultados

Vinculando...
contents_manager.obj : warning LNK4248: símbolo (token) de typeref sin
resolver (01000019) para 'xercesc_2_8.XMLValidator'; no se puede
ejecutar la imagen
contents_manager.obj : warning LNK4248: símbolo (token) de typeref sin
resolver (0100001A) para 'xercesc_2_8.XMLGrammarPool'; no se puede
ejecutar la imagen
I guess you meant writing xercesc_2_8::XMLGrammarPool (i.e. "::" instead of ".")
contents_manager.obj : error LNK2028: se hace referencia al símbolo
(token) sin resolver (0A00043C) "public: __thiscall
content::content(class std::basic_string,class std::allocator >)"
(??0content@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@std@@[EMAIL 
PROTECTED]@2@@std@@@Z)
en la función "public: class content __thiscall
contents_manager::get_content(class std::basic_string,class
std::allocator >)"
([EMAIL PROTECTED]@@$$FQAE?AVcontent@@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@@[EMAIL PROTECTED]@2@@std@@@Z)
contents_manager.obj : error LNK2028: se hace referencia al símbolo
(token) sin resolver (0A00043D) "public: __thiscall
content::content(void)" (??0content@@[EMAIL PROTECTED]) en la función "public:
class content __thiscall contents_manager::get_content(class
std::basic_string,class std::allocator >)"
([EMAIL PROTECTED]@@$$FQAE?AVcontent@@[EMAIL PROTECTED]@[EMAIL 
PROTECTED]@@[EMAIL PROTECTED]@2@@std@@@Z)
...
You are including a library that exposes a contents_manager class, but you didn't add the corresponding LIB file in the 'additional libraries' (you should know the name of the library, contents_manager is not part of Xerces)
MSVCRTD.lib(crtexe.obj) : error LNK2019: símbolo externo _main sin
resolver al que se hace referencia en la función ___tmainCRTStartup
D:\Ser teleco mola\IPTV\Aplicación\Desarrollo\dIPTV\Debug\contents_manager.exe
Have you written a main() method?

Alberto
: fatal error LNK1120: 9 externos sin resolver


Should I declare anything like an extern????

Javi


2007/11/29, Javier Gálvez Guerrero <[EMAIL PROTECTED]>:
I have added the two lib paths in Tools | Options | Project Solutions |
VC++ Directories (selecting Library files) and Project | Properities |
Linker | General | Additional library folders (Selecting the "All
configurations" on Configuration combo on top left.

And in the BuildLog.htm file appears this:


Creando archivo temporal "d:\Ser teleco 
mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000416012186844.rsp"
 con contenido

[
/OUT:"D:\Ser teleco mola\IPTV\Aplicación\Desarrollo\dIPTV\Debug\contents_manager.exe" 
/INCREMENTAL /LIBPATH:"D:\Ser teleco 
mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\lib"
 /MANIFEST /MANIFESTFILE:"Debug\contents_manager.exe.intermediate.manifest" /DEBUG 
/ASSEMBLYDEBUG /PDB:"d:\Ser teleco 
mola\IPTV\Aplicación\Desarrollo\dIPTV\debug\contents_manager.pdb" /SUBSYSTEM:CONSOLE 
/MACHINE:X86 /FIXED:No
kernel32.lib

".\Debug\contents_manager.obj"
]
Creando línea de comandos "link.exe @"d:\Ser teleco 
mola\IPTV\Aplicación\Desarrollo\dIPTV\contents_manager\Debug\RSP00000416012186844.rsp" /NOLOGO 
/ERRORREPORT:PROMPT"



So it seems I have added properly the folder but it does not work. This
folder contains xerces_c_2.lib, xerces_c_2D.lib and static(2) and depdom (4)
extensions, 8 files.

I don't know if I need to configure anything more... I am so sorry, but
can you help me, please? I promise you that as soon as I can link properly I
will ask more "interesting" questions..haha.

Thank you a lot,
Javi


2007/11/29, Alberto Massari <[EMAIL PROTECTED]>:
Javier,
the same operation you did for the include folder should be done for the
lib folder (using the Link property page of the Project properties if
you want to fix just this project, or using the VC++ Directories
property page in the Tools | Options menu, after selecting Library files
in the combo box).
In case you didn't already do it, you also need to list xerces_2.lib
(for release builds) and xerces_2D.lib (for debug builds) in the
'additional libraries' entry of the project properties.

Alberto

Javier Gálvez Guerrero wrote:
I think that the attachement doesn't work properly, so I'll copy paste
the
first outputs:

Vinculando... contents_manager.obj : warning LNK4248: símbolo (token)
de
typeref sin resolver (01000019) para 'xercesc_2_8.XMLValidator'; no se
puede
ejecutar la imagen contents_manager.obj: warning LNK4248: símbolo
(token) de
typeref sin resolver (0100001A) para 'xercesc_2_8.XMLGrammarPool'; no
se
puede ejecutar la imagen contents_manager.obj : error LNK2028: se hace
referencia al símbolo (token) sin resolver (0A0003AE) "public: class
xercesc_2_8::DOMDocument * __thiscall
xercesc_2_8::AbstractDOMParser::getDocument(void)" (?getDocument@
[EMAIL PROTECTED]@@[EMAIL PROTECTED]@XZ) en la
función
"public: void __thiscall contents_manager::load_guide(class
std::basic_string,class std::allocator >)"
([EMAIL PROTECTED]@@$$FQAEXV?$basic_string@
[EMAIL PROTECTED]
@std@@[EMAIL PROTECTED]@2@@std@@@Z)

Sorry for the inconvenience,
Javi

2007/11/28, Javier Gálvez Guerrero <[EMAIL PROTECTED]>:

Should I configure anything for the linking files as I did with the
Include?

I have compiled my code with no errors, but at the time of linking
appear
lots of errors (BuildLog.htm attached).

Thank you,
Javi

PS: Jesse, thanks a lot for your explanation about System.XML and its
features. I am trying to design an application as multiplatform as
possible
and now that I have started with Xerces I would like to use it. But
it's
good to know all the alternatives out there. =).



2007/11/28, Jesse Pelton <[EMAIL PROTECTED]>:

Regarding System.XML versus Xerces: Xerces exists to provide a
solid,
open-source, cross-platform implementation of certain XML standards
for C++
developers.  Almost all C++ developers are using unmanaged code; I
think
you're the first I've heard of using Xerces with managed C++.

To the extent that you're in a managed-code environment, Mono's
implementation of System.XML may fulfill the same requirements.  If
you're targeting Windows exclusively, the cross-platform issue is of
no
consequence; you'll use the Microsoft implementation.  My
understanding is
that System.XML is well-designed and robust, but I can't vouch for
that
myself.  That leaves openness; if that's not important for your
project,
System.XML would probably be at least as good a fit as Xerces (and I
imagine there's a large community of managed code developers who can
help
you out, though not one of them is as good as Alberto).  Using
System.XML would avoid redundancy: you wouldn't have to distribute,
and
your developers wouldn't have to understand, an additional library.

This is not to say that you shouldn't use Xerces; it's a great
library.  Just know your options.

-----Original Message-----
From: Javier Gálvez Guerrero [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 28, 2007 12:15 PM
To: [email protected]
Subject: Re: How to parse using DOM

Alberto,
Thanks again. Everything worked fine.

By the way, as I use getNodeValue and getNodeName to process and
assign
them
to my C++ structures I need to parse the XMLCh* returned value to
String^
buy I couldn't find any way to do it. Any idea?

Jesse,
That's a good question..xD. There are many reasons why I am trying
to
use
Xerces in order to parse and create XML files. Maybe you'll find
them
stupid.

Firstly, I am an absolute newbie with C++ as with Xerces (as you
have
already realized). So, I did no research on XML classes offered by
the
.NET
framework as I didn't know them.
Secondly, I am developing an application based on a previous version
which
was developed by another person, who based his app on Xerces to
parse
XML
files. The problem is that his design didn't take into account
creating
or
writing on XML files, only parsing and reading, so he used the SAX
API.
Then, I had to switch from SAX to DOM and facing all the problems it
implies
(creating a NEW app).
Thirdly, I thought I could find some help if I based my design on a
open
source solution like Xerces is, and here it is.

Then, if you tell me that it is worth for me working with the
System:XML
files, then I would think about it..haha. But then, what is Xerces
for
if
everybody can manage their XML files with these classes?

Cheers,
Javi

2007/11/28, Jesse Pelton < [EMAIL PROTECTED]>:

Just out of curiosity, if you're using managed code, why aren't you

using

the System.XML classes?

-----Original Message-----
From: Javier Gálvez Guerrero [mailto:[EMAIL PROTECTED]
Sent: Wednesday, November 28, 2007 11:03 AM
To: [email protected]
Subject: Re: How to parse using DOM

Hi there.

Now I can compile the source code file where I have implemented (or

tried

it...) the DOM parser, some errors have appeared. As they seem
quite
simple
I hope you could help me again:

The method in file.cpp is like this (I have followed the guidelines
< http://xerces.apache.org/xerces-c/program-dom.html>on Xerces
site,
except

for the exception treatment...):

void contents_manager::load_guide(String^ xml_path){

    XMLPlatformUtils::Initialize();
    XercesDOMParser* parser = new XercesDOMParser();

    parser->parse(xml_path);
    DOMNode* root = parser->getDocument(); //child_aux1 will be the

first

child of root
    DOMNode* child_aux1, child_aux2, child_aux3, child_aux4,

child_aux5,

child_aux6, child_aux7; // Compiling errors referring to this line

       //...

In file.h this is included:

#include "../include/gincludes.h"
#include "../content/content.h"
#include <xercesc/dom/DOM.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMWriter.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/dom/DOM.hpp>
#include <xercesc/util/XMLString.hpp>
#include <xercesc/util/PlatformUtils.hpp>

using namespace System;

XERCES_CPP_NAMESPACE_USE

// class definition...

Then, when compiling a lot of errors appear saying that it can not
be
done

as I am working with abstracts, referring to the previous red
line...
1>.\contents_manager.cpp(17) : error C2259: xercesc_2_8::DOMNode' :
no
se

puede crear una instancia de una clase abstract
1>        debido a los siguientes miembros:
1>        'const XMLCh *xercesc_2_8::DOMNode::getNodeName(void)
const'
:

es
abstracto
1>        D:\Ser teleco



mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\include\xercesc/dom/DOMNode.hpp(246)

: vea la declaración de 'xercesc_2_8::DOMNode::getNodeName'
1>        'const XMLCh *xercesc_2_8::DOMNode::getNodeValue(void)

const' :

es
abstracto
1>        D:\Ser teleco



mola\IPTV\Aplicación\Desarrollo\dIPTV\xercesc_2_8_0\include\xercesc/dom/DOMNode.hpp(255)

: vea la declaración de 'xercesc_2_8::DOMNode::getNodeValue'
1>        'short xercesc_2_8::DOMNode::getNodeType(void) const' :
es
abstracto
...

Any idea of what I need to do regarding this error?


By the way, as you may have seen on the arguments of my method, the
name/path of the XML file is received with String^ type, so, as I
need
to

have a char* as an argument for parse->parse(file_name), how can I

parse

it?

Thank you very much,

Javi




2007/11/28, Sven Bauhan <[EMAIL PROTECTED]>:

This is not true.  std::string and UTF-8 are fully compatible, as
long

as

you make no assumptions about chopping things up at arbitrary

indices,

or

the relationship of Unicode code points and UTF-8 code units.  At

any

rate,

with a double-byte or multi-byte locale code page, you'd have the

same

issues.


I do not really understand what you want to say here. As far as I

know

std::string stores strings in single byte units. In UTF-8 the
units
have

variable length between 1 and 4 bytes. So I cannot see a match
here.
I thought to use UTF-8 with the STL you need something like
std::basic_string<UTFChar>.

Could you tell me, how to transcode the XMLChar* correctly using

UTF-8?

Sven




Reply via email to