EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: Re: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter
From: "J. Lewis Muir" <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Date: Mon, 09 Feb 2015 16:48:36 -0600
On 2/2/15 2:17 PM, Johnson, Andrew N. wrote:
> It sounds like you are building the vendor's code, which must be
> done with VC6, but can add your own code to their program. I can
> suggest a few ways to interface that with EPICS code built with a
> newer compiler: Use a socket or COM API to to communicate between
> the two sides, or make the interface a DLL with a C-only API as this
> should allow you to link with and call code from the other compiler. A
> DLL would give you a closer and faster interface, but might be more
> trouble to get working.

I'm just reporting back that I was able to get this to work.  My library
was already presenting a C-only API, so I didn't need to do anything to
it.  I compiled EPICS Base and my library using Visual C++ 2010 Express
SP1.  (So it seems to be able to coexist with VC6.)  I then compiled the
vendor-supplied program using VC6 and had it link against my library.

I tried two approaches, both of which worked: load-time dynamic
linking and run-time dynamic linking.  For load-time dynamic linking,
I supplied, at compile-time, my library's .h file, .dll file, and .lib
file, and EPICS Base's shareLib.h (since my library's .h file includes
it), ca.dll, and Com.dll.  At run-time, I supplied my library's .dll
file and EPICS Base's ca.dll and Com.dll.

For run-time dynamic linking, I just supplied, at compile-time, my
library's .h file and EPICS Base's shareLib.h (since my library's
.h file includes it), and, at run-time, my library's .dll file and
EPICS Base's ca.dll and Com.dll.  I was able to call into my library's
DLL using Microsoft's LoadLibrary, GetProcAddress, and FreeLibrary
functions.

Thanks for the help!

Lewis

References:
epicsRingPointer.h error C2664: 'delete' : cannot convert parameter J. Lewis Muir
Re: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter Andrew Johnson
Re: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter J. Lewis Muir
Re: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter Johnson, Andrew N.

Navigate by Date:
Prev: CA Repeater: bind test err was "The operation completed successfully. " J. Lewis Muir
Next: RE: CA Repeater: bind test err was "The operation completed successfully. " freddie.akeroyd
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter Mark S. Engbretson
Next: Re: epicsRingPointer.h error C2664: 'delete' : cannot convert parameter Jani Hakala
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·