mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c++
Titolo: Un modo intricato di distruggere un oggetto

Salve a tutti,
cosa succede in una situazione del genere?
* ho un oggetto della classe A che istanzia un oggetto della classe B
(mantenedone ad es. un puntatore: "B* b")
* nel costruttore di B passo un puntatore all'oggetto A (es: "A* a")
* B chiama un metodo in A che distrugge B (es: B chiama "a->destroy()"
che fa un "delete b;")
Quando la funzione di B ritorna, B non esiste piu'... cosa succede?
Stavo ragionando su una situazione piu' complicata, ma credo che sia
riducibile a questo schema.
Thx!
Pleg

 Quando la funzione di B ritorna, B non esiste piu'... cosa succede?
Un crash. Certo che hai un'architettura ben strana.


Secondo me dipende da cosa succede dopo il delete b;
in particolare cosa succede dentro a B dopo aver chiamato a->destroy()
che a tutti gli effetti � equivalente a un delete this;
Se rispetti le regole che trovi qui
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.15
non dovrebbe succedere nulla di male. Il delete this; � spesso usato da 
oggetti a distruzione automatica basata su reference counting (ad 
esempio gli oggetti COM)
Non � vero che B non esiste pi� (anche perch� hai scritto che B � una 
classe).
Quello che non esiste pi� � l'istanza di B che avevi passato ad a.
Tutta la roba statica di b continua ad esistere e dovrebbe essere 
accessibile senza problema.
Come anche le variabili automatiche della funzione membro di B che 
chiama a->destroy()
HTH

 esempio gli oggetti COM)
Capito.  In effetti e' parecchio rischioso, ma al momento non mi viene
in mente un modo di evitarlo.
Per la cronaca, il problema vero e' questo (ed e' in Qt, non c++, ma
alla fien Qt compila in c++, quindi e' lo stesso):
* B e' una classe che implementa un protocollo di comunicazione verso
degli altri computer (e' una rete radio di pc); ogni oggetto si occupa
di parlare con un pc (implementa il protocollo di trasporto, eccetera)
* A possiede tutti gli oggetti istanziati da B (in pratica e' un MUX
verso la radio, fa si' che tutti gli oggetti 'b' condividano la stessa
risorsa fisica)
Gli oggetti 'b' hanno un timer: se entro un certo tempo non ricevono
un pacchetto dal pc di loro competenza, vanno in timeout e comunicano
ad 'a' che l'altro pc e' offline.  A questo punto, volevo fare che 'a'
distrugge l'oggetto 'b' in questione (non c'e' piu' bisogno di parlare
con quel pc remoto, e' spento).  Da cui il problema precedente: 'b'
manda un segnale a 'a', 'a' distrugge 'b', problema.
Ma come fare? Deve essere 'b' a comunicare ad 'a' che ormai lui e'
diventato inutile, e deve essere 'a' a distruggerlo ed aggiornare le
sue strutture interne.
Suggerimenti?
Thx,
Pleg

 Pleg
Secondo me, sarebbe meglio non mettere riferimenti di 'a' in 'b'.
Invece di chiamare da 'b' la funzione di 'a' che distrugge 'b', io 
imposterei una variabile stato di 'b' a "offline".
'a' fa un polling di tutti gli oggetti 'b' e distrugge tutti quelli che 
hanno lo stato "offline".
Newsgroup: it.comp.lang.c++
Titolo: membri static

Salve,
nel seguente codice e'  possibile inizializzare la x di C::f() ?
Con quale sintassi?
#include <iostream>
class C {
 public :
  void f() {
   static int x;
  };
};
Se fosse stata fuori dalla f() usavo la sintassi:
int C::x = 0;
ma essendo dentro non riesco ad accedere.
Grazie

Noixe ha scritto:

Ti sei praticamente risposto da solo: siccome č dentro, la inizializzi
dentro.
   class C
   {
   public :
      void f()
      {
         static int x = 0;
      }
   };
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 dentro.
Beh chiaro, io appunto chiedevo se esisteva una sintassi per inizializzare
dall'esterno ma evidentemente non c'e' :)
Ciao

Noixe ha scritto:

La sintassi per inizializzare un membro static di una classe c'č, ed č
quella che hai mostrato tu.
L'equivoco č che quella roba lě NON č il membro static di una classe, ma una
varibile static interna a una funzione, e di certo non c'č modo di
inizializzarla o referenziarla fuori dalla funzione.
Un membro static di una classe, con la sua inizializzazione, č cosě:
   class LaClasse
   {
      static int IlMembroStatic;
   };
   int LaClasse::IlMembroStatic = 0;
--
Cingar
P.S. Non so perché ma l'espressione "membro static" mi suona un casino
pornografica.


    int LaClasse::IlMembroStatic = 0;
oppure
     class LaClasse
     {
        static const int IlMembroStatic = 10;
        int ia[IlMembroStatic];  
     };
 
     const int LaClasse::IlMembroStatic;
-- 
Horst
Newsgroup: it.comp.lang.c++
Titolo: Caratteri nulli

Qualcuno mi può dire come eliminare i
caratteri nulli da una stringa.
Grazie
Rocco

caratteri nulli da una stringa.
Ad esempio (naturalmente coi vari #include per
<string>, <algorithm>, <iterator>):
std::string togli_nulli(const std::string& s)
{
    std::string result;
    std::remove_copy(s.begin(), s.end(),
        std::inserter(result, result.end()),
        0);
    return result;
}
Alex

 caratteri nulli da una stringa.
Se per stringa intendi un ( char * ) allora la domanda non ha senso dato
che una stringa di quel tipo non può contenere caratteri nulli ('\0') in
quanto tale carattere è utilizzato come terminatore della stringa
stessa.
Se intendi un array di char ( char [] ) allora basta copiarlo carattere
per carattere in un'altro array tralasciando quelli nulli (ti devi però
gestire in qualche modo la dimensione del secondo array, magari
lasciandolo eventualmente sovradimensionato oppure contandoti prima i
caratteri nulli da eliminare... ma allora l'array deve essere allocato
dinamicamente).
Se intendi le stringhe della libreria standard del C++ ( string ),
sebbene non so che senso abbia metterci dei '\0', puoi utilizzare la
stessa tecnica di cui sopra oppure vedere se esiste un metodo già pronto
che lo fa (io non te lo so dire).
EMG
Newsgroup: it.comp.lang.c++
Titolo: Problemi con i tamplate in Microsoft Visual C++

Salve a tutti, sono un neofita della programmazione in Visual C++.
Ho problemi nel compilare classi C++ (formate da due file: prova.h per la
dichiarazione e prova.cpp per la definizione) che utilizzano i Template con
il compilatore Microsoft Visual C++:
il Linker da il seguente errore
test.obj : error LNK2001: unresolved external symbol "public: __thiscall
MyClass<int>::~MyClas<int>(void)" (??1?$PrTempla@H@@QAE@XZ)
test.obj : error LNK2001: unresolved external symbol "public: __thiscall
MyClas<int>::MyClas<int>(void)" (??0?$PrTempla@H@@QAE@XZ)
Debug/test.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
in questo esempio la classe MyClass avente soltanto distruttore e
costruttore senza argomenti viene chiamata dal file Test .cpp per la
dichiarazione di una variabile nel seguente modo
MyClass<int> PROVA;
Se scrivo la classe in un unico file il problema scompare.
Se sapete il motivo di questa anomalia aiutatemi;
Alex

 Se scrivo la classe in un unico file il problema scompare.
La dichiarazione del template deve essere visibile nel file sorgente che
lo usa (quindi #incluso o dichiarato direttamente dentro a questo).
EMG

>Se scrivo la classe in un unico file il problema scompare.
Non e' un'anomalia. Le funzioni membro template di una classe template devono stare nel .h perche' vengono "completate" solo quando usi il template. Se le metti in un sorgente separato restano solo un modello incompleto che il compilatore non usa quando compila quel sorgente. In effetti ogni volta che usi il template con un tipo diverso vengono "create" funzioni membro diverse che hanno bisogno di una propria compilazione (e che quindi occupano anche spazio). Fortunatamente se usi due volte un template con lo stesso tipo le funzioni membro vengono "istanziate" una sola volta.
Antonio Donatiello

Devi necessariamente mettere in un unico file
tanto la dichiarazione quanto la definizione dei
template, questo per come vengono gestiti i
template.
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------
Newsgroup: it.comp.lang.c++
Titolo: Aiutoo

Salve a tutti!
Sto tentando di programmare un metronomo, sto usando VC++ 6.0 e sto pure
usando le MFC per
gestire il dialog.
Questo č il mio problema:
Alla pressione di Start dovrebbe partire il metronomo (in effetti parte),
mentre alla pressione di Stop si dovrebbe fermare. (cosa che non succede).
Per realizzare questo ho semplicemente dichiarato una variabile booleana
globale che viene
controllata ad ogni colpo del metronomo. Il tasto Stop non fa altro che
cambiare il valore
di questa variabile.
Il mio problema perň sta nel fatto che dal momento che premo Start, non ho
piů il contollo del
dialog finché la routine non finisce (cioč mai finché non premo stop): mi
spiego meglio, non č
che stop non funzioni, il fatto č che non riesco a spingerlo!!!
Per favore ditemi qualcosa!!!
Grazie.

mentre alla pressione di Stop si dovrebbe fermare. (cosa che non succede).
...
Asslutamente off-topic in questo gruppo ... comunque...
Ho l'impressione che tu non abbia chiara l'organizzazione generale
di un programma windows (loop dei messaggi, window procedure) e
come sono gestiti i dialog.
Per poter utilizzare decentemente le MFC sarebbe necessaria almeno
una conoscenza superficiale di questa organizzazione... per esempio
io sospetto che tu gestisca direttamente il disegno del metronomo
e le pause di attesa (non con un timer)... e che semplicemente
il tuo loop principale controlli la variabile e continui a disegnare
e fare pause aspettando che qualcuno la setti.
Purtroppo questo non succedera' mai perche' non essendoci nessuno
a processare la coda dei messaggi il pulsante non ha alcuna
possibilita' di essere premuto.
Se le parole "coda dei messaggi" non ti fanno capire immediatamente
il problema allora ti consiglio di prendere un buon testo di
programmazione Windows di base.
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff
Newsgroup: it.comp.lang.c++
Titolo: gestione di eventi per controlli creati dinamicamente

salve! ho un problema devo gestire l'evento OnClick su un controllo
TImage creato dinamicamente (con Borland C++ Builder3) il codice è il
seguente:
    image = new TImage(Form1);
    image->Parent = Form1;
    image->Name = "image"+contatore;       
    image->Picture->LoadFromFile("rosso.ico");
    image->OnClick = ciccio;
e ciccio è:
void __fastcall ciccio(TObject *Sender)
{
    Application->MessageBox("You clicked the image", "Click Message",
MB_OK);
}
il compilatore mi da il seguente errore:
[C++Error] Unit1.cpp(93): Cannot convert 'void (_fastcall
*)(System::TObject *)' to 'void (_fastcall * (_closure
)(System::TObject *))(System::TObject *)'.
potete aiutarmi a venirne fuori?
grazie!
beppemassi

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
server 
newsgroups.borland.com
 (prevalentemente in
inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Esiste un corso di C++ online ???

...

Newsgroup: it.comp.lang.c++
Titolo: [semi OT] Lippman.NET

"Tramite le mie conversazioni con il team di Visual C++ mi è divenuto
chiaro che Microsoft si è dedicata al fare di Visual C++.NET la miglior
implementazione del linguaggio di tutta l'industria."
Sono parole di Stan Lippman. Che dopo aver lavorato oltre un decennio
alla Bell con Bjarne Stroustrup e aver con questo sviluppato le prime
versioni del CFront (per chi non lo sapesse è il nome del compilatore
che diede nascita al vecchio C++), dopo aver lavorato come consulente e
trainer, dopo essere stato redattore di C++ Report per quattro anni e
dopo aver scritto molteplici articoli e libri (incluso "C++ Primer", ora
alla terza edizione), è stato assunto alla Microsoft e farà (anzi, fa
già) parte (nel ruolo di architetto) del gruppo di programmatori che si
occupano dei sistemi di sviluppo (fra cui VC++).
Speriamo che per lo meno lui riesca ad orientarli meglio verso la ISO
Compliance.
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Compliance.
Speriamo che non si faccia contagiare troppo dalla MS Philosophy
--
Rhymes - 
rhy...@myself.com
http://www.foxhound-games.it
"Sapete cosa fa un InputStream quando
gli si racconta una barzelletta? Reader..."

 Speriamo che non si faccia contagiare troppo dalla MS Philosophy
Di questo dubito: è già un pezzo che viene considerato un guru del C#
oltre che del C++. Ma almeno dovrebbe sapere che C++ è stato
standardizzato (è una provocazione, in realtà ci sono grosse forze in MS
che sanno benissimo cosa significa ISO C++. Solo che il lato commerciale
ha detto "prima .NET poi ISO". E dato che .NET non è un bruscolino una
manciata di anni l'hanno persa.).


manciata di anni l'hanno persa.).
Sono daccordo ma spero che una buona volta la MS cambia la sua
filosofia (tanto Bill di soldi ne ha già tanti...) e metta prima gli
standard approvati dalla comunità (ISO) e poi le sue piattaforme
rivoluzionarie (.NET)


 che sanno benissimo cosa significa ISO C++.
E vorrei vedere, visto che in questi giorni stanno ospitando a Redmond
l'incontro del comitato di standardizzazione! Speriamo non restino tutti
contagiati :-)
Ciao,
Nicola

 wrote in message
news:3BD67F7B...@divalsim.it...

Dici che possiamo sperare che "property" diventi una keyword standard?


 rivoluzionarie (.NET)
Ehm... :-))
-- 
- Dado : Extreme Snowboarder
*-> I believe I can fly, I believe I can touch the sky <-*

Ehm... :-))
Dado che intendi?


Newsgroup: it.comp.lang.c++
Titolo: OT - Ma come si può fare!

Complimenti a tutti i frequentatori di questo ng!
questo è ufficialmente l'unico ng senza un thread con gli auguri di 
Natale :(	fate una pausa ogni tanto !
Va bé rimedio io!
BUON NATALE A TUTTI !!
^__^

"Draco" ha scritto:

Sacrosanta verità!!! :-)
Cmq Buon Natale a tutti!!! 

Draco ha scritto:

Sei OT: Il Natale non compare nelle specifiche ISO 14882 per il 
linguaggio C++. Non solo, ma non è neppure nelle STL, nè è un idioma 
C++. In questo NG si parla solo e specificamente di C++.
:-)

 :-)
Infatti ho messo il tag xD
Newsgroup: it.comp.lang.c++
Titolo: Da un neo utilizzatore di classi

Salve,
sono programmatore in C++ da 3 anni (essendo neo-diplomato in Elettronica) e
in Builder (ormai da un anno).
    Da tempo, sono attratto dal mondo delle classi (in quanto fino ad ora,
non ho mai programmato con gli oggetti): e, finalmente, considerando il poco
tempo che il lavoro mi lascia, ho cominciato ad interessarmi seriamente
dell'argomento.
Ho una semplice curiosità, ke sono sicuro riuscirete a soddisfare.
Ve la pongo, sperando di non ridicolarizzarmi troppo. :-)
Allora, voglio realizzare una classe, contentente metodi che devo richiamare
in vari programmi.
Voglio definire la classe, in una libreria (".lib").
Il programma finale, avrà, come noto tra gli "include", uno dedicato alla
chiamata della classe (con le sue dichiarazioni).
    La mia domanda è: come devo fare x indicare (in C++ e in Builder) che la
definizione della mia classe è in un file ".lib"?
Come faccio, cioè, a collegare il ".lib" al ".h"?
Ovvero, come fa il C ad associare la definizione della classe descritta nel
".h" alla sua dichiarazione contenuta nel ".lib"?
Spero di essere stato chiaro, e di non aver incasinato i termini.
Grazie anticipatamente.

 ".h" alla sua dichiarazione contenuta nel ".lib"?
Il compilatore non fa nulla a questo proposito. Ci pensa invece il linker.
I liker per "trovare" le funzioni da collegare fa uso dei nomi delle
funzioni + alcuni parametri affiancati al nome che indicano il tipo di
chiamata e i parametri passati/restituiti. cmq non è un dettaglio che di
solito interessa un programmatore.
Ciao
Newsgroup: it.comp.lang.c++
Titolo: struct s = { ... }

Ho una...
struct coordinata
{
   int x;
   int y;
   int z;
};
creo un elemento di quel tipo...
coordinata s;
Voglio poi assegnare ai campi interni i valori contenuti in tre interi 
a, b, c, inizialmente a zero.
s = {a, b, c};
Vado a controllare col debugger se tutto e' stato assegnato in maniera 
corretta ma, a fronte dei giusti valori...
a: 0
b: 0
c: 0
...ottengo
s.x: 0
s.y: 0
s.z: 2292784
o_O
Considerando poi che a, b, c sono in un triplo ciclo for che gli fa 
assumere i valori di tutte le possibili permutazioni entro un certo 
limite, ottengo valori coerenti di s.x e s.y e valore sballatissimo per 
s.z (mi pare rimanga il solito).
Dove sbaglio? La magagna e' nell'assegnamento fatto con: s = {a, b, c};?

 Dove sbaglio? La magagna e' nell'assegnamento fatto con: s = {a, b, c};?
mi sa che devi farlo nella dichiarazione della struttura, tutto in una riga:
coordinata s = {a, b, c};
-- 
MSN: sirpsycho_78 -at- hotmail dot com
"Miss, simme juti a fernì int' 'o cess, e mo' ca rimango 'i sulo, te 
mann 'a fanculo."

 coordinata s = {a, b, c};
Provato, il risultato non cambia.
-- 
www.project-ring.com

 
mi spiace, allora non so cosa dirti: a me ha sempre funzionato 
correttamente un assegnamento del genere!


 
in definitiva usi in modo implicito un copy constructor pubblico 
generato dal compilatore per la struttura. Prova a definirlo 
esplicitamente tu (sempre come membro pubblico). Forse emerge 
l'inghippo ... ciao
Soviet_Mario

 Provato, il risultato non cambia.
A me questo scrive 0,0,0:
#include <iostream>
struct coordinata
{
   int x;
   int y;
   int z;
};
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    coordinata s = { a, b, c };
    std::cout << s.x << ',' << s.y << ',' << s.z << '\n';
    return 0;
}
EMG
PS. Per kanze: lo so manca un #include. :-)
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

 A me questo scrive 0,0,0:
Ho riprovato senza modificare una sola riga di codice e adesso tutto va 
a meraviglia. Boh. O mi sono rincoglionito io oppure il debugger di 
dev-cpp e' amico di Lapo.

 PS. Per kanze: lo so manca un #include. :-)
E allora, perche non l'hai messo? :-) Quanta costa, una riga di piu?
(Io, quando scrivo essempio cosi, lascio via tutti gli #include.
Cosi è tutti chiaro che ne mancano :-).)
--
James Kanze                                           GABI Software
Conseils en informatique orientée objet/
                   Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, 
+33 (0)1 30 23 00 34

 Cosi è tutti chiaro che ne mancano :-).)
Io preferisco che l'esempio sia compilabile e anche senza quell'#include lo è
su tutti i compilatori che conosco.
EMG

Newsgroup: it.comp.lang.c++
Titolo: Nero and C++ Problem

Hi Everyone!
May someone help us?
We have the following problem usind Nero SDK (v 1.0.5) inside Builder C++
6.0.
We tried to compile the example NeroApiTest taken from SDK.
Calling the function NeroBurn in order to write an ISO track, the process
ends with an access violation. The same executable, compiled by MS VisualC++
6.0
works properly. Nero version is 6.3
Have someone an idea of what is wrong?
The load, read and info funtionalities seems to work correctly.
Thanks


Please post ALL example files
 
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Please post ALL example files
Grazie, NO. In primo luogo la domanda originale e' fuori tema in
questo newsgroup. In secondo questo newsgroup e' italiano, siamo tutti
italiani per cui per favore scriviamo in italiano.
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Consigli studio c++

Ho questi 2 libri per il C++ :
'Chi ha paura del C++? '           S. Heller        McGraw-Hill
'A scuola di C++ for dummies'                       Apogeo
Su quest'ultimo libro è incluso un cd 'Borland Turbo C++ Lite editor e
compilatore'...che nei requisiti di sistema indica Windows95, 3.1,
Dos....questo significa che non può andare con windows xp?...perchè l'ho
installato e sembra che funzioni.
Potrebbero andar bene questi libri e questo compilatore per iniziare a
studiare il C++?


i libri "for dummies" sono appunto for dummies. L'altro non lo
conosco. Un libro che potrebbe andare bene per te è:
C++ corso di programmazione, di Lippman e Lajoie
della Adison-Wesley. Putacaso lo vendo :-)
(ma il mio consiglio non è interessato)

 vecchio, e quindi probabilmente non aderente allo standard attuale.
Il libro con il cd di Borland Turbo C++ Lite è del 98...dici che è troppo
vecchio?
No ho ben capito una cosa...una volta che un programma è stato compilato e
linkato genera un eseguibile (.exe) che dovrebbe funzionare
indipendentemente dall'ambiente di sviluppo...Nel mio caso, provando ho
visto che posso provare il programma (run) solo dentro l'ambiente di
sviluppo...mentre l'eseguibile generato non funziona in una finestra dos???
Qualcuno mi chiarisce le idee?....lo so che sono domande banali, ma sto
iniziando adesso :-)

 sviluppo...mentre l'eseguibile generato non funziona in una finestra
dos???
L'errore che la finestra dos mi restituisce è questo:
'This example program can only be run from within the ide'

'This example program can only be run from within the ide'
Ti serve la traduzione? "Questo programma di esempio può essere
eseguito soltanto dall'interno dell'IDE (integrated development
environment, ambiente integrato di sviluppo)"
Sì, un libro dell'98 è già vecchio, anche perché sono quasi sicuro che
se vai a vedere, la versione originale è almeno dell'anno prima

 se vai a vedere, la versione originale è almeno dell'anno prima
In effetti è del 96.


-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan

Newsgroup: it.comp.lang.c++
Titolo: Aiuto su CreateProcess !!!!

Aiuto...
son alle prime armi...ed ho questo piccolo problemino di concetto....
come funziona questa procedura ?
C'e' qualcuno di voi che potrebbe farmi un esempio pratico della chiamata ?
es:
CreateProcess(........)
Vi ringrazio moltissimo...
un salutone e vi auguro buon lavoro a tutti....
--
Marco.

 come funziona questa procedura ?
Non e` parte del C++ Standard, ma delle API di Win32, quindi, non
chiedere qui, chiedi invece su it.comp.programmare.win32, dove
saro` ben contento di risponderti.
Alex
Newsgroup: it.comp.lang.c++
Titolo: [help] Visual Studio .NET

    Sto provando ad installare Visual Studio .NET ma non appena comincio la 
fase di installazione dei prerequisiti mi appare una schermata di errore in 
cui mi dice che non riesce a trovare il file "core.dll"...tale file non si 
trova nè sul cd dell'installazione nè sul computer, come posso fare?
    ps. Ho windows xp SP2 Home Edition e prima di mettere Visual Studio 
avevo Visual C++ 6.0 (ora disintallato)
    Grazie a tutti,
    a. 

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
		server 
newsgroups.borland.com
 (prevalentemente in
		inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: x spegnere il monitor

Ragazzi, premetto che nn metto mano al c++ da anni, quindi sto un bel
po a digiuno, cmq
Quello ke mi serve è un programma semplicissimo che, digitando in un
qualsiasi momento una combinazione di tasti, accenda o spenga lo
schermo (a seconda del suo stato attuale)
NO, nn sono folle, mi serve xkè avendo la tastiera cordless spesso
spengo il monitor per risarmiare però una volta allontanatomi può
venirmi l'esigenza di accenderlo (e spegnerlo successivamente) e qui
sorge il problema...
Certo potrei utilizzare l'utilità di risparmio energetico di winzoz,
però potrebbe capitare che m'interessa premere un tasto (ad esempio
cambiare mp3) senza però volere accendere il monitor, nn so ditemi
voi, grazie

Non si parla assolutamente di C, o C++, quanto piuttosto del tipo di
monitor... dovresti vedere se esiste qualche api di windows per fare cio, o
se il tuo monitor nei suoi driver ha qualcosa del genere facilmente
interfacciabile... in ogni caso penso che qui tu sia ot ;)
Dome

Newsgroup: it.comp.lang.c++
Titolo: come leggere i file thumbs.db?

ciao a tutti,
c'è qualcuno che sa come leggere il file Thumbs.db?
per intenderci quello che windows crea quando mostra in anteprima le
immagini di una cartella?
grazie e ciauz

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:	it.comp.os.linux.development
Per C++Builder:	i gruppi borland.public.cppbuilder.*, disponibili sul
		server 
newsgroups.borland.com
 (prevalentemente in 
		inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti
Newsgroup: it.comp.lang.c++
Titolo: Librerie

Ciao a tutti,
    volevo sapere se esisteva uno standard per la scrittura delle librerie 
statiche: ho un set di librerie compilato con VC++ (sono le VTK) che se 
usato con dev-c++ mi da sempre errore nella fase di link: in particolare non 
riesce a risolvere gli indirizzi delle funzioni. Come mai? 
E'possibilescrivere delle librerie che siano standard e che non siano legate 
a nessun compilatore?
Beppe. 



Ciao,
In teoria si, ma in pratica è qualcosa che difficilmente si può fare. La
struttura della libreria dipende dal formato degli eseguibili inclusi
(quindi anche dall'assemblatore di cui il compilatore si serve) e dal linker
(oltre che altre eventuali binary utilities che entrano in gioco nella
costruzione della libreria) e probabilmente anche da altre cose che al
momento non mi vengono in mente. Quindi in teoria tutti questi strumenti
dovrebbero operare conformemente a degli standard, cosa che per qualche
motivo non è realizzata.
Nei vari Unix(es) si usa un formato eseguibile standard chiamato ELF.
Purtroppo anche così la compatibilità tra i vari "flavors" di Unix non è
assicurata, tanto che per costruire librerie portabili tra questi è
necessario utilizzare "libtool". Questo è un set di strumenti che nasconde
all'utente le specificità di ciascun sistema e consente di ottenere librerie
portabili, almeno tra gli ambienti dove "libtool" è presente.
fabio de francesco
(fabiomdf)
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

In C++ ci sono anche e soprattutto i problemi legati al mangling dei
nomi, ovvero il rimaneggiamento degli identificatori reso necessario
per presentare al linker come distinti eventuali overload, e
all'interfaccia binaria di funzionalita' di base, come la gestione
delle eccezioni.
In pratica e' possibile solo se i produttori di compilatori per una
determinata piattaforma si mettono d'accordo. Che io sappia questo e'
avvenuto solo per Itanium e l'ABI risultante e' diventata quella di
riferimento per g++.
Ciao,
Nicola

 a nessun compilatore?
Si, usando il C, invece del C++.
  bye
	av.

 ha scritto nel messaggio 
news:sNr5e.52700$zZ1.1...@twister1.libero.it...


 diventata quella di riferimento per g++.
Afaik su MacOS X anche gcc e IBM sono d'accordo e tengono la stessa ABI
(per lo meno cosi` affermano i produttori del compilatore IBM)
-- 
[ RiK0                                ]
[ Go away! The internet is full!      ]
[ Non credo negli schemi non vincenti ]
Newsgroup: it.comp.lang.c++
Titolo: Le class template della STL con il C++ Builder

Qualcuno sa come si fa ad usare le classi tipo list o vector in C++
Builder Professional Edition?
Mi spiego meglio...
Metto una
#include <list>
in un nuovo progetto di applicazione, dichiaro una lista di interi con
list<int> MyList;
provo a compilare e mi dà un errore di "Declaration syntax error" in
corrispondenza di 'int' nella precedente linea.
Stesso discorso con i vector.
L'unica classe che mi funziona è la string (che nella dichiarazione non
ha bisogno di template!).
Forse c'è una qualche opzione che abilita l'uso dei template? Ho cercato
nell'help, ma con esito negativo....
Qualcuno sa dirmi come fare?
Grazie mille...
Pierpaolo Caricato
ppc...@tin.it

 list<int> MyList;
Devi informare il compilatore del namespace che intendi usare.
Prova ad aggiungere la seguente riga e vedrai che tutto funziona.
using namespace std;

corrispondenza di 'int' nella precedente linea.
A norma di standard, tutte le funzioni ed i tipi delle librerie standard
sono nel namespace std.  L'uso "normale" e` quindi:
    std::list<int> MyList;
Se hai molti usi di std::list, puoi semplificarti la vita con una
    using std::list;
una volta per tutte, importando cosi` std::list come list nel tuo
namespace corrente (presumibilmente quello globale, visto
che immagino non avrai un "namespace qualcosa { ... }"
attorno al tuo codice).
Pure possibile, benche` non consigliabile:
    using namespace std;
Questo importa TUTTI i nomi del namespace std nel tuo
namespace corrente, e quindi ti riporta alla situazione prima
che i namespace venissero inventati.
Incidentalmente, non e` solo Borland -- Microsoft Visual
C++ funziona allo stesso modo, e cosi` pure qualsiasi
altro compilatore che sia a norma di standard C++.
(L'unico dato strano che riporti e` che "string" funziona
anche senza std:: davanti... ci sara` uno using in qualche
header di sistema che includi...?).
Alex
Newsgroup: it.comp.lang.c++
Titolo: SendMessage - Selezione automatica di una voce di menu

Ciao,
il mio scopo è controllare (automatizzare) tramite un mio applicativo
(scritto in Visual C++) un software "esterno".
Riesco grosso modo a fare tutto:
lanciarlo;
selezionare bottoni;
riempire textbox;
mettere spunte;
ecc ecc
.... tutto grazie a SendMessage e SendDlgItemMessage.
L'unico cosa che per ora non sono riuscito a fare, e per ciò chiedo il
vostro aiuto, è selezionare una voce dal tray menu: il software
"esterno" in questione, una volta lanciato, mostra "semplicemente" una
iconcina nella system tray..... cliccando sull'icona tramite pulsante
dx del mouse compare un menu a tendina .... il mio scopo è selezionare
una voce di quel menu in automatico tramite una SendMessage.
Per intenderci:
Ho a disposizione lo handle della finestra del programma "esterno" che
"risiede" nella system tray (ovviamente è stato precedentemente
lanciato):
hWind = ::FindWindow(NULL," Nome programma");
la:
::SendMessage(hWind, WM_MENUSELECT, MAKEWPARAM(40005, MF_MOUSESELECT), (LPARAM)104);
non produce risultati!
dove:
104 MENU
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
{
POPUP "tray"
{
	MENUITEM "item_1",  40000
	MENUITEM "item_2",  40001
...........................................
	MENUITEM "item_5",  40005
}
}
Qualche idea??
Grazie
Francesco.

 (scritto in Visual C++) un software "esterno".
Il posto giusto per porre la domanda è it.comp.programmare.win32

> Il posto giusto per porre la domanda è it.comp.programmare.win32
Ops... chiedo scusa.
Se qualcuno fosse interessato, postato su programmare.win32.
Grazie
F.

Newsgroup: it.comp.lang.c++
Titolo: vect di classi, problemone

Data la classe:
class AAA
{
  public:
          vector<float> H;
  AAA( )
        {
          H.push_back(67);
        }
};
non è possibile fare una cosa del genere:
vector<AAA> vect;
AAA a;
vect.push_back(a);
in compilazione da errore.
Ciò, penso, sia dovuto al fatto che la dimensione di AAA (a causa del
vettore) è variabile, e quindi non saprebbe allocare una dimensione fissa
per "vect". Giusto ?
Ma a me serve proprio una struttura del genere (cioè una collezione di
classi che hanno un vettore come membro).
A parte un vettore di puntatori, ci sono altre soluzioni ?
grazie

 ha scritto nel messaggio
news:ad82t9$up6rp$1...@ID-45091.news.dfncis.de...


 in compilazione da errore.
"dà errore" è un po' generico, non trovi?
-- 
Saluti,
    Mardy
http://castellina.org/interlingua

 Data la classe:
[snip]
questo codice compila correttamente con il g++:
-----------------------------------------------
#include <vector>
class AAA {
public:
         std::vector<float> H;
         AAA() {
                 H.push_back(67);
         }
};
int main(void) {
         std::vector<AAA> vect;
         AAA a;
         vect.push_back(a);
}
------------------------------------------------
byez
Newsgroup: it.comp.lang.c++
Titolo: Che tipo di struttura mi consigliate

Ho vari oggetti con livello di astrazione crescente: punti , segmenti,
rettangoli, porte ecc. ognuno di questi oggetti ha varie caratteristiche o
campi, io vorrei poter accedere ai vari oggetti usando come chiave uno dei
loro campi, ad esempio usando una Multimap delle stl,ma cosi' facendo posso
usare una sola chiave ... dal momento che io vorrei poterci accedere per più
chiavi come posso fare??
costruirmi una key strutturata ,mi comporterebbe poi il dover fare anche una
funzione di ordinamento ad hoc... e non ne sono capace.
Tenete presente ,che ho pochi dati e quindi non mi serve una grande
efficienza, vorrei solo una struttura comoda dal punto di vista della
leggibilità ecc ecc.
Grazie Marco

 leggibilità ecc ecc.
...con pochi dati, la ricerca lineare in tabella puo` essere del tutto
soddisfacente.  L'algoritmo std::find_if ti permette di farla con la
massima semplicita`, scrivendo semplicemente i predicati che ti
interessa vengano soddisfatti.  Puoi tenere i tuoi dati in un qualsiasi
contenitore sequenziale (tipicamente std::vector) e usare find_if
per trovarli selettivamente.
Alex

Newsgroup: it.comp.lang.c++
Titolo: VARIANT VT_DATE di ritorno da un metodo COM

Ho creato una DLLCOM con VC++ 6.0 e ATL. Il mio problema:
devo ritornare un valore VARIANT VT_DATE da un metodo e il
valore è contenuto in una variabile time_t....non riesco a 
capire come convertire questo time_t (i millisecondi a
partire dal 171/1970 se non erro) in un VARIANT....
qualcuno può aiutarmi?

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Newsgroup: it.comp.lang.c++
Titolo: Algoritmi di vettorializzazione

Qualcuno può consigliarmi esempi in c++ o libri da cui trarre idee su
algoritmi ?
Vorrei riconoscere sagome 2d da immagini grayscale.
Se già ci fosse qualcosa di pronto o semilavorati da visionare sarebbe un
bene...
Andrea.
--
Posted from 
mta03-acc.tin.it
 [212.216.176.34]
via Mailgate.ORG Server - 
http://www.mailgate.org


Per il problema dell'estrazione dei contorni da immagini c'e'
una pletora di articoli nel PAMI delle IEEE transactions.
Cerca un certo Canny, "On Ege Detection",
il quale fornisce la teoria di base ed una
robusta bibliografia per approfondire l'argomento.
In sostanza si basa sul filtraggio 2D dell'immagine con un filtro
"quadrato" basato sulla derivata di una gaussiana 2D, piu' una
altra marea di considerazioni.
Newsgroup: it.comp.lang.c++
Titolo: vettore di vettori

Salve ragazzi,
come mi ha suggerito Luca Risolia, sto cercando di creare un vettore 
di vettori che contenga interi. Il codice che ho scritto compila ma se 
eseguito mostra che non sono riuscito a popolare i vettori.
conto su di voi e vi ringrazio,
alessandro
 
*cut here*
 
#include <iostream>
#include <vector>
 
using std::cout;
using std::cin;
using std::endl;
using std::vector;
 
void riempi_vettore(vector<vector<int> > *);
void stampa_vettore(vector<vector<int> > *);
 
int main()
{
     vector<vector<int> > v;
 
     riempi_vettore(&v);
     stampa_vettore(&v);
 
     return 0;
}
 
void stampa_vettore(vector<vector<int> > *vector)
{
     for(unsigned int i=0; i < vector->size(); i++)
     {
         for(unsigned int j=0; j < vector[i].size(); j++)
         {
             cout << (*vector)[i][j] << ' ';
         }
     }
     cout << endl;
}
 
void riempi_vettore(vector<vector<int> > *vector)
{
     for(unsigned int i=0; i < vector->size(); i++)
     {
         for(unsigned int j=0; j < vector[i].size(); j++)
         {
             (*vector)[i].push_back(j);
         }
     }
     cout << endl;
}

 }
 
Ciao!


grazie :o)

Il 25/04/2013 12:55, alexo ha scritto:
 
Ho trovato la soluzione. Trattandosi di vettore di vettori devo prima 
creare i sottovettori (quelli che saranno contenuti) e poi aggiungerli 
al vettore principale [quello che li contiene].
 
*cut here*
 
#include <iostream>
#include <vector>
 
using std::cout;
using std::cin;
using std::endl;
using std::vector;
 
void stampa_vettore(vector<vector<int> > &);
 
int main()
{
     vector<vector<int> > vv;
 
     vector<int> v1;
 
     v1.push_back(1);
     v1.push_back(2);
 
     vector<int> v2;
 
     v2.push_back(1);
     v2.push_back(4);
     v2.push_back(7);
 
     vv.push_back(v1);
     vv.push_back(v2);
 
     stampa_vettore(vv);
 
     return 0;
}
 
void stampa_vettore(vector<vector<int> > & ph)
{
     for (unsigned int u=0; u < ph.size(); u++)
     {
         for (unsigned int v=0; v < ph[u].size(); v++)
         {
             cout << ph[u][v] << ' ';
         }
         cout << endl;
     }
}

Newsgroup: it.comp.lang.c++
Titolo: INSEGNO IL C++ GRATUITAMENTE

-- 
Alessio Treglia
pagina Web
http://www.grisnet.it/utenti/treglia
sito FTP 
ftp://ftp.grisnet.it/utenti/treglia
ChatInfo
server: 
comicsrv3.microsoft.com
chat: #Treglia_Chat
e-mail
tre...@grisnet.it
atre...@freemail.it
al...@freemail.it
pro...@freemail.it

Ma se lo insegni gratis, ci spieghi come mai ogni 2-3 giorni posti tanti
messaggi tutti uguali?
Newsgroup: it.comp.lang.c++
Titolo: DirectX e Builder C++

Programmo poco in C++ builder 3, e da poco mi sono procurato l'Sdk delle
DirectX 6.
Non sono ancora riuscito a capire come adattare gli esempi al builder per
poter finalmente utilizzare le directx.
In giro per la rete purtroppo sono riuscito a trovare pochissimi esempi.
Mi chiedo come sia possibile riuscire a trovare molti esempi persino
in VB e Delphi e quasi nessuno in Builder !
La microsoft nella home page dedicata alle directx non non nomina neanche
il Builder
(in compenso cita il Delphi, C++ Watcom  e dichiara che le DirectX 7
saranno pienamente supportate dal VB).
Dato che non ho nessuna intenzione di cedere a microsoft e di passare
quindi al suo compilatore C++ sapreste darmi una mano, informazioni, url o
indicazioni ?
Grazie
ps: dato che la mia Email è scema rispondetemi nel NG.

 In giro per la rete purtroppo sono riuscito a trovare pochissimi esempi.
Prova questi:
http://www.tdirectdrawform.idl.com.au
http://www.maidex.demon.co.uk
http://www.digiserve.com/cmab/delphi.htm
http://web.raex.com/~rrice
Saluti
Paolo

Vai un po' qua: 
http://cust.idl.com.au//tdraw/
Viene spiegato come usare DirectDraw con il Builder.
--
Byez.
Stefano Tempesta
s.tem...@usa.net
http://tempesta.freeweb.org
--------------------------------
(-: To "shut down" your system, type "WIN" :-)
(-: Windows VirusScan 1.0 - "Windows found: Remove it? (Y/N)" :-)
Newsgroup: it.comp.lang.c++
Titolo: Oggetti e comandi

Ciao al NG
Non  conosco affatto il c++ però ho conoscenza un po' del c e molta del VB.
Come faccio a fare le finestre e richamare gli oggetti.
Mi servirebbe anche una tabella di conversione comandi VB  Borland C.
Grazie a chi mi risponde.
----------------------------------------------------------------------------
---------------
Per le EMail senza allegati: 
ga...@freemail.it
Per quelle con allegati: 
ga...@hotpop.com
Con un messaggio su 
ga...@freemail.it
 con subjet :file inviato
----------------------------------------------------------------------------
---------------

Come faccio a fare le finestre e richamare gli oggetti.
Ogni programma C che volgia creare una finestra usa
HWND CreateWindowEx(
  DWORD dwExStyle,      // extended window style
  LPCTSTR lpClassName,  // pointer to registered class name
  LPCTSTR lpWindowName, // pointer to window name
  DWORD dwStyle,        // window style
  int x,                // horizontal position of window
  int y,                // vertical position of window
  int nWidth,           // window width
  int nHeight,          // window height
  HWND hWndParent,      // handle to parent or owner window
  HMENU hMenu,          // handle to menu, or child-window identifier
  HINSTANCE hInstance,  // handle to application instance
  LPVOID lpParam        // pointer to window-creation data
);
Pero' avendo chiesto del linguaggio C stai scegliendo la strada piu' lunga,
anche se la piu' produttiva e duratura per fare programmi.
La creazione di programmi in windows in C non e' sicuramente una operazione
di drag-and-drop come avviene per la costruzione delle piu' semplici
applicazioni in VB.
Nessuna risposta in un newsgroup potrebbe esaurire l'agomento o anche solo
iniziarlo.
In questi casi e' opinione comune consigliare il libro:
Charles Petzold,"Programming Windows", 5 ed, Microsoft Press,
sicuramente la bibbia dei beginners per la programmzione windows in C.
Se avessi chiesto del C++, allora sarebbe possibile consigliare altri
ambienti, in cui l'uso del mouse puo' essere utile almeno in fase di
creazione dello scheletro.
Visual C++ con MFC, oppure C++Builder + VCL sono altrettante soluzioni
valide. Anche per queste qualche manuale e' sicuramente d'obbligo.
Per quanto riguarda la "conversione dei comandi VB", secondo me
semplicemente
non esiste, dato che la concezione stessa del modo di programmare e'
completamente diversa.
Ricordati di votare per it.comp.programmare.win32
Newsgroup: it.comp.lang.c++
Titolo: uscire da una funzione senza restituire valori

Come si fa ad uscire da una funzione SENZA ritornare il tipo che quella
funzione si aspetta?
Ho fatto un metodo di una lista che elimina l'ultimo nodo di una lista e
ritorna il contenuto del nodo.
Ma nel caso in cui la lista sia vuota, non c'è nessun dato da ritornare e
quindi la mia funzione deve semplicemente "returnare" senza restituire alcun
dato...
come faccio?
Grazie!

 wrote in message
guNAa.72697$DN.16...@tornado.fastwebnet.it...

Sono un tuo compagno di corso.
Se una funzione è dichiarata in modo che ritorni un dato di un determinato
tipo allora deve necessariamente ritornare un dato di quel tipo, non può
ritornare nulla. Nel tuo caso le possibili soluzioni che mi vengono in mente
sono:
1- controlli esternamente prima di chiamare quella funzione che la classe
contenitore non sia vuota con la funzione empty()
2- ritorni un oggetto vuoto (costruito con il costruttore di default) e
passi per riferimento una variabile booleana che ti dice se ci sono stati
errori oppure no
3- la precedente ma senza variabile booleana, controllando invece la
proprietà empty() del contenitore dopo la chiamata ma prima di usare il
dato.
Io sarei per la prima soluzione. Infatti è anche la soluzione adottata dalle
librerie standard ad esempio per i metodi back() e front():
tratto dal Dinkum C++ Library Reference:
vector::front
reference front();
const_reference front() const;
The member function returns a reference to the first element of the
controlled sequence, which must be non-empty.

Grazie mille!




Il metodo ritorna (come auspico) un puntatore al nodo, quindi banalmente:
return NULL;

 wrote in message
pan.2003.05.27....@despammed.com...

Io avevo inteso che ritornava il contenuto del nodo, non il nodo stesso.
Come front() o back() delle liste standard, che ritornano un reference al
contenuto.
Altrimenti hai senz'altro ragione tu.

contenuto.
   Se, come dice l'OP, la funzione ritorna l'ultimo elemento di una
lista e lo cancella, a mio modesto avviso dovrebbe esserci un metodo
per controllare prima se la lista e` vuota, e la chiamata a pop() (o
quello che sia) dovrebbe generare eccezione in caso di lista vuota.
   Se si poppa da una lista vuota, il problema non e`
nell'implementazione dello lista, ma nel codice che la usa:
un'eccezione ci sta piu` che bene.
-- 
S.L.

 wrote in message
news:guNAa.72697$DN.16...@tornado.fastwebnet.it...

L'unico modo, che mi viene in mente, per uscire da una funzione
senza tornare nessun valore ( quindi senza depositare nulla sullo
stack) e' tirando un'eccezione.
Gaetano
PS: ci sarebbero altri metodi: tipo uscire completamente dal programma (
exit )
ma non penso che e' questo che intendevi.


Grazie a tutti, mi avete chiarito le idee!
Newsgroup: it.comp.lang.c++
Titolo: alloca XMS o EMS

Ciao a tutti,
programmo in C e navigo  da poco.
Il mio problema riguarda l'allocazione dinamica della memoria.
Purtroppo non riesco ad allocare con la funzione FARCALLOC  o altre più
della memoria convenzionale pur usando puntatori  huge e modello di memoria
large.
Ho un compilatore BCC.EXE del 1992 che dà link error usando il modello di
memoria large.
Come posso allocare anche più di 1024 Kb della memoria XMS o EMS ?
Ringrazio tutti gli esperti che vorranno aiutarmi.
Save me!
e-mail : 
pietro_...@libero.it
(pietro_todisco......)

Come posso allocare anche più di 1024 Kb della memoria XMS o EMS ?
Devi accedere al driver del XMS, i numeri a memoria non li ricordo piu', ma le 
specifiche non sono difficili da trovare in rete.
Una volta scaricate puoi farti una bella libreria con XMSalloc e XMSmove
Ciao
Cugy

Newsgroup: it.comp.lang.c++
Titolo: ::overload

Ciao a tutti,
sono in difficoltà,
tempo devo aver letto da qualche parte che attraverso una classe
potevo ottenere un tipo di dato con la sola giustificazione della
stessa,
spiego meglio con un pezzo di codice:
DEFINIZIONI
// prototipo di funzione
void FunzEsempio(int);
// classe esempio
class Esempio{
int val;
public:
...
int operator();	// la definizione è sbagliata, per questo chiedo a
voi.
};
...
// ESECUZIONE
Esempio valore;
FunzEsempio( valore );	// con la sola giustificazione la classe
restituisce int
...
questo tipo di comportamento si può ottenere con un overload di
operatore...?
un cast particolare...?
non ricordo più dove l'ho letto e come si definisce...
ringrazio anticipatamente.

Potresti usare i template:
template <class T> class Esempio {
public:
template <class T> T FunzEsempio(T valore) { return (++valore); }
};
int main()
{
Esempio<int> a;
Esempio<char>b;
int val;
char ch;
val = a.FunzEsempio(3);
cout << "VAL = "<<val<<endl;
ch = b.FunzEsempio('a');
cout << "VAL = "<<ch<<endl;
return 0;
}
in quest caso otterrail'output:
VAL=4
VAL='b'
altrimenti potresti, dentro FunzEsempio, trovarti il tipo passato come
parametro in run
 time (RTTI- typeid(obj)) e restituire il tipo che ti serve, ma è più
meccanico.

 
Forse ti riferisci agli operatori di conversione ?
void FunzEsempio(int) {/***/}
class Esempio
{
	int val;
public:
	operator int() const {return val;}
};
void FunzProva()
{
	Esempio valore;	
	FunzEsempio(valore);
}
Questo dovrebbe funzionare. È quello che ti serve?

no raga,
vi ringrazio molto per il tentativo ma non è quello che cercavo,
potrei anche sbagliarmi, proverò a cercare meglio sui libri,
se troverò la soluzione state certi che la scriverò dopo questo...
grazie comunque