Newsgroup: it.comp.lang.c++
Titolo: Borland C++ Compiler 5.5

Ho scaricato dalla inprise questo tool, ma ho avuto la sgradita sorpresa
che mancano degli header. In particolare in rpc.h si fa riferimento
ad esempio a rpcerr.h che non e` presente.
Sia pure barbaramente, ho risolto il problema, ma vorrei sapere se
qualcun altro ha avuto problemi simili?
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------


Anche per me è lo stesso.
Ma leggendo attentamente si vede che tale header è incluso se è definita
la macro __RPC_MAC__ .
Presumo che questa macro sia definita per sistemi Macintosh mentre il tool
è per WIN32.
Manlio Perillo

ad esempio a rpcerr.h che non e` presente.
Ti riferisci al Builder o al piu' vecchio Borland C++ 5.02?
Mi dai la url cosi' faccio un salto?
Grazie.
Bye.
-- 
Bye.
Joseph Parrello - OWL/C++ Programmer
http://JoParrello.freeweb.org
(
jopar...@geocities.com
)


L'indirizzo č: 
http://www.borland.com/bcppbuilder/freecompiler/
Il compilatore č gratis (basta registrarsi); inoltre viene fornito solo il
necessario
per compilare dalla linea di comando (compilatore BCC32, linker ILINK32,
MAKE etc) insieme alla RTL e STL e ai header della microsoft (directX,
wininet etc)
Manlio Perillo

è per WIN32.
Grazie mille, in effetti non avevo dato una occhiata piu` approfondita
all'header. Il problema era spuntato ricompilando un programma (CLIPS)
che sto utilizzando per sviluppare un sistema esperto. In un header
di questo programma purtroppo viene definita la macro MAC e questo
causa la definizione di __RPC_MAC__ su rpc.h con tutte le conseguenze
del caso. Mi sa che dovro` cercare una soluzione...



Sono contento di esserti stato di aiuto.
Siccome il tuo problema mi interessa (potrebbe capitare anche a me ) ci ho
pensato un pò su.
Ecco cosa ha assemblato il mio cervello:
1) con grep (incluso nel tool) cerca tutte le occorrenze della macro MAC nel
    tuo  programma.
    Ad esempio grep -w "MAC" *.*
    Una volta trovate puoi cambiare nome alla macro.
2) se non vuoi / puoi modificare il tuo programma allora si può fare una
    piccola modifica  agli header forniti con il tool.
    Sempre usando grep trova tutte le occorrenza della macro MAC nei
    suddetti header.
    Gli header dovrebbero essere:
    hlguids.h       hlink.h      richole.h     rpc.h    wabdefs.h.
    Innanzitutto fai una copia di backup di questi files.
    Inserisci all'inizio di ciascun header il codice:
           #if defined(MAC)
               #define  OTHER_MAC_DEFINED
               #undef MAC
           #endif
   mentre alla fine:
           #if defined OTHER_MAC_DEFINED
               #define MAC
               #undef OTHER_MAC_DEFINED
           #endif
    Volendo puoi inserire questo codice nel tuo programma prima di includere
    un header della Borland (ma è più scomodo).
    Ad esempio
           #if defined(MAC)
               #define  OTHER_MAC_DEFINED
               #undef MAC
           #endif
           #include <Borland_header>
           #if defined OTHER_MAC_DEFINED
               #define MAC
               #undef OTHER_MAC_DEFINED
           #endif
           // resto del programma
La soluzione 2 è la più semplice e indolore che sono riuscito a
immaginare (infatti la macro MAC non è mai usata, a meno che non compili in
ambiente  Macintosh).
Se hai trovato una soluzione migliore o hai dei commenti fammi sapere.
Manlio Perillo