EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: EPICS - WIN32
From: "Jeff Hill" <[email protected]>
To: "Rolf Keitel" <[email protected]>, <[email protected]>
Cc: <[email protected]>
Date: Thu, 10 Apr 1997 17:23:52 -0600
Rolf,

> 
> 	Maybe my first experience with the WIN32 channel access libraries is of
> interest to others: I pulled the WIN32 stuff from the EPICS distribution
> a couple of days ago. scaget and scaput worked out of the box which was
> nice. Then I tried to write a small Windows95 channel access client,
> using only calls to ca.dll. I had to get a bunch of .h files from our
> UNIX distribution which were not in the .ZIP file (callback.h,
> epicsTypes.h, shareLib.h). I was using Borland C++ 5.0 and had a compile
> problem with errmdef.h which tried to include vararg.h in addition to
> stdarg.h. I applied the following fix then everything worked:
>
> #ifdef __STDC__
> #       include <stdarg.h>
> #else
> #ifndef __STDARG_H   /* added RK 970409 */
> #       include <varargs.h>
> #endif               /* added RK 970409 */
> #endif
> #include <ellLib.h>
> 

The problem with this is that the name conventions for these
defines that prevent multiple inclusion appear to vary from 
vendor to vendor. For instance under solaris we have 
"_STDARG_H", under MS VIS C++ we have "_INC_STDARG",
and under Borland C++ I am guessing that you have
"__STDARG_H". Therefore, your fix will only work with
some compilers and hopefully will not cause trouble
when using any of the other compilers.

We would only have this problem if we included both
stdarg.h and also varargs,h into the same source file.
In the EPICS 3.13 public header files there are no direct 
inclusions of "varargs.h" except in errMdef.h when 
__STDC__ is not defined. Likewise, there are no direct 
inclusions of "stdarg.h" except from "cadef.h" when 
__STDC__ is defined, and from "errMdef.h" when 
__STDC__ is defined. 

The bottom line is that we dont appear to be causing this
to occur in 3.13. Your problem may be specific to 3.12.2 
(if that is what you are using), it may be specific to
Borland C++, or it is perhaps occurring because you are 
including stdarg.h either directly or indirectly when your 
compiler is not configured to compile ANSI C.

Perhaps you should just configure your Borland C++ compiler 
so that it is an ANSI C compiler and therefore defines __STDC__.

> 
> Additional question:
> Is there a PC based channel access client somewhere which is a DDE
> server?

We have a first pass at this here (which Kay wrote) but have not 
included it in the distribution yet.

We will soon have a version of the EPICS build checked in at APS 
that allows all of EPICS base to be built on a PC if you have
MS VIS C++, perl, and gnu make installed. It is quite possible that
Borland C++ will also work if the necessary changes are added to
the configuration files (this has not been tried).

Jeff
______________________________________________________
Jeffrey O. Hill           Internet     [email protected]
LANL MS H820              Voice        505 665 1831
Los Alamos NM 87545 USA   FAX          505 665 5107

Navigate by Date:
Prev: Re: EPICS - WIN32 Mark S. Engbretson
Next: Archiving wit AR Marian Zurek
Index: 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: EPICS - WIN32 Mark S. Engbretson
Next: EPICS variable Russell J. Page, Sr.
Index: 1994  1995  1996  <19971998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Aug 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·