Mail Archives: cygwin/2003/10/24/12:21:01
The best and the most foolproof way I can think of is something like a
system() (CreateProcess) call and data exchange through temporary files.
Igor
On Fri, 24 Oct 2003, Paul Bezzam wrote:
> Hello everyone,
>
> Is there any way I can call an application(a C application using embedded
> Perl) created on Cygwin from Windows(C++, APIs) environment?
>
> Any pointers would be appreciated.
>
> Thank you.
> Paul
>
> On Thu, 23 Oct 2003, Igor Pechtchanski wrote:
>
> > Any DLL that comes with the Cygwin perl is going to depend on cygwin1.dll.
> > Same goes for any DLL you build without -mno-cygwin. However, if you call
> > these DLLs from Visual Basic, or use -mno-cygwin when compiling, you'll
> > end up with the dependence on both msvcrt.dll (because of VB/-mno-cygwin)
> > *and* cygwin1.dll (because of the perl DLLs), and that's an explosive
> > combination.
> >
> > If you really need to use Perl with Visual Basic, you might consider a
> > Windows-only version of Perl, e.g. ActiveState, and use the DLLs and
> > headers from that distribution in your -mno-cygwin build. However, be
> > aware that this puts you completely outside of the realm of Cygwin, and
> > any support you get for this will have to come from some other forum.
> > Igor
> >
> > On Thu, 23 Oct 2003, Paul Bezzam wrote:
> >
> > > Thank you for your replies. But here is my problem:
> > >
> > > I am trying to make a DLL from a C program that has embedded Perl in it.
> > > I successfully created the DLL, and also created a test C client. The
> > > client successfully calls the DLL. All this is done in Cygwin and without
> > > the "-mno-cygwin" option.
> > >
> > > But, when I try to invoke this DLL from Visual Basic, the application
> > > crashes with the error message, "An unhandled Win32 Exception has
> > > occurred in VB6.EXE."
> > >
> > > Thanks.
> > >
> > > Paul
> > >
> > > On Thu, 23 Oct 2003, Igor Pechtchanski wrote:
> > >
> > > > On Thu, 23 Oct 2003, Paul Bezzam wrote:
> > > >
> > > > > Hello everyone,
> > > > >
> > > > > I have this issue: I have a C program that uses embedded perl to call a
> > > > > Perl subroutine. This runs successfully when compiled with gcc with
> > > > > default options. But, when I use the -mno-cygwin option, I get errors
> > > > > indicating that some include files are not available. (The error messages
> > > > > are shown below my signature)
> > > > >
> > > > > All of this is on Cygwin. Can anyone please point my mistakes?
> > > > >
> > > > > Thank you.
> > > > > Paul
> > > > >
> > > > > Below is part of the error message:
> > > > >
> > > > > $ gcc -c -mno-cygwin mpdll2.c `perl -MExtUtils::Embed -e ccopts -e ldopts`
> > > > > Note (probably harmless): No library found for -lcrypt
> > > > > Note (probably harmless): No library found for -lutil
> > > > > In file included from mpdll2.c:2:
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:613:27: netinet/in.h:
> > > > > No such file or directory
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:617:26: arpa/inet.h:
> > > > > No such file or directory
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:663:27: sys/times.h:
> > > > > No such file or directory
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:782:30: sys/ioctl.h:
> > > > > No such file or directory
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:1193:23: ieeefp.h: No
> > > > > such file or directory
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:1984:21: win32.h: No
> > > > > such file or directory
> > > > > In file included from
> > > > > /usr/lib/perl5/5.8.0/cygwin-multi-64int/CORE/perl.h:2215,
> > > > > from mpdll2.c:2:
> > > >
> > > > Paul,
> > > >
> > > > When you give the -mno-cygwin flag to gcc, you're invoking the MinGW
> > > > runtime/environment. MinGW stands for "Minimalist GNU for Windows" (the
> > > > keyword here is "Minimalist"). It doesn't supply all of POSIX emulation,
> > > > and it's very likely that some of the headers (and system calls) aren't
> > > > available in it.
> > > >
> > > > You will most likely have to implement a lot of the functionality using
> > > > Windows native calls (e.g. winsock, etc). It also looks like you're
> > > > pulling in the Cygwin versions of perl headers - while not an error in
> > > > itself, this might be a warning flag, since Cygwin and MinGW runtimes
> > > > usually don't mix well.
> > > > Igor
--
http://cs.nyu.edu/~pechtcha/
|\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster." -- Patrick Naughton
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -