This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Loading cygwin1.dll from a windows app



On Tue, 27 Mar 2007 01:00:42 +0300, Long, Phillip GOSS <Phillip.Long@gossinternational.com> wrote:


Antti Karanta wrote:
I am trying to load the cygwin1.dll from a windows c app

Why?

To make the program behave correctly when used in cygwin bash shell. Or, more to the point, to make it understand paths given in the cygwin format.



  I am trying to load cygwin1.dll to invoke the cygwin path conver-
sion functions (to make my program easier to use from cygwin shell).
I do this to convert the command line params denoting paths or
files to windows format that the java virtual machine I am launching
expects.  The jvm is also the reason why I can't compile my app as
cygwin app - the java jni (java native interface) headers contain
windows specific stuff that makes gcc fail, unless -mno-cygwin is
used. BTW, now that Java

Basically, I am a lazy programmer, taking the path of least resis- tance. If U're running this from bash (what most folks mean by 'the Cygwin shell'), use command replacement and cygpath, and U don't have to mess around with a DLL: ~/> groovy $(cygpath -w /path/to/file/in/question/y.xml)

The problem is that groovy is a scripting language, and the program I'm working on is the launcher. It would be highly inconvenient for the user to have to invoke his scripts that way. Imagine you had to do:


perl $(cygpath -w /path/to/file/in/question/y.pl)
ruby $(cygpath -w /path/to/file/in/question/y.rb)

Also, since groovy is java based, the user often wants to input a classpath, and when in cygwin, he would propably want to give that in cygwin format.


Cygpath with the -w qualifier will convert Cygwin paths to Windows
paths, and U can avoid all the DLL messiness.

I know about cygpath tool and consider invoking it via the system() function as the last resort (if I can't make this work otherwise). It just feels clumsy having to launch extenal processes for simple path conversion.



This all happens at launch, correct?

Yes.



Launching another process, although it takes time,
is most easliy hidden from the end user at process launch; it's when
U can afford the delay most.  It's at least worth a try.

That's what I'll have to do if I can't make the dll loading behave. But I'm not giving up just yet.




-Antti-


-- 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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]