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 Original-Cc: "Toni Harbaugh-Blackford" , "J Russell Smyth" In-Reply-To: <970612141222.204664f4@FCRFV1.NCIFCRF.GOV> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=====================_866488219==_" 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".