RE: [c++] RE: CounterSignature or Multiple Signatures - is it possible?

2003-12-22 Thread Milan Tomic

Thank you all that replyed. Here is what I tried:

DOMNode *findNextDSIGNode(DOMNode *n, const char * nodeName)
{
const XMLCh * name = getDSIGLocalName(n);
if (strEquals(name, nodeName)) {
if (iSignatureFound==iSignatureCount) //skip previous
"Signature" nodes
return n;
iSignatureFound++;
}
DOMNode *child = n->getFirstChild();
while (child != NULL) {
DOMNode *ret = findNextDSIGNode(child, nodeName);
if (ret != NULL)
return ret;
child = child->getNextSibling();
}
return child;
}

DOMNode *sigNode;
iSignatureCount = 0; iSignatureFound = 0;// globals
while ((sigNode = findNextDSIGNode(doc, "Signature")) != NULL) { 
verSig(sigNode);
iSignatureCount++; //find next "Signature" node
}

but, it seems that my app crashes in strEquals() function call. Is
there someone willing to help? :)

Thank you,
Milan




Re: [c++] RE: CounterSignature or Multiple Signatures - is it possible?

2003-12-22 Thread Berin Lautenbach
Milan,

First a question - is iSignatureCount a global?  If so, this approach 
may not be thread safe.  An alternative (if threading is an issue) might 
be to pass in the previous found node to findNext.

strEquals should be able to handle a mixture of XMLCh and char strings, 
but it will assume the string is on the local code page.  Could it be 
failing in the transcode for some reason.

Can you tell us what the failure is?

Cheers,
Berin
Milan Tomic wrote:

Thank you all that replyed. Here is what I tried:

DOMNode *findNextDSIGNode(DOMNode *n, const char * nodeName)
{
const XMLCh * name = getDSIGLocalName(n);
if (strEquals(name, nodeName)) {
if (iSignatureFound==iSignatureCount) //skip previous
"Signature" nodes
return n;
iSignatureFound++;
}
DOMNode *child = n->getFirstChild();
while (child != NULL) {
DOMNode *ret = findNextDSIGNode(child, nodeName);
if (ret != NULL)
return ret;
child = child->getNextSibling();
}
return child;
}
DOMNode *sigNode;
iSignatureCount = 0; iSignatureFound = 0;// globals
while ((sigNode = findNextDSIGNode(doc, "Signature")) != NULL) { 
	verSig(sigNode);
	iSignatureCount++; //find next "Signature" node
}

but, it seems that my app crashes in strEquals() function call. Is
there someone willing to help? :)
Thank you,
Milan






RE: [c++] RE: CounterSignature or Multiple Signatures - is it possible?

2003-12-22 Thread Milan Tomic

> First a question - is iSignatureCount a global?
Yes.

> If so, this approach 
> may not be thread safe.  An alternative (if threading is an 
> issue) might 
> be to pass in the previous found node to findNext.
My app is not multithreaded. I was looking for quick solution.

> strEquals should be able to handle a mixture of XMLCh and 
> char strings, 
> but it will assume the string is on the local code page.  Could it be 
> failing in the transcode for some reason.
I don't know. My code is in dll, and dll is called from an exe. It is
not so easy to debug. :(

> Can you tell us what the failure is?
Allways different. Sometimes my app crashes (diseapear) without any
warning dialog (altough I do have try/catch block). Sometimes it shows
an access violation message or "pure virtual function was called"
message.

Thank you for trying to help.

Milan




Re: [c++] RE: CounterSignature or Multiple Signatures - is it possible?

2003-12-22 Thread Berin Lautenbach
That almost smells like a mismatch between run-time libraries.  The 
Debug version of xsec uses the Debug DLL runtime and the release the 
normal DLL runtime.

For various reasons, the debug also uses the MFC in a shared DLL.

BTW - You should be able to debug through the DLL if it is compiled with 
debug info.  (I do it all the time :>)

Cheers,
Berin
Milan Tomic wrote:
First a question - is iSignatureCount a global?
Yes.


If so, this approach 
may not be thread safe.  An alternative (if threading is an 
issue) might 
be to pass in the previous found node to findNext.
My app is not multithreaded. I was looking for quick solution.


strEquals should be able to handle a mixture of XMLCh and 
char strings, 
but it will assume the string is on the local code page.  Could it be 
failing in the transcode for some reason.
I don't know. My code is in dll, and dll is called from an exe. It is
not so easy to debug. :(

Can you tell us what the failure is?
Allways different. Sometimes my app crashes (diseapear) without any
warning dialog (altough I do have try/catch block). Sometimes it shows
an access violation message or "pure virtual function was called"
message.
Thank you for trying to help.

Milan