compilar archivos C

Post Reply
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

compilar archivos C

Post by Patricio Avalos Aguirre »

Estimados

Estoy tratando de modificar el menus.c que se encuentra en
c:\fwh\source\winapi, pero al anexarlo al la libreria
fivehC.lib me arroja que no existen varias funciones

Code: Select all

Compiling...
c:\borland\bcc55\bin\ilink32 -Gn -aa -Tpe -s -v @b32.bc
RMAKE 1.5  Copyright (c) 1989-1995 Computer Associates International, Inc.
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_GETSUBMENU' referenced from C:\FWH\LIB\FIVEH
X.LIB|MDICLIEN
Error: Unresolved external '_HB_FUN_DRAWMENUBAR' referenced from C:\FWH\LIB\FIVE
HX.LIB|MDICLIEN
lo estoy haciendo asi

primero saque el original menus.obj de fivehc.lib y lo respalde en un carpeta diferente

tlib fivehc.lib *menus.c

luego compile menus.c que se encuentra en c:\fwh\source\winapi\menus.c

Code: Select all

bcc32.exe -tWM -DHB_GUI -DHB_API_MACROS -DHB_STACK_MACROS -DHB_FM_STATISTICS_OFF -d -a8 -OS -O2 -5 -c MENUS.C

TLIB FIVEHC +- ..\SOURCE\WINAPI\MENUS.OBJ
y si vuelvo anexar el menus.obj del original funciona sin ningun problema


Al parecer le faltan funciones o algo estoy haciendo mal
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Patricio,

Comprueba si está la función GetSubMenu() en el fichero menus.c que has modificado
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Gracias antonio por responder

si existe la funcion GetSubMenu

Code: Select all

CLIPPER GETSUBMENU( PARAMS )    // hMenu, nPos
{
   _retnl( ( LONG ) GetSubMenu( ( HMENU ) _parnl( 1 ), _parni( 2 ) ) );
}
a lo mejor son los parametros de la compilacion

lo unico que agregue a este archivo(menus.c)

Code: Select all

#ifdef __HARBOUR__
   CLIPPER MENUDRAWITEM( PARAMS ) // ( pDrawItemStruct, cPrompt, lTop, hBitmap )
#else
   CLIPPER MENUDRAWIT( PARAMS ) // EM( pDrawItemStruct, cPrompt, lTop, hBitmap )
#endif
{
   LPDRAWITEMSTRUCT lpdis = ( LPDRAWITEMSTRUCT ) _parnl( 1 );
   LPSTR szPrompt = _parc( 2 );
   BOOL bTab = bStrAt( 9, szPrompt );
   WORD wLen;
   //BOOL bTop = _parl( 3 );
   HPEN hNormal;
   HBRUSH hBrush;
   LOGBRUSH lb;
   RECT rct;
   HBITMAP hBmp = ( HBITMAP ) _parnl( 4 );

   switch( lpdis->itemAction )
   {
      case ODA_DRAWENTIRE:
      case ODA_SELECT:
           lb.lbStyle = BS_SOLID;

           lb.lbColor = GetSysColor( COLOR_MENU );
           hBrush = CreateBrushIndirect( &lb );
           FillRect( lpdis->hDC, &lpdis->rcItem, hBrush );
           DeleteObject( hBrush );

		   //PATRICK
		   SetBkColor( lpdis->hDC, 8421504 );
		   //FIN PATRICK
estoy probando de colocar un color al menu
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Patricio,

Compila simplemente asi:

bcc32 -c -Ipath_a_includes menus.c
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

igual el error

estoy viendo la libreria fivehc.lib

tlib fivehc,fivehc.prg

Code: Select all

__WNDPRO	size = 149
	_HB_FUN_WININSPECT                __DbgWndProc
	__WndProc                         _bDbgActive
	_bDbgBreak                      

menus   	size = 1874
	APPENDMENU                        CHECKMENUI
	CREATEMENU                        CREATEPOPU
	DESTROYMEN                        DRAWMENUBA
	ENABLEMENU                        GETDRAWITE
	GETDRAWMEN                        GETMEAITEM
	GETMENUSTA                        GETMENUSTR
	GETMITEMCO                        GETMITEMID
	GETSUBMENU                        GETSYSTEMM
	HILITEMENU                        INSERTMENU
	ISMENU                            LOADMENU
	MENUDRAWIT                        MENUMEASUR
	MODIFYMENU                        REMOVEMENU
	SETMENU                           TRACKPOPUP

y esta es de la original, hay diferencia??

Code: Select all

MENUS   	size = 1801
	_HB_FUN_APPENDMENU                _HB_FUN_CHECKMENUITEM
	_HB_FUN_CREATEMENU                _HB_FUN_CREATEPOPUPMENU
	_HB_FUN_DESTROYMENU               _HB_FUN_DRAWMENUBAR
	_HB_FUN_ENABLEMENUITEM            _HB_FUN_GETDRAWITEM
	_HB_FUN_GETDRAWMENU               _HB_FUN_GETMEAITEM
	_HB_FUN_GETMENUSTATE              _HB_FUN_GETMENUSTRING
	_HB_FUN_GETMITEMCOUNT             _HB_FUN_GETMITEMID
	_HB_FUN_GETSUBMENU                _HB_FUN_GETSYSTEMMENU
	_HB_FUN_HILITEMENUITEM            _HB_FUN_INSERTMENU
	_HB_FUN_ISMENU                    _HB_FUN_LOADMENU
	_HB_FUN_MENUDRAWITEM              _HB_FUN_MENUMEASUREITEM
	_HB_FUN_MODIFYMENU                _HB_FUN_REMOVEMENU
	_HB_FUN_SETMENU                   _HB_FUN_TRACKPOPUP
y existe, que raro.. :-(
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Patricio,

Faltan los prefijos (_HB_FUN_) de todas las funciones :-)

Tienes que llamar a fwh/tools/clp2harb.exe menus.c menus2.c y luego compilar menus2.c
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

No quiere nada con migo el menus.c :-(

Code: Select all

C:\FWH\SOURCE\WINAPI>\fwh\tools\clp2harb menus.c menus2.c

C:\FWH\SOURCE\WINAPI>bcc32 -c -IC:\Borland\BCC55\Include;c:\harbour\include menu
s2.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
menus2.c:
Warning W8070 menus2.c 24: Function should return a value in function HB_FUNC
Warning W8057 menus2.c 24: Parameter 'CREATEMENU' is never used in function HB_F
UNC
Error E2238 menus2.c 33: Multiple declaration for 'HB_FUNC'
Error E2344 menus2.c 21: Earlier declaration of 'HB_FUNC'
Warning W8070 menus2.c 35: Function should return a value in function HB_FUNC
Warning W8057 menus2.c 35: Parameter 'CREATEPOPU' is never used in function HB_F
UNC
Error E2238 menus2.c 40: Multiple declaration for 'HB_FUNC'
Error E2344 menus2.c 31: Earlier declaration of 'HB_FUNC'
Warning W8070 menus2.c 43: Function should return a value in function HB_FUNC
Warning W8057 menus2.c 43: Parameter 'TRACKPOPUP' is never used in function HB_F
UNC
Error E2238 menus2.c 52: Multiple declaration for 'HB_FUNC'
Error E2344 menus2.c 39: Earlier declaration of 'HB_FUNC'
Warning W8070 menus2.c 54: Function should return a value in function HB_FUNC
Warning W8057 menus2.c 54: Parameter 'ENABLEMENU' is never used in function HB_F
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Patricio,

Has modificado los includes que lleva menus.c al principio ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Antonio, para nada, es primera vez que le hecho una mirada al la carpeta winapi, siempre he metido mano a las carpeta clases
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Patricio,

Dinos exactamente que código quieres incluir en menus.c y lo compilamos aqui y te enviamos el OBJ
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Patricio Avalos Aguirre
Posts: 1028
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile
Contact:

Post by Patricio Avalos Aguirre »

Gracias antonio por tu interes en ayudarme

pero he solucionado el problema

resulta que en c:\fwh\source\winapi\menus.c tiene estos include

Code: Select all

#include <WinTen.h>
#include <Windows.h>
#include <ClipApi.h>
lo he solucionado anteponiendo esto

Code: Select all

#include "hbapi.h"
#include <WinTen.h>
#include <Windows.h>
#include <ClipApi.h>
a lo mejor era obvio colocarlo este include, pero como sabes estoy iniciandome en esto de C

muchas gracias por la ayuda...

pd. siempre se aprende algo nuevo :-)
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
Post Reply