* harbour/src/pp/Makefile
* harbour/src/pp/hbpp.c
! fixed compilation with HB_DYNLIB macro
- harbour/src/vm/maindll.c
- removed unused dummy file
* harbour/src/vm/Makefile
* harbour/include/hbapi.h
+ harbour/src/vm/procaddr.c
+ added hb_vmProcAddress() function
* harbour/include/hbdefs.h
+ added HB_EXPORT_ATTR and HB_IMPORT_ATTR macros - they are always
defined regardless of HB_DYNLIB macro state
* harbour/src/vm/maindllh/Makefile
* disabled HB_DYNLIB
* harbour/src/vm/maindllp/Makefile
+ harbour/src/vm/maindllp/dllpcode.c
+ added new import library for PCODE DLLs. It contains wrappers for
hb_vmProcessSymbols() and hb_vmExecute() implemented in a way
which creates minimal speed overhead.
+ added error reporting (MessageBox()) when redirected functions
cannot be found.
+ added hb_dllGetProcAddress() C function
* harbour/include/hbtypes.h
- harbour/src/vm/maindllp.c
+ harbour/src/vm/maindllp/dllext.c
* moved old wrappers to some of extended and array API functions
into separate file
* updated to use hb_dllGetProcAddress()
- removed functions which should not be used by user code
% cleaned, optimized and added error reporting to function wrappers.
I do not know who chose exported functions but it looks like a
quite random set which should be extended for real functionality.
If someone is interested then he can do that. I updated this file
only for backward compatibility.
Above modifications allows to use PCODE DLLs with any application
also static ones using Harbour compiled without exported symbols.
It's enough to link it with this function:
HB_EXPORT_ATTR PHB_FUNC dll_hb_vmProcAddress( const char * szFuncName )
{
return hb_vmProcAddress( szFuncName );
}
The official form of including above function to final binaries is not
defined yet.