You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-users@xalan.apache.org by Ellonnic2 <da...@siemens.com> on 2009/08/28 18:03:19 UTC
Windows - samples fail on "transform(...)" when using "cout"
Hello,
Many of Xalan's samples redirect the program's output to stdout by passing
in "cout" as the last parameter to the "transform(...)" method. This works
fine with the executables provided along with the binary distribution of
Xalan. However, if I instead build the sample source-code myself using
Visual Studio 2005, I get a crash/exception whenever I execute any transform
call using "cout" as the last parameter (the attached XalanTransform.cpp has
the simplest example of this).
theResult = theXalanTransformer.transform(argv[1], argv[2], cout);
Does anyone know why this happens and/or how to prevent it???
Thanks in advance for your time and patience,
~Dan
http://www.nabble.com/file/p25192539/XalanTransform.cpp XalanTransform.cpp
--
View this message in context: http://www.nabble.com/Windows---samples-fail-on-%22transform%28...%29%22-when-using-%22cout%22-tp25192539p25192539.html
Sent from the Xalan - C - Users mailing list archive at Nabble.com.
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by David Bertoni <db...@apache.org>.
Ellonnic2 wrote:
> Hi Dave,
>
> Thanks for your reply.
>
> I only built the sample code, not the Xalan or Xerces source code itself.
> To be more specific, I downloaded and used the binary distribution of both
> Xerces (xerces-c_2_7_0-windows_2000-msvc_60.zip) and Xalan
> (Xalan-C_1_10_0-win32-msvc_60.zip).
>
> Trying to step over this very line:
> theResult = theXalanTransformer.transform(argv[1], argv[2], cout);
> consistently causes the "Unhandled exception at ... in XalanTransform.exe:
> ...: Access violation reading location ...." failure.
>
> Is it because I'm using Visual Studio 2005 to build this and the binaries
> were built using Visual C++ 6.0? If so, how do resolve that without having
> to upgrade Visual Studio versions?o
You can't mix the binaries built with VS6 with binaries you built with
VS2005 -- Microsoft's run-time libraries are not compatible.
If you need to build with VS2005, first download the Xerces-C vs2005
binaries, or build Xerces-C 3.0.1 from the source code:
http://apache.securedservers.com/xerces/c/3/binaries/xerces-c-3.0.1-x86-windows-vc-8.0.zip
http://apache.securedservers.com/xerces/c/3/sources/xerces-c-3.0.1.zip
Then, you'll need to check out the latest Xalan-C source code from the
Subversion repository. It's fairly easy to do using a GUI program like
TortoiseSVN:
http://tortoisesvn.net/downloads
After you install TortoiseSVN, open Windows Explorer and navigate to the
folder where you want to check out the sources. Right-click in the
folder, then enter the following URL in the edit field:
http://svn.apache.org/repos/asf/xalan/c/trunk
You can also specify a subdirectory or the checkout in the second edit
field, if you want.
Then, you can follow the Windows build instructions here:
http://xml.apache.org/xalan-c/build_instruct.html#dotNet
Note you'll need to open the project files for VC8 instead of VC7.1,
since you're using VS2005. Also, please make sure you put the Xerces-C
DLLs (both debug and release) somewhere on your path, so they will be
found during the Xalan-C build process. I typically add the Xerces-C
output directories to the path, but you may find it easier to put them
in a single directory and put that directory on your path.
If you have any questions or problems, just post a reply.
Dave
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by Ellonnic2 <da...@siemens.com>.
Hi Dave,
Thanks for your reply.
I only built the sample code, not the Xalan or Xerces source code itself.
To be more specific, I downloaded and used the binary distribution of both
Xerces (xerces-c_2_7_0-windows_2000-msvc_60.zip) and Xalan
(Xalan-C_1_10_0-win32-msvc_60.zip).
Trying to step over this very line:
theResult = theXalanTransformer.transform(argv[1], argv[2], cout);
consistently causes the "Unhandled exception at ... in XalanTransform.exe:
...: Access violation reading location ...." failure.
Is it because I'm using Visual Studio 2005 to build this and the binaries
were built using Visual C++ 6.0? If so, how do resolve that without having
to upgrade Visual Studio versions?o
~Dan
--
View this message in context: http://www.nabble.com/Windows---samples-fail-on-%22transform%28...%29%22-when-using-%22cout%22-tp25192539p25205124.html
Sent from the Xalan - C - Users mailing list archive at Nabble.com.
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by Ellonnic2 <da...@siemens.com>.
I feel so foolish. You were absolutely right about the DLL. The batch file
I wrote that started VS2005 was trying to use a quote (") to set the path
environment variable, and consequently the bin directory wasn't being added
correctly to the path. Anyway, thanks again! You're too nice!!!
~DPD
--
View this message in context: http://www.nabble.com/Windows---samples-fail-on-%22transform%28...%29%22-when-using-%22cout%22-tp25192539p25370993.html
Sent from the Xalan - C - Users mailing list archive at Nabble.com.
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by David Bertoni <db...@apache.org>.
Ellonnic2 wrote:
> Hello,
>
> Many of Xalan's samples redirect the program's output to stdout by passing
> in "cout" as the last parameter to the "transform(...)" method. This works
> fine with the executables provided along with the binary distribution of
> Xalan. However, if I instead build the sample source-code myself using
> Visual Studio 2005, I get a crash/exception whenever I execute any transform
> call using "cout" as the last parameter (the attached XalanTransform.cpp has
> the simplest example of this).
>
> theResult = theXalanTransformer.transform(argv[1], argv[2], cout);
>
> Does anyone know why this happens and/or how to prevent it???
That seems very strange. Some questions:
1. Did you also build Xerces-C from source source, or did you download
the binary distribution?
2. How did you build Xalan-C 1.10 using VS2005? You would need to make a
lot of source code changes to build it (the current repository version
builds with VS2005).
3. Have you run your executable in the debugger to determine where the
access violation occurs?
Dave
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by David Bertoni <db...@apache.org>.
Ellonnic2 wrote:
> Hi Dave,
>
> Thanks so much for your reply. I think I'm 98% of the way there. I just
> have one minor issue. Once I have everything seemingly set up correctly,
> when I build, I get the following:
>
> "Cannot open include file: 'LocalMsgIndex.hpp': No such file or directory"
> and then lots of
> "fatal error C1083: Cannot open include file: 'LocalMsgIndex.hpp': No such
> file or directory"
This usually occurs because the Xerces-C DLL cannot be located, so the
message generation utility can't execute. Please make sure the Xerces-C
directories that contain the debug and release Xerces-C DLLs are on your
path. Alternatively, you can copy those binaries to the appropriate
Xalan-C output directories. To do this, I usually just build the
MsgCreator project for the configurations I'm interested in, then copy
the appropriate binaries into the resulting output directories under the
Build directory. Remember to copy the release DLL to any release
configuration output directories and the debug DLL to any debug
configuration output directories.
> Now, I understand that there is a FAQ for the "Missing LocalMsgIndex.hpp
> file", however, this seemingly only tells me that this file should have been
> generated. Does this error force me to now have to build with ICU support?
> When I changed the target from "Debug with ICU" to "Debug", it had no
> effect.
That won't fix the problem, since the issue is you're missing the
Xerces-C DLLs.
> Changing topics, on the Xalan download site
> ("http://xml.apache.org/xalan-c/download.html"), I do not see any Macintosh
> information, but the source code has a "c\Projects\MacOS" directory. Which
> OSes does the most recent source code support that is not on the site's
> list?
That configuration has not been maintained for many years, and in fact,
it's project files for Apple's ProjectBuilder IDE, which is no longer
being developed.
Dave
Re: Windows - samples fail on "transform(...)" when using "cout"
Posted by Ellonnic2 <da...@siemens.com>.
Hi Dave,
Thanks so much for your reply. I think I'm 98% of the way there. I just
have one minor issue. Once I have everything seemingly set up correctly,
when I build, I get the following:
"Cannot open include file: 'LocalMsgIndex.hpp': No such file or directory"
and then lots of
"fatal error C1083: Cannot open include file: 'LocalMsgIndex.hpp': No such
file or directory"
Now, I understand that there is a FAQ for the "Missing LocalMsgIndex.hpp
file", however, this seemingly only tells me that this file should have been
generated. Does this error force me to now have to build with ICU support?
When I changed the target from "Debug with ICU" to "Debug", it had no
effect.
Changing topics, on the Xalan download site
("http://xml.apache.org/xalan-c/download.html"), I do not see any Macintosh
information, but the source code has a "c\Projects\MacOS" directory. Which
OSes does the most recent source code support that is not on the site's
list?
--
View this message in context: http://www.nabble.com/Windows---samples-fail-on-%22transform%28...%29%22-when-using-%22cout%22-tp25192539p25368970.html
Sent from the Xalan - C - Users mailing list archive at Nabble.com.