* utils/hbmk2/hbmk2.prg
+ Added MS-DOS compiler (djgpp) detection when used on *nix platform
in cross-compile scenario.
BTW I've also found that I had already implemented win and wce
autodetection based on global.mk, so it' supposed to work. Please
test it.
* config/global.mk
- Deleted a variable not used anymore.
* utils/hbmk2/hbmk2.prg
+ Added workaround for mingw compiler problem where it
tends to leave zero byte long objects in cases when the
build process gets (manually) aborted.
Please check it and report any potential performace
problems (hbmk2 needs to read the objects' size from
the directory listing). Maybe we will need a Harbour
function which returns both timestamp and size in one
call.
* contrib/hbodbc/todbc.prg
- Deleted 'FROM HBCLASS' from class declarations.
Thanks to Manu for the report.
* contrib/hbxpp/dbfuncsx.prg
+ Added XPP_DBUSEAREA() which emulates non-Clipper compatible
behavior of Xbase++ DBUSEAREA() implementation.
Based on code and information sent by Shum
* contrib/gtwvg/wvgwing.c
! Fixed compilation in newer BCC versions (6.3).
Fix suggested by YD0DKL
* package/winuni/mpkg_win_uni.bat
+ Added copyright msg.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.rc
* Changed to use plain number for icons, instead of 'ICONn' name
to ease addressing them in some situations.
; INCOMPATIBLE: If you used
hb_GTInfo( HB_GTI_ICONRES, "ICONn" )
to set app icon at runtime, change it to:
hb_GTInfo( HB_GTI_ICONRES, n )
* utils/hbmk2/hbmk2.prg
* config/global.mk
* INSTALL
! HB_BUILD_NAME/-build= no longer supports pathseps (backslash/fwdslash)
(it would need costly solution to resolve compilation of
hbrun.rc, maybe more. It's also "cleaner" this way, since the
dir structure is not altered)
* utils/hbmk2/hbmk2.prg
+ Harbour environment autodetection will now work if pathseps
are present in HB_BUILD_NAME/-build= setting.
(so now it's in sync with Harbour build in this regard)
* harbour/include/hbclass.ch
% small modification to reduce lock time
* harbour/src/common/hbdate.c
! fixed hb_timeUTCOffset() in MS-Windows builds to work in some
countries/windows versions where GetTimeZoneInformation() returns
TIME_ZONE_ID_INVALID but sets correct tzInfo.StandardBias field.
* harbour/package/mpkg_ver.sh
! fixed to set correctly root path after moving build scripts to
./package subdirectory
* harbour/utils/Makefile
! do not build executable files when HB_BUILD_PARTS is set to 'lib'
* harbour/src/rtl/filesys.c
* unified hb_fsSeek[Large]() return value when seek operation cannot
be executed for given file handle. Now it's 0 for all platforms.
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new public C function
PHB_SYMB hb_clsFuncSym( HB_USHORT uiClass )
It returns class function symbol or NULL.
* harbour/ChangeLog
* harbour/config/os2/gccomf.mk
* harbour/include/hbpcode.h
* harbour/include/hbdebug.ch
* harbour/include/hbmath.ch
* harbour/include/hbgfx.ch
* harbour/src/vm/classes.c
* harbour/utils/hbmk2/hbmk2.prg
* removed dummy trailing spaces at EOLs
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Switched .po files to UTF-8.
+ Set svn:mime-type accordingly.
; NOTE: Make sure to use UTF-8 aware editor to edit these files
from now on. These are the first UTF-8 files in hb repo.
* INSTALL
+ Added .xz source file. Thanks Tamas for installing it
required tools onto the nightly server.
* package/mpkg_win_nightly.bat
* Minor to reqs.
* utils/hbmk2/hbmk2.prg
+ Added extension to license. Pls read it, especially projects
including hbmk2 or modified version of hbmk2 (f.e. MiniGUI).
Help text and documentation is now covered by Creative Commons
Attribution-ShareAlike 3.0.
Plus some restriction to not tear hbmk2 off of Harbour Project,
to clearly show modified nature and always distribute modified
source.
My intent is to leave hbmk2 as coherent part of Harbour,
possibly unmodified and my name not stripped.
* config/global.mk
% Minor opt.
* package/mpkg_nightly.sh
! Harmless typo.
* package/winuni/RELNOTES
* Updated.
* INSTALL
+ Some binary link.
* utils/hbmk2/hbmk2.prg
! Changed the way links are installed. This should fix it
for win platform.
* Will now delete link before trying to create it in install phase.
* include/hbcomp.h
* src/macro/macro.yyc
* src/macro/macro.y
* src/macro/macrolex.c
* src/compiler/hbmain.c
* src/compiler/complex.c
* src/compiler/harbour.yyc
* src/compiler/harbour.y
* Changed prefix used for bison generated function prefix
(hb_comp -> hb_comp_yy, hb_macro -> hb_macro_yy)
; Pls review.
This avoids collision between hb_macroError/hb_macroerror
for obsolete tools like bcc implib which uses case-insensitive
symbol lookup by default)
* package/winuni/mpkg_win_uni_extra_copy.bat
+ Added trick to generate special implib for core .dlls so
that now bcc can use the regular Harbour one and doesn't
need the special '-bcc' postfixed version to be shipped.
An ugly trick for an obsolete compiler.
(release process now requires bcc implib tool because of this)
* utils/hbmk2/hbmk2.prg
+ Added -c option to implib calls. This fixes implib generation
for certain .dlls, like OpenSSL.
* contrib/gtalleg/gtalleg.hbc
! Fixed allegro-config command to not contain output redirection.
* contrib/hbcurl/hbcurl.hbc
! Fixed lib name on non-win platforms.
* contrib/hbgd/hbgd.hbc
! Fixed gd lib name on Linux.
* contrib/hbodbc/hbodbc.hbp
* contrib/sddodbc/sddodbc.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbcurl/hbcurl.hbc
* contrib/hbcurl/hbcurls.hbp
% Using allwin instead of win|wce.
* utils/hbmk2/hbmk2.prg
+ Added trick to not corrupt version numbers in libnames when
adding extension. (it will check for extensions beginning
with numeric and add instead of replace extension in such case)
! Fixed pkg-config/*-config parser when result contained LF chars.
* config/postinst.hbs
* Do not create dynlib symlink on non-*nix platforms.
; Now HB_BUILD_CONTRIB_DYN works for all contribs also on Linux.
; TODO: Shouldn't harbour-2.1.0.so be called harbour.so.2.1.0 ?
; TODO: Creating versionless links for contribs.
* contrib/make.hbs
+ Generalized the way dynamic lib dependencies are found
to make it work on *nix systems, too.
* include/harbour.hbx
+ src/rtl/libnamec.c
* src/rtl/libname.prg
* src/rtl/Makefile
+ Added HB_LIBEXT() and HB_LIBPREFIX() functions.
* utils/hbmk2/hbmk2.prg
+ Added "platform", "compiler", "cpu", "buildname", "dynsuffix"
to --hbinfo returned data.
* INSTALL
+ Documented HB_BUILD_CONTRIB_DYN setting. The default is
'no', and if set to 'yes', the build system will create
dynamic lib versions of the contribs.
* src/Makefile
* utils/hbformat/Makefile
* utils/hbi18n/Makefile
* utils/hbtest/Makefile
* config/global.mk
* config/dos/watcom.mk
* config/dos/djgpp.mk
* config/dyn.mk
* config/rules.mk
* INSTALL
* Renamed HB_BUILD_DLL to HB_BUILD_DYN.
* ChangeLog
* include/harbour.hbx
* src/rtl/Makefile
+ src/rtl/libname.prg
+ tests/libname.prg
+ Added HB_LIBNAME( <cDynLibName>[, <cDynLibDir> ] ) -> <cOSDynLibName>
Serves to convert a raw dynlib name, f.e. "hbct" to OS specific
notation, by adding platform specific extension, lib name prefix and
optional directory
* utils/hbmk2/hbmk2.prg
! Fixed dynlib prefix for symbian
* utils/hbmk2/hbmk2.prg
! Fixed to not propagate _ERRLEV_STOP from sub-projects.
% -stop will not stop processing any further cmdline options.
* Avoided one dangerous IF instruction.
* contrib/hbqt/hbqt_commons.hbm
% If static mode is not requested stop before loading plugins.
* config/global.mk
! Always set HB_REBUILD_* options to 'no' when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed setting LD_LIBRARY_PATH under pre-3.81 GNU Makes.
+ Will now set HB_SYSLOC=yes when creating .tgz packages which
are meant to be installed to system locations. (didn't test
this one)
+ Will now set HB_INSTALL_DOC to /share/doc/harbour on *nix systems.
! Fixed to set HB_INSTALL_MAN to /share/man (instead of /man) on
*nix systems.
; Please test/review these.
* config/postinst.hbs
+ Create directory for "root documents". They are now stored
in /share/doc/harbour for *nix.
! Fixed to store proper directory in ld.so.conf.d setting by
removing HB_INSTALL_PKG_TOP from the beginning of full dynlib
path.
* debian/rules
* package/harbour.spec
* package/harbour-win.spec.in
* package/harbour-wce.spec.in
! Use HB_INSTALL_PKG_TOP to denote the root of package dir structure.
; TODO: Change the name to HB_INSTALL_PKG_ROOT
; TODO: Optimize variable usage.
; TOFIX: Use HB_INSTALL_DYN instead HB_INSTALL_LIB in context of
dynamic libs in postinst.hbs and package scripts.
* package/harbour.spec
! Fixed to honor HB_BUILD_NAME in local LD_LIBRARY_PATH setting.
(is it needed?)
* INSTALL
- Deleted note about GNU Make 3.81.90
3.82 is out and the bug was fixed.
! Updated mpkg_src.sh location.
* contrib/make.hbs
* Do not create dynlib, .hbd, .hbx if the main build process
returned with non-zero errorlevel.
* utils/hbmk2/hbmk2.prg
+ Return errorlevel when -stop is used in project.
+ Use manifest constants for errorlevels.
* config/hbextern.hbs
* Local function renamed.
* contrib/xhb/xhb.hbx
* contrib/hbxpp/hbxpp.hbx
* Regenerated.
* src/vm/pvaluehb.c
! Typo in comment.
* utils/hbmk2/hbmk2.prg
% Implemented optimized header parser code created by Przemek.
With these additions/modifications from previous algorithm:
+ Use FindHeader() to locate the referenced headers.
+ Use different algorithm to find C vc PRG headers.
% Completely skip known standard system headers.
% Do not go down to headers included as system (using <>)
IOW Check their timestamp but don't parse it for sub-headers.
Please review it, it was quite a tough task, so I may have
missed something. Here my reference build time went down
from ~4 to ~2.5secs.
! Above implementation had the nice side effect that it fixed
-autohbc feature in -inc mode.
! Fixed header finder code to always look in parent dir
(and don't look in current dir in such case).
I'd appreciate if this function (FindHeader() would be peer-reviewed
to verify if it really matches the way how Harbour and C compilers
try to find headers.
* config/postinst.hbs
! Fixed typo in a recent commit causing RTE.
* config/hbextern.hbs
* Hide stderr in lib listing call.
* contrib/hbcurl/hbcurl.c
% Use '#include <>' to refer to curl header.
* utils/hbmk2/hbmk2.prg
+ Added ${hb_dynsuffix} macro which returns a dynlib suffix
value compatible with the naming system used for Harbour core
dynlib (-x64, -wce-arm, -bcc, etc..)
% Internals optimized to use dynsuffix value when calculating
harbour core dynlib name.
! Fixed to not require macros inside filters to be uppercases.
(as a side effect now unknown macro names will be passed
as is to getenv() to check for possible envvar value)
* contrib/hbpost.hbm
+ Will now use ${hb_dynsuffix} when forming output name in
-hbdyn mode. So f.e. for x64 targets an '-x64' suffix will
be used, which matches with the one used with core harbour
dynlib. Also bcc targets will get -bcc postfix.
+ Will now use ${hb_dynsuffix) when forming implib output name
if it's not empty (for x86, ia64, wce and bcc in practice).
* contrib/make.hbs
* config/postinst.hbs
! Display msg about extern generation only if it was really started.
* config/hbextern.hbs
! Fixed to check for the presence of input file.
* utils/hbrun/hbrun.prg
+ Will now add the script's home directory to the header dir list.
* contrib/make.hbs
* config/postinst.hbs
+ config/hbextern.hbs
+ Moved extern header generation low level logic to separate script.
+ Added feedback about extern generation.
+ Moved core extern header generation logic to postinst.hbs.
! Minor fix to output when postinst is used in non-install phase.
* contrib/global.mk
+ Displays HB_REBUILD_EXTERN setting.
* Makefile
* Changed to always execute config/postinst.hbs, not just in
install phase.
* include/hbextudd.ch
* include/hbextsca.ch
* include/hbextcdp.ch
* include/hbextlng.ch
* include/hbextern.ch
+ Replaced content with automatically generated one.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* Deleted "just" functions and replaced them with HB_SYMBOL_UNUSED()
macro, which has no runtime overhead.
* contrib/hbide/hbide.hbp
- contrib/hbide/iderequests.prg
- Deleted requesting HBQT component via "just" function. Now it's
done by EXTERNAL statements. BTW this function was not called,
so it was ineffective. Pls correct me if I missed the point
of the old solution.
* contrib/make.hbs
+ Will now automatically generate EXTERN lists for libs if
using HB_REBUILD_EXTERN=yes setting and GCC compiler.
Pls note that after regeneration a new build pass is
required to reflect the changes in final binaries.
NOTE: I chose the .hbx extension for EXPORT code.
Pls comment on it (adding a postfix to regular
.prg or .ch extension is not an option as it won't
fit the 8.3 filename limit).
* Changed --hbinfo call to pass parameters just like the
"real" hbmk2 call, to get correct information about
the project.
% Minor optimizations.
* utils/hbmk2/hbmk2.prg
+ --hbinfo extended to return 'outputname'.
* INSTALL
+ Documented HB_REBUILD_EXTERN
* utils/hbmk2/hbmk2.prg
+ Added trick to filter out target lib name from input lib list -hblib
mode and to filter out target implib name from input lib list in
-hbdyn mode. This fixes problems when linking -hbdyn by speccing both
project .hbp and .hbc files. I'm still thinking of a better solution
to solve this problem.
* contrib/make.hbs
! Fixed recent bug in filter processing.
* include/hbapi.h
+ Added HB_EXPORT to hb_releaseCPU(), hb_idle*() and hb_cmdarg*() functions.
* contrib/hbide/idemisc.prg
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* Cleanup.
* utils/hbmk2/hbmk2.prg
! Fixed regression where -head=native would miss the header dir options
when doing the header detection.
+ Added TOFIX about (experimental) -autohbc not working with -inc option.
* utils/hbmk2/hbmk2.prg
% normalize rebased sources paths (mingw, *nix/gcc).
- contrib/hbqt/generator/qt45.qtp
+ contrib/hbqt/generator/qtcore.qtp
+ contrib/hbqt/generator/qtnetwork.qtp
+ contrib/hbqt/generator/qtgui.qtp
* Split monolithic .qtp to components.
! Moved QUiLoader to qtgui (from qtcore) to fix circular component
dependency.
* contrib/hbqt/generator/hbqtgen.prg
+ Rewrote to avoid internal tricks to detect which class belongs to
which component.
+ Changed to create GC related functions on a per-component bases
(instead of monolithic hbqt_garbage.h).
* Changed to save documents using core hbdoc API.
% Deleted some unused functions and variables.
; After these changes the generator doesn't have any hard-coded
information about components, so it can be extended with new
one via new .qth files.
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtnetwork/*
* contrib/hbqt/doc/en/*
* Regenerated.
- contrib/hbqt/qtcore/TQUiLoader.prg
- contrib/hbqt/qtcore/QUiLoader.cpp
+ contrib/hbqt/qtgui/QUiLoader.cpp
+ contrib/hbqt/qtgui/TQUiLoader.prg
! Moved QUiLoader to qtgui (from qtcore) to fix circular component
dependency.
* contrib/hbqt/qth/QUrl.qth
! Fixed to not inherit from class present in qtgui.
(fixes dependency)
* contrib/hbqt/hbqt.h
- contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbslots.h
+ contrib/hbqt/qtcore/hbqtcore_garbage.h
+ contrib/hbqt/qtgui/hbqtgui_garbage.h
+ contrib/hbqt/qtnetwork/hbqtnetwork_garbage.h
- Deleted central header for GC functions.
+ Added per component GC function header.
- contrib/hbqt/filelist.hbm
- contrib/hbqt/hbqt.hbc
- contrib/hbqt/hbqt.hbp
- contrib/hbqt/hbqtmain.hbp
- contrib/hbqt/hbqtmains.hbp
- Deleted central hbqt holder project and .hbc file.
+ contrib/hbqt/hbqtcore.hbc
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/hbqtguis.hbp
+ contrib/hbqt/hbqtgui_filelist.hbm
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtnetworks.hbp
+ contrib/hbqt/hbqtcore_filelist.hbm
+ Merged qtmain lib content to qtcore and qtgui. This finally
drops the need for an additional wrapper lib compared to qt ones,
and it fixes build dependencies.
Formerly libs had circular dependencies, now qtcore is the
main lib and other qt* libs depend on this central one.
* contrib/hbqt/hbqt_common.hbm
+ Added qtcore to header path list.
* contrib/hbqt/tests/hbmk.hbm
* contrib/hbqt/tests/wvtqt.hbp
* contrib/hbxbp/hbxbp.hbc
* Updated to include per component .hbc files instead of
central hbqt.hbc.
* contrib/hbplist
* Changed central hbqt project to its three components.
* contrib/hbxbp/tests/wvtqt.hbp
! Fixed hbc reference.
; After these changes, the qt lib layout is much cleaner and
it makes it possible to build .dll versions of them. Except
still one issue.
; TODO: Further cleanup to file layout. Componentize docs,
qth files, move files in central dir to component dirs.
; TOFIX: hbqtcore references qtgui in QMESSAGEBOX() which is a
hbqtgui function. This has to be fixed. hbqtcore.dll is
not build because of this.
The easiest would be to rewrite HBQT_MESSAGEBOX() in
C++ to use QMessageBox QT class directly and place
this function into hbqtcore.
Pritpal, can you do it?
; TOFIX: If this is done it would be also good to fix hbqtcore -> qtgui
dependencies. Currently this is QMessageBox plus some stuff
referenced from hbqt_hbqabstractitemmodel.cpp. This latter
can pbly be solved by moving this HB class to hbqtgui.
* utils/hbmk2/hbmk2.prg
* Changed to not give fatal error if cmdline (or .hbp)
didn't contain any sources. Just warn. Required for hbqt.hbp,
which is a holder project without own output.
; NOTE: BTW HBQT fails very badly on any dynamic lib creating
attempt, and the reason is that it's still a monolithic
lib under the surface, just split some files into separate
libs to avoid cmdline length.
* contrib/make.hbs
% Code consolidation.
! Fixed recent regression, whereas now again the root project's
.hbc file will be added to the make process in HB_BUILD_CONTRIB_DYN
mode.
+ Changed the way filter is processed, now dependent packages will
always be built, so there is no need to manually pick all the
dependencies too.
* Internal terminology cleanup.
+ Will now also rebuild the _dependencies_ in HB_BUILD_CONTRIB_DYN mode.
- Deleted forcing English language for hbmk2 output.
; Regressions are possible
; NOTE: This dynamic stuff is a real can of worms. Virtually infinite
combinations of dynamic vs static libs may be supported, plus
there is ST vs MT issue, where we must decide about this at
dynlib build time, and f.e. what happens when trying to load
two .dlls one with was linked against MT Harbour and the other
against ST? It's a combinatorical explosion.
* src/vm/vmmt/Makefile
! Fixed missing procaddr.c causing unresolved externals when creating
MT mode dynlibs.
* config/global.mk
! Attempt to fix LD_LIBRARY_PATH problem, adding dynamic lib build
dir to this envvar while doing the build, pls test it, I didn't.
+ contrib/hbplist
- contrib/pkglist
* Renamed.
* contrib/hbct/ctwin.h
! Added missing HB_EXPORT.
* contrib/xhb/xhb.hbp
* contrib/hbgd/hbgd.hbp
! Added missing project references also to .hbp files.
* utils/hbmk2/hbmk2.prg
! Fixed regression with mingw -hbdyn after adding new stub which
stole the show by explicitly exporting one symbol which (due
to autoexport function in mingw) prevented regular symbols to
be exported. This fix will remove the exception so far applied
to mingw/cygwin compilers where HB_DYNLIB was not used with these,
now it's used equally on all compilers/platforms. For this to
be effective, it should be noted that HB_EXPORT must be used
in all public declarations, even in contrib.
! Fix (?) to not include MAIN proc force code when building with
hbmaindllp.
* contrib/xhb/thtm.prg
% Changed hbct LTOC to simple iif()
; TOFIX: xhb makes reference to (deprecated) hb_symEval symbol:
Info: resolving _hb_symEval by linking to __imp__hb_symEval (auto-import)
* contrib/rddsql/hbrddsql.h
! Added HB_EXTERN_BEGIN/END
! Added HB_EXPORT
! Added extern
* contrib/sddoci/sddoci.hbp
! Restored some flags present in old Makefile to make it
work with mingw and bcc.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt.h
! Fixed to add HB_EXPORT to public declarations.
; TOFIX: hbqt still doesn't link in hbdyn mode.
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/doc/en/*.txt
* Regenerated.
* contrib/hbqt/hbqt.hbc
! Fixed to not include QtUiTools in -hbdyn mode. It creates duplicate
symbols at link. Maybe this is not the right fix, go figure.
(HB_STATIC_QT mode still has to be checked)
; TODO: Add ${__HB_DYN__} to all .hbc files.
* utils/hbmk2/hbmk2.prg
+ -implib= option now accepts filename, too (exactly like -o option)
So it's possible to manually set the generated implib lib in
-hbdyn (and -hbexe) modes.
* contrib/hbpost.hbm
+ Moved the _dll/_exe implib output name postfixing logic from
hbmk2 (though hbmk2 will still keep appending these by default)
This way the "_dll" postfix thing is fully controlled by make.hbs
and hbpost.hbm, no hidden "agreements" with hbmk2.
* config/global.mk
+ Added log warning, if the source tree is modified.
* utils/hbmk2/hbmk2.prg
+ Will now autodetect /bin/plat/comp bin dir, if present.
! Fixed to set dynlib dir to bin dir on non-*nix platforms.
As a conseqeunce bin dir will now be added to the libpath
list on these platforms. Allowing to access .dlls directly
in compilers that support it (mingw).
! Fixed to use HB_INSTALL_PREFIX instead of bin dir as a base
to find addons/contribs dir structures (for .hbc autofind).
! Fixed to really include hbmaindllp stub added in recent commit.
Anyhow, loading contrib .dlls dynamically still don't work.
* contrib/make.hbs
! Fixed to honor user setting when creating dynlib in stdalone mode.
* contrib/hbcomm/hbcomm.prg
* space @ EOL.
* utils/hbmk2/hbmk2.prg
+ Added -depimplib[-] option to contrib implib creation for
dependency dlls.
+ Added -autohbm[-] cmdline-only option to disable processing of
hbmk.hbm in current directory.
* contrib/hbpost.hbm
+ Disabled implib creation for dependency dlls for HB_BUILD_CONTRIB_DYN
mode.
* contrib/hbgd/hbgd.hbp
! Fixed to use .lib as implib source for coff-compatible targets and mingw.
; NOTE: Successfully created a small test app which uses harbour.dll and
contrib .dlls:
'contrib\hbct\tests\hbmk2 addascii.prg -lhbct_dll -shared -autohbm-'
'contrib\hbpgsql\tests\hbmk2 async.prg -lhbpgsql_dll -shared -autohbm-'
(-autohbm is there only to disable hbmk.hbm processing)
Quite nice, isn't it?
For these examples, there are problems:
'contrib\hbblat\tests\hbmk2 blatcmd.prg -lhbblat_dll -lhbwin_dll -shared -autohbm-'
It's showing application errro 0xc0000142.
For this other one:
'contrib\hbgd\tests\hbmk2 barms.prg -lhbgd_dll -shared -autohbm-'
It's showing this RTE:
---
Error BASE/3003 Cannot find super class: __CLSINSTSUPER
Called from __CLSINSTSUPER(0)
Called from HBCLASS:CREATE(0)
Called from TCODE(0)
Called from MAIN(30)
---
"Almost" there. If you have any idea why it fails, pls tell.
Loading contrib pcode .dlls dynamically:
--- hbmk2 testdyn.prg -shared -autohbm-
DYNAMIC CHARADD
PROCEDURE Main()
LOCAL l := hb_libLoad( "hbct.dll" )
IF ! Empty( l )
QOUT( CHARADD( "abc", Chr( 1 ) ) )
ENDIF
RETURN
---
Running it results in:
---
Error BASE/1001 Undefined function: CHARADD
Called from CHARADD(0)
Called from MAIN(7)
---