delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/06/16/14:15:12

From: dessex AT widow DOT aracnet DOT net (David Essex)
Subject: RE: DLL's for use with other languages...
16 Jun 1997 14:15:12 -0700 :
Sender: mail AT cygnus DOT com
Approved: cygnus DOT gnu-win32 AT cygnus DOT com
Distribution: cygnus
Message-ID: <3.0.1.32.19970616111019.0068b604.cygnus.gnu-win32@aracnet.net>
X-Sender: dessex AT aracnet DOT net (Unverified)
X-Mailer: Windows Eudora Light Version 3.0.1 (32)
Original-To: gnu-win32 <gnu-win32 AT cygnus DOT com>
Original-Cc: "Toni Harbaugh-Blackford" <HARBAUGH AT FCRFV1 DOT NCIFCRF DOT GOV>,
"J Russell Smyth" <jrussell AT voicenet DOT com>
In-Reply-To: <970612141222.204664f4@FCRFV1.NCIFCRF.GOV>
Mime-Version: 1.0
Original-Sender: owner-gnu-win32 AT cygnus DOT com

--=====================_866488219==_
Content-Type: text/plain; charset="us-ascii"

J Russell Smyth wrote:
> ....
>What I want to know is can GNU-WIN32 or cygwin32 create DLLs that can be
used 
>by Visual Basic?

Toni Harbaugh-Blackford you wrote:
> .....
>I too want to use cygwin32 DLLs with Visual Basic, and end up
>with the same error.  I have tried using both relocatable and non-relocatable
>It would really be great if someone who had solved the problem of using
cygwin32
>DLLs with OTHER programs (especially Visual Basic) would provide an example.

I have a working example of a DLL which is compiled under gnu-win32 gcc and
works when it is called from Delphi2 and from another gnu-win32 C program.
It is auto loaded at run time, and is compiled using b18 under Win95. See
enclosed attached source code.


The strange thing about this working example is that it requires 2
different type of declarations. For example the following code will work;

/* gnu-win32 C program declaration */
extern int foo1(...); 
extern char* foo2(...);

/*  DLL C program function */
int foo1(...) { ... }
char* foo2(...) { ... }
int WINAPI dllEntry(HANDLE hDll, DWORD reason, LPVOID reserved)
{   return 1; }

/* Delphi2 Pascal program declaration */
function foo1(t: integer): Integer; stdcall;
function foo2(t: integer): Pchar; stdcall;

However similar code(i.e.: STDCALL IWNAPI) in the C as in the Delphi
calling program will compile but will not load.

/* gnu-win32 C program declaration */
extern int WINAPI foo1(...); 
or
extern char* STDCALL foo2(...);

Any way it works. Hope this helps,

David

--=====================_866488219==_
Content-Type: application/octet-stream; name="sample.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="sample.tgz"

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
--=====================_866488219==_
Content-Type: text/plain; charset="us-ascii"



--=====================_866488219==_--

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019