Dave,
Just to be sure that HB_EXPORT gets properly translated, better replace those lines as I have explained you and compile it again.
Dave,
Just to be sure that HB_EXPORT gets properly translated, better replace those lines as I have explained you and compile it again.
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 9.02 - Feb. 2009 Harbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2009 for Microsoft Windows 95/98/NT/2000/ME and XP ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
@echo off
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST
ECHO Compiling...
set hdir=c:\harbour
set bcdir=c:\bcc55
%bcdir%\bin\bcc32 -c -D__HB_DYNLIB -I%hdir%\include;%bcdir%\include -L%bcdir%\..\lib maindll.c
%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /w /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT
echo -O2 -I%hdir%\include;%bcdir%\include %1.c > b32.bc
%bcdir%\bin\bcc32 -M -c @b32.bc
:ENDCOMPILE
IF EXIST %1.rc %bcdir%\bin\brc32 -r %1
echo c0d32.obj + %hdir%\obj\b32\maindll.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.dll, + >> b32.bc
echo %1.map, + >> b32.bc
echo ..\lib\FiveH.lib ..\lib\FiveHC.lib + >> b32.bc
ECHO %hdir%\lib\hbrtl.lib + >> b32.bc
ECHO %hdir%\lib\hbvm.lib + >> b32.bc
ECHO %hdir%\lib\gtgui.lib + >> b32.bc
ECHO %hdir%\lib\hblang.lib + >> b32.bc
ECHO %hdir%\lib\hbmacro.lib + >> b32.bc
ECHO %hdir%\lib\hbrdd.lib + >> b32.bc
ECHO %hdir%\lib\rddntx.lib + >> b32.bc
ECHO %hdir%\lib\rddcdx.lib + >> b32.bc
ECHO %hdir%\lib\hbdebug.lib + >> b32.bc
ECHO %hdir%\lib\hbcommon.lib + >> b32.bc
ECHO %hdir%\lib\hbpp.lib + >> b32.bc
ECHO %hdir%\lib\hbmzip.lib + >> b32.bc
ECHO %hdir%\lib\hbsix.lib + >> b32.bc
ECHO %hdir%\lib\rddfpt.lib + >> b32.bc
echo %hdir%\lib\hbwin.lib + >> b32.bc
ECHO %bcdir%\lib\cw32.lib + >> b32.bc
ECHO %bcdir%\lib\import32.lib + >> b32.bc
ECHO %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
ECHO %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib, >> b32.bc
IF EXIST %1.res echo %1.res >> b32.bc
%bcdir%\bin\ilink32 -Tpd -aa -L%bcdir%\lib;%hdir%\lib @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * self contained DLL successfully built
GOTO EXIT
ECHO
rem delete temporary files
@del %1.c
@del %1.il?
:LINKERROR
ECHO * There are errors
GOTO EXIT
:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi›n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT
:NOEXIST
ECHO The specified PRG %1 does not exist
:EXIT/*
* $Id: maindll.c 6764 2006-07-18 01:30:23Z druzus $
*/
/*
* Harbour Project source code:
* Windows self-contained DLL entry point
*
* Copyright 1999 Antonio Linares <alinares@fivetech.com>
* www - <!-- m --><a class="postlink" href="http://www.harbour-project.org">http://www.harbour-project.org</a><!-- m -->
*
* 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 of the License, or
* (at your option) any later version, with one exception:
*
* 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 <!-- m --><a class="postlink" href="http://www.gnu.org/">http://www.gnu.org/</a><!-- m -->).
*
* 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.
*
*/
#define HB_OS_WIN_32_USED
#include "hbvm.h"
#include "hbapiitm.h"
#if defined(HB_OS_WIN_32)
BOOL WINAPI _export DllEntryPoint( HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved )
{
HB_TRACE( HB_TR_DEBUG, ("DllEntryPoint(%p, %p, %p)", hInstance, fdwReason,
pvReserved ) );
HB_SYMBOL_UNUSED( hInstance );
HB_SYMBOL_UNUSED( fdwReason );
HB_SYMBOL_UNUSED( pvReserved );
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
hb_vmInit( FALSE ); /* Don't execute first linked symbol */
break;
case DLL_PROCESS_DETACH:
hb_vmQuit();
break;
}
return TRUE;
}
LONG PASCAL _export HBDLLENTRY( char * cProcName )
{
hb_itemDoC( cProcName, 0, 0 );
return 0;
}
LONG PASCAL _export HBDLLENTRY1( char * cProcName, LONG pItem )
{
hb_itemDoC( cProcName, 1, ( PHB_ITEM ) pItem, 0 );
return 0;
}
LONG PASCAL _export HBDLLENTRY2( char * cProcName, LONG pItem1, LONG pItem2 )
{
hb_itemDoC( cProcName, 2, ( PHB_ITEM ) pItem1, ( PHB_ITEM ) pItem2, 0 );
return 0;
}
#endif/*
* $Id: maindll.c 6764 2006-07-18 01:30:23Z druzus $
*/
/*
* Harbour Project source code:
* Windows self-contained DLL entry point
*
* Copyright 1999 Antonio Linares <alinares@fivetech.com>
* www - <!-- m --><a class="postlink" href="http://www.harbour-project.org">http://www.harbour-project.org</a><!-- m -->
*
* 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 of the License, or
* (at your option) any later version, with one exception:
*
* 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 <!-- m --><a class="postlink" href="http://www.gnu.org/">http://www.gnu.org/</a><!-- m -->).
*
* 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.
*
*/
#define HB_OS_WIN_32_USED
#include "hbvm.h"
#include "hbapiitm.h"
#if defined(HB_OS_WIN_32)
BOOL WINAPI _export DllEntryPoint( HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved )
{
HB_TRACE( HB_TR_DEBUG, ("DllEntryPoint(%p, %p, %p)", hInstance, fdwReason,
pvReserved ) );
HB_SYMBOL_UNUSED( hInstance );
HB_SYMBOL_UNUSED( fdwReason );
HB_SYMBOL_UNUSED( pvReserved );
MessageBox( 0, "Inside DllEntryPoint", "1", 0 );
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
hb_vmInit( FALSE ); /* Don't execute first linked symbol */
MessageBox( 0, "Inside DllEntryPoint", "2", 0 );
break;
case DLL_PROCESS_DETACH:
hb_vmQuit();
break;
}
MessageBox( 0, "Inside DllEntryPoint", "3", 0 );
return TRUE;
}
LONG PASCAL _export HBDLLENTRY( char * cProcName )
{
MessageBox( 0, "Inside HBDLLENTRY", "1", 0 );
hb_itemDoC( cProcName, 0, 0 );
return 0;
}
LONG PASCAL _export HBDLLENTRY1( char * cProcName, LONG pItem )
{
MessageBox( 0, "Inside HBDLLENTRY1", "1", 0 );
hb_itemDoC( cProcName, 1, ( PHB_ITEM ) pItem, 0 );
return 0;
}
LONG PASCAL _export HBDLLENTRY2( char * cProcName, LONG pItem1, LONG pItem2 )
{
MessageBox( 0, "Inside HBDLLENTRY2", "1", 0 );
hb_itemDoC( cProcName, 2, ( PHB_ITEM ) pItem1, ( PHB_ITEM ) pItem2, 0 );
return 0;
}
#endifAntonio,
Got to Inside DllEntryPoint 1
then the ususal exception.
Thanks
case DLL_PROCESS_ATTACH:
MessageBox( 0, "Inside DllEntryPoint", "before vmInit()", 0 );
hb_vmInit( FALSE ); /* Don't execute first linked symbol */
MessageBox( 0, "Inside DllEntryPoint", "after vmInit()", 0 );
break;Antonio,
Made it to before VMinit
then exception
Thanks
Dave,
Do you have experience building Harbour yourself ?
We should place several traces in harbour\source\vm\hvm.c function hb_vmInit() to check where it is failing.
Its easy. I can explain you how to do it.
Antonio,
I tried once, but failed, I will be glad to try again.
If you have anything you want me to know, and or want to point me to
I would appreciate it.
I will plan that as my first project in the AM.
Thanks
c:\"Program Files"\svn\bin\svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour harbourc:\"Program Files"\subversion\bin\svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour harbourSET LIB=c:\bcc55\lib
SET INCLUDE=c:\bcc55\include
SET PATH=c:\bcc55\bin;%PATH%
SET HB_CC_NAME=b32
SET HB_ARCHITECTURE=w32
SET HB_GT_LIB=gtgui
SET HB_GT_DEFAULT=gui
SET HB_BUILD_MODE=c
SET C_USR= -DHARBOUR_MAIN_WIN -DHB_DYNLIB -DHB_FM_STATISTICS_OFF -d -a8 -OS -O2 -5 -6
SET HB_BUILD_DLL=no
SET HB_MAKE_PROGRAM=c:\bcc55\bin\make.exe
make_b32Antonio,
I get :
'make_b32' is not recognized as an internal or external command,
operable program or batch file.
I will look for the make_b32.bat
Thanks
Antonio Linares wrote:Dave,
Now please create a makeb32.bat where make_b32.bat is located:
makeb32.bat
SET LIB=c:\bcc55\lib SET INCLUDE=c:\bcc55\include SET PATH=c:\bcc55\bin;%PATH% SET HB_CC_NAME=b32 SET HB_ARCHITECTURE=w32 SET HB_GT_LIB=gtgui SET HB_GT_DEFAULT=gui SET HB_BUILD_MODE=c SET C_USR= -DHARBOUR_MAIN_WIN -DHB_DYNLIB -DHB_FM_STATISTICS_OFF -d -a8 -OS -O2 -5 -6 SET HB_BUILD_DLL=no SET HB_MAKE_PROGRAM=c:\bcc55\bin\make.exe make_b32
This batch file should properly create harbour.exe and the libraries.
@ ECHO OFF
SET PATH=e:\bcc55\bin;%PATH%
SET HB_COMPILER=bcc
SET HB_USER_CFLAGS=-DHB_FM_STATISTICS_OFF
make_gnu clean install > make_gnu.log 2>&1Enrico,
Thanks for the info.
I was not aware of such recent change.
mingw32-make.exe[2]: [install] Error 1 (ignored)
mingw32-make.exe[2]: Leaving directory `C:/hs/harbour/doc/en'
mingw32-make.exe[1]: Leaving directory `C:/hs/harbour/doc'
mingw32-make.exe -C include install
mingw32-make.exe[1]: Entering directory `C:/hs/harbour/include'
cmd.exe /c for %f in (clipdefs.h extend.h hbapi.h hbapicdp.h hbapicls.h hbapidbg.h hbapierr.h hbapifs.h hbapigt.h hbapiitm.h hbapilng.h hbapirdd.h hbassert.h hbatomic.h hbchksum.h hbcomp.h hbcompdf.h hbdate.h hbdbf.h hbdbferr.h hbdbsort.h hbdefs.h hberrors.h hbexprop.h hbgtcore.h hbhash.h hbinit.h hbmacro.h hbmath.h hbpcode.h hbpp.h hbrddcdx.h hbrdddbf.h hbrddfpt.h hbrdddel.h hbrddntx.h hbrddsdf.h hbrddnsx.h hbregex.h hbset.h hbsetup.h hbstack.h hbsxfunc.h hbthread.h hbtrace.h hbtypes.h hbver.h hbvm.h hbvmint.h hbvmopt.h hbvmpub.h hbxvm.h hbwince.h hbzlib.h hb_io.h achoice.ch assert.ch box.ch button.ch blob.ch color.ch common.ch dbedit.ch dbinfo.ch dbstruct.ch directry.ch error.ch fileio.ch getexit.ch hbclass.ch hbdebug.ch hbextern.ch hbgetcmt.ch hbgfx.ch hbgfxdef.ch hbgtinfo.ch hbinkey.ch hblang.ch hbmacro.ch hbmath.ch hbmemory.ch hbmemvar.ch hboo.ch hbpers.ch hbsetup.ch hbsix.ch hbstdgen.ch hbthread.ch hbusrrdd.ch hbver.ch hbzlib.ch inkey.ch memoedit.ch ord.ch rddsys.ch reserved.ch set.ch setcurs.ch simpleio.ch std.ch hbsxdef.ch tbrowse.ch error.api extend.api filesys.api fm.api gt.api hbundoc.api item.api rdd.api vm.api ) do copy %f C:\hs\harbour\\include
C:\hs\harbour\include>copy clipdefs.h C:\hs\harbour\include
The file cannot be copied onto itself.
0 file(s) copied.
C:\hs\harbour\include>copy extend.h C:\hs\harbour\include
The file cannot be copied onto itself.
0 file(s) copied.
C:\hs\harbour\include>copy hbapi.h C:\hs\harbour\include
The file cannot be copied onto itself.
0 file(s) copied.mingw32-make.exe[3]: Entering directory `C:/hs/harbour/source/common/win/bcc'
bcc32.exe -I. -I../../../../include -q -d -Q -w -w-sig- -tWM -4 -O2 -OS -Ov -Oi -Oc -DHB_FM_STATISTICS_OFF -c ../../expropt1.c -oexpropt1.obj
../../expropt1.c:
Error E2209 ../../expropt1.c 58: Unable to open include file 'math.h'
Error E2209 ../../../../include\hbmacro.h 56: Unable to open include file 'stdio.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
Error E2209 ../../../../include\hbmacro.h 57: Unable to open include file 'stdlib.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
Error E2209 ../../../../include\hbmacro.h 58: Unable to open include file 'string.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
Error E2209 ../../../../include\hbmacro.h 59: Unable to open include file 'limits.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
Error E2209 ../../../../include\hbmacro.h 60: Unable to open include file 'time.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
Error E2209 ../../../../include\hbdefs.h 56: Unable to open include file 'stdarg.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
Error E2209 ../../../../include\hbdefs.h 57: Unable to open include file 'stdio.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
Error E2209 ../../../../include\hbdefs.h 58: Unable to open include file 'stdlib.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
Error E2209 ../../../../include\hbdefs.h 59: Unable to open include file 'string.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
Error E2209 ../../../../include\hbdefs.h 60: Unable to open include file 'limits.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
Error E2209 ../../../../include\hbsetup.h 56: Unable to open include file 'limits.h'
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
+ ../../../../include\hbdefs.h, line 62: #include ../../../../include\hbsetup.h
Error E2141 ../../../../include\hbwince.h 184: Declaration syntax error
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h
+ ../../../../include\hbcompdf.h, line 57: #include ../../../../include\hbapi.h
+ ../../../../include\hbapi.h, line 61: #include ../../../../include\hbvmpub.h
+ ../../../../include\hbvmpub.h, line 56: #include ../../../../include\hbdefs.h
+ ../../../../include\hbdefs.h, line 189: #include ../../../../include\hbwince.h
Error E2293 ../../../../include\hbwince.h 185: ) expected
+ Full parser context
+ ../../expropt1.c, line 59: #include ../../../../include\hbmacro.h
+ ../../../../include\hbmacro.h, line 62: #include ../../../../include\hbcompdf.h