Files
harbour-core/harbour/include/hbdyn.ch
Viktor Szakats 83bbb7b34d 2010-02-17 03:06 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/fstemp.c
    ! Using hb_fsTempDir() in HB_FTEMPCREATEEX() instead of
      old solution. This should fix it for some non-*nix
      platforms where *nix specific TEMPDIR envvar was used
      to determine temp directory.

  * contrib/hbwin/Makefile
  * include/Makefile
  * src/rtl/Makefile
  - contrib/hbwin/hbdyn.ch
  + include/hbdyn.ch
  - contrib/hbwin/hbdyn.c
  + src/rtl/hbdyn.c
  - contrib/hbwin/win_dllc.c
  + src/rtl/hbdynhb.c
  - contrib/hbwin/tests/testdll.c
  + tests/testdyn.c
  - contrib/hbwin/tests/testdll.prg
  + tests/testdyn.prg
  - contrib/hbwin/tests/testdll1.prg
  + tests/testdyn1.prg
  - contrib/hbwin/hbdyn.h
  * include/hbapi.h
    * Moved dynamic library call related functions to
      core (RTL).
    * Windows specific test code (currently all) guarded
      for platform.
    * Changed default calling convention to cdecl.
      Tests adaptd accordingly.
    * Terminology change: 'dll' -> 'dynamic library'
    ; HB_DYNCALL() is now part of core Harbour, and it's 
      platform independent. It's platform (ABI) dependent though,
      and currently x64 and x86/stdcall/syscall/cdecl 
      is supported and these were tested (except OS/2 syscall).

  * contrib/hbwin/hbwin.h
  * contrib/hbwin/win_misc.c
  * contrib/hbwin/legacycd.c
    * Low level hbwin_getprocaddress() function moved
      to legacy file and made static.

  * contrib/xpp/Makefile
  * contrib/xpp/dllx.c
  * contrib/xpp/xpp.hbc
    + Enabled DLL*() functions for all platforms.
    - Deleted dependence on hbwin library.

  * contrib/xpp/tests/testdll.prg
    * Windows specific parts (currently the whole test) guarded
      for platform.

  * contrib/hbct/Makefile
  - contrib/hbct/diskhb.prg
  * contrib/hbct/disk.c
  * contrib/xhb/Makefile
  + contrib/xhb/diskhb.prg
    * GETVOLINFO() moved from hbct to xhb.

  * ChangeLog
    * Marked some TODO/TOFIX items as DONE.
2010-02-17 02:09:17 +00:00

103 lines
4.4 KiB
Plaintext

/*
* $Id$
*/
/*
* Harbour Project source code:
* Dynamic call (high-level header)
*
* Copyright 2010 Viktor Szakats (harbour.01 syenar.hu)
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
/* NOTE: This file is also used by C code. */
#ifndef HBDYN_CH_
#define HBDYN_CH_
/* C calling conventions */
#define HB_DYN_CALLCONV_CDECL 0x000000 /* C default */
#define HB_DYN_CALLCONV_STDCALL 0x100000 /* Windows API default */
#define HB_DYN_CALLCONV_SYSCALL 0x200000 /* OS/2 32-bit default. */
/* String encodings */
#define HB_DYN_ENC_ASCII 0x000000
#define HB_DYN_ENC_UTF8 0x010000
#define HB_DYN_ENC_UTF16 0x040000
#define HB_DYN_ENC_RAW 0x080000
/* C types */
#define HB_DYN_CTYPE_DEFAULT 0x000000
#define HB_DYN_CTYPE_CHAR 0x000001
#define HB_DYN_CTYPE_CHAR_UNSIGNED 0x000011
#define HB_DYN_CTYPE_CHAR_PTR 0x000101
#define HB_DYN_CTYPE_CHAR_UNSIGNED_PTR 0x000111
#define HB_DYN_CTYPE_SHORT 0x000002
#define HB_DYN_CTYPE_SHORT_UNSIGNED 0x000012
#define HB_DYN_CTYPE_SHORT_PTR 0x000102
#define HB_DYN_CTYPE_SHORT_UNSIGNED_PTR 0x000112
#define HB_DYN_CTYPE_INT 0x000003
#define HB_DYN_CTYPE_INT_UNSIGNED 0x000013
#define HB_DYN_CTYPE_INT_PTR 0x000103
#define HB_DYN_CTYPE_INT_UNSIGNED_PTR 0x000113
#define HB_DYN_CTYPE_LONG 0x000004
#define HB_DYN_CTYPE_LONG_UNSIGNED 0x000014
#define HB_DYN_CTYPE_LONG_PTR 0x000104
#define HB_DYN_CTYPE_LONG_UNSIGNED_PTR 0x000114
#define HB_DYN_CTYPE_LLONG 0x000005
#define HB_DYN_CTYPE_LLONG_UNSIGNED 0x000015
#define HB_DYN_CTYPE_LLONG_PTR 0x000105
#define HB_DYN_CTYPE_LLONG_UNSIGNED_PTR 0x000115
#define HB_DYN_CTYPE_FLOAT 0x000006
#define HB_DYN_CTYPE_FLOAT_PTR 0x000106
#define HB_DYN_CTYPE_DOUBLE 0x000007
#define HB_DYN_CTYPE_DOUBLE_PTR 0x000107
#define HB_DYN_CTYPE_BOOL 0x000008
#define HB_DYN_CTYPE_BOOL_PTR 0x000108
#define HB_DYN_CTYPE_VOID 0x000009
#define HB_DYN_CTYPE_VOID_PTR 0x000109
#define HB_DYN_CTYPE_STRUCTURE 0x00000A
#define HB_DYN_CTYPE_STRUCTURE_PTR 0x00010A
#endif /* HBDYN_CH_ */