Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-03-2008, 14:49   #1
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
[C++]Sintassi struttura

Salve ragazzi,

sto programmando in C++ in ambiente Visual C++...

volevo chiedervi il significato in questa struttura:

struct FEReadTagsThreadPara
{
bool bFinish;
bool bRunning;
FEDM_ISCReader* m_pReader;
HWND hwnd;
FEReadTagsThreadPara(): bFinish(false), bRunning(false),
m_pReader(NULL), hwnd (NULL){}
};


dell'ultima dichiarazione.
Questa struttura è definita in un header file, ed è richiamata mediante puntatore in un file .cpp!

Grazie.
register è offline   Rispondi citando il messaggio o parte di esso
Old 03-03-2008, 16:51   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E' il costruttore della struttura, in C++ le struct, al pari delle classi possono avere anche un costruttore.
Quello che appare dopo i due punti è la lista di inizializzazione del costruttore.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2008, 09:25   #3
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Grazie cionci,

e ti posso chiedere un'altra cosa, stavolta riguardante le classi?

Io ho in un Header file questa classe e ti chiedo in particolare delle funzioni scritte in rosso...è normale che ne vengano dichiarate così tante nella stessa classe e con lo stesso nome, con l'unica differenza che cambi qualche parametro d'ingresso?:

class FEDM_ISCReader : public FEDM_DataBase
{
// public functions
public:

FEDM_ISCReader(); // constructor
virtual ~FEDM_ISCReader(); // destructor

// main function for XML serialization
virtual int Serialize(bool bRead, char* sFileName);

#ifdef _FEDM_MFC_SUPPORT
// for proprietary file-I/O
virtual int Serialize(CArchive& ar, int iMemType);
#endif

// main communication function
virtual int SendProtocol(UCHAR ucCmdByte);

// set the port handle in reader object of FEISC
// must be done before use of all other functions
int SetPortHnd(int iPortHnd);
int GetPortHnd();

int SetReaderType(UCHAR ucType);

char* GetTagName(UCHAR ucTagType);

// change the protocol type (STANDARD or ADVANCED)
// STANDARD is preset
int SetProtocolFrameSupport(UINT uiType);
int GetProtocolFrameSupport();

// get the last protocol string (frame and data)
int GetLastProt(char* sID, char* sProt);
// get the last error code
int GetLastError();
// get the last status byte
int GetLastStatus();

// get error text
int GetErrorText(char* cErrorText, int iErrorCode);
// get status text
int GetStatusText(char* cStatusText, UCHAR ucStatus);

// function to find the baudrate and frame of reader
virtual int FindBaudRate(bool* pStop = NULL, int iTimeout = 300, int iFrameSupport = 0);

// get specific data from table
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, bool* bData);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UCHAR* ucData);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UCHAR* ucData, int iDataBufLen);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UINT* uiData);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, __int64* i64Data);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, char* cData, int iDataBufLen);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, string& sData);

#if defined(_FEDM_MFC_SUPPORT) || defined(__BORLANDC__)
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID, CString& sData);
#endif

// set specific data in table
int SetTableData(int iIdx, UINT uiTableID, UINTuiDataID, bool bData);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UCHAR
ucData);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UCHAR*
ucData, int iDataBufLen);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, UINT uiData);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, __int64 i64
Data);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, string sData);

#if defined(_FEDM_MFC_SUPPORT) || defined(__BORLANDC__)
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID, CString sData);
#endif

// get data block from table
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, UCHAR* ucData, int iDataBufLen);
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, string& sData);

#if defined(_FEDM_MFC_SUPPORT) || defined(__BORLANDC__)
int GetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, CString& sData);
#endif

// set data block in table
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, UCHAR* ucData, int iDataBufLen);
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, string sData);

#if defined(_FEDM_MFC_SUPPORT) || defined(__BORLANDC__)
int SetTableData(int iIdx, UINT uiTableID, UINT uiDataID,
int iBlockNr, CString sData);
#endif

// verify read/write-data block(s) in table
int VerifyTableData(int iIdx, UINT uiTableID, int iBlockNr, int iBlockCnt);

// copy complete byte arrays from source to destination inside a table
// source/destination can be: FEDM_ISC_DATA_TxDB, FEDM_ISC_DATA_RxDB
int CopyTableData(int iIdx, UINT uiTableID, int iSrcDataID, int iDstDataID);

// get table-index of specific data from table
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, bool bData);
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, UCHAR ucData);
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, UINT uiData);
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, __int64 i64Data);
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, string sData);

#if defined(_FEDM_MFC_SUPPORT) || defined(__BORLANDC__)
int FindTableIndex(int iStartIdx, UINT uiTableID, UINT uiDataID, CString sData);
#endif

// set size of a table
int SetTableSize(UINT uiTableID, int iSize);
int SetTableSize(UINT uiTableID,
int iSize,
int iRxDB_BlockCount,
int iRxDB_BlockSize,
int iTxDB_BlockCount,
int iTxDB_BlockSize);

// get size of a table
int GetTableSize(UINT uiTableID);
// get length of valid data in a table
int GetTableLength(UINT uiTableID);
// set length of valid data in a table if the application has built the table
int SetTableLength(UINT uiTableID, unsigned int uiLength);
// reset length of valid data in a table
int ResetTable(UINT uiTableID, UINT uiDataFlags=0);

// protected functions
protected:
// save the last error or status byte in memory
void SetLastError(int iError);

int Get_0x72_OutputData(unsigned char ucOutN, UCHAR* pOutRec);

// get data for [0xB0], [0xB1], [0xB2], [0xB3] iso command
virtual int Get_0xB0_IsoTableData(UCHAR ucCmdByte, UCHAR* ucData);
virtual int Get_0xB1_IsoTableData(UCHAR ucCmdByte, UCHAR* ucData);
virtual int Get_0xB2_IsoTableData(UCHAR ucCmdByte, UCHAR* ucData);
virtual int Get_0xB3_IsoTableData(UCHAR ucCmdByte, UCHAR* ucData);

// get data for [0xB0][0x??] iso command
virtual int Get_0xB0_0x24_IsoTableData(UCHAR* ucData);
virtual int Get_0xB0_0x27_IsoTableData(UCHAR* ucData);
virtual int Get_0xB0_0x29_IsoTableData(UCHAR* ucData);
virtual int Get_0xB0_0xA1_IsoTableData(UCHAR* ucData);

// get data for [0xB3][0x??] epc command
virtual int Get_0xB3_0x24_IsoTableData(UCHAR* ucData);

// save data in ISO-table after [0xB0], [0xB2] iso command
virtual int Set_0xB0_IsoTableData(UCHAR* ucData, int iLen, int iStatusByte);
virtual int Set_0xB2_IsoTableData(UCHAR* ucData, int iLen, int iStatusByte);

// save data in ISO-table after [0xB0][0x??] iso command
virtual int Set_0xB0_0x23_IsoTableData(UCHAR* ucData, int iLen);
virtual int Set_0xB0_0x25_IsoTableData(UCHAR* ucData, int iLen);
virtual int Set_0xB0_0x26_IsoTableData(UCHAR* ucData, int iLen);
virtual int Set_0xB0_0x2B_IsoTableData(UCHAR* ucData, int iLen);
virtual int Set_0xB0_0x2C_IsoTableData(UCHAR* ucData, int iLen);
virtual int Set_0xB0_0xA0_IsoTableData(UCHAR* ucData, int iLen);

virtual int Set_0xB2_0x2B_IsoTableData(UCHAR* ucData, int iLen);

// save data in BRM-table after [0x21] or [0x22] read buffer
virtual int SetBrmTableData(UCHAR ucMode, UCHAR* ucData);

// save measurement data in CAD-table after [0x68]
virtual int SetCADTableData(UCHAR ucCmd, long* ucData);

virtual int SerializeIn(FEDM_XMLBase* xml, FEDM_XML_TREEITEM* root);
virtual int SerializeOut(FEDM_XMLBase* xml, FEDM_XML_TREEITEM* root);

// data members
protected:
// BRM-table for received data
FEDM_BRMTAB_ARRAY m_BRMTable;

// ISO-table for ISO Host Commands
FEDM_ISOTAB_ARRAY m_ISOTable;

// Channel Analyze Data table for received data
FEDM_CADTable m_CADTable;

unsigned int m_uiBRMTableLength; // length of valid data in BRM-table
unsigned int m_uiISOTableLength; // length of valid data in ISO-table

// for temporary protocol data
UCHAR m_ucData[4100];
long m_nData[516];
};


Grazie.
register è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2008, 09:39   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo, è normale, il compilatore sceglierà la funzione corretta in base al tipo e alla quantità dei parametri.

Ultima modifica di cionci : 04-03-2008 alle 09:47.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 09:20   #5
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Ah, grazie! Ho capito!

Non me le ricordo proprio più queste cose!

Ma per caso sai anche come fare a capire da un progetto in Microsoft Visual Studio C++ 6.0 già compilato ed eseguito se questo è un progetto Win32 Application, Win32 Console, MFC AppWizard...

Ti spiego il perchè:

da un progetto che c'è in un SDK, con gli eseguibili e i codici, io devo estrapolare solo i file .cpp e .h (di alcuni solo alcune parti di codice) che mi servono e crearmene uno nuovo sulla base di questi, e con un'interfaccia modificata.

Perciò vorrei sapere come si fa a sapere che tipo di progetto è, perchè ho intenzione di seguire questo procedimento:

una volta visto qual è, ne creo uno nuovo dello stesso tipo e ci aggiungo i files che mi servono, e ne creo di nuovi in cui inserire le parti di codice estrapolati da quelli originali...dopodichè adatto l'interfaccia originale al mio progetto, compilo ed eseguo!

Va bene questo procedimento?
Ed esiste un modo per farlo?
Perchè io avevo provato in questo modo:

Avevo creato un nuovo progetto Win32Application ed avevo aggiunto alle cartelle header files e suorce files quelli che mi servivano...solo che quando vado a compilare...mi dice che alcuni header files (che sono quelli che non si trovano nella stessa cartella del progetto - così come nel progetto originale) non possono essere aperti, ed io non capisco il perchè.

Mi potresti aiutare?

Grazie
register è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 09:43   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Se lanciandolo ti apre anche una console testuale allora è Win32 Console...se ha all'interno codice MFC allora è stata creato tramite uno dei wizard MFC, se usa API Win32 per l'interfaccia grafica o qualsiasi altro tipo di framework e non ha una console allora è una Win32 Application.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 10:01   #7
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Credo sia Win32 Application allora...quando compilo ed eseguo mi esce direttamente l'interfaccia grafica (tipo finestra windows).

Nel workspace ha 3 schede:
ClassView, ResourceView e FileView.

Nella prima ci sono le varie classi;
Nella seconda 5 cartelle: Dialog, Icon, Menu, String Table, Version.
Nella terza 4 cartelle: Source Files, Header Files, Resource Files e External Dependencies.

Nella terza ci sono due file .ico e 1 .rc2!
Nella prima, oltre ai file .cpp, ce n'è uno .rc che fa aprire la scheda Resource View quando si clicca sopra.

Ps. cosa mi puoi dire invece riguardo al fatto che non mi vede alcuni Header files? io ho provato anke ad inserirli nella stessa cartella del progetto mas ugualmente non va!

Grazie.
register è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 10:10   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da register Guarda i messaggi
Ps. cosa mi puoi dire invece riguardo al fatto che non mi vede alcuni Header files? io ho provato anke ad inserirli nella stessa cartella del progetto mas ugualmente non va!

Grazie.
Una volta è successo anche a me con VS2003...

Nel mio caso i file .h erano fisicamente presenti nella cartella, ma per qualche ragione VisualStudio non li aveva annoverati nel suo file di progetto.

E' bastato correggere quello, nello specifico nel mio caso:

1 - file di progetto (.vcproj) aperto con un editor di testo
2 - tra i tag <Files></Files>
3 - qui:
Codice:
// inside .vcproj file...
...
<Filter
			Name="Header Files"
			Filter="h;hpp;hxx;hm;inl">
			<File
				RelativePath="GFNEST.H">
			</File>
			<File
				RelativePath="NPREP.H">
			</File>
		</Filter>
		<Filter
			Name="Resource Files"
			Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
		</Filter>
...
Controlla siano elencati tutti i tuoi HEADER files, se ne manca qualcuno lo aggiungi a mano.

Ciao
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 10:39   #9
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Ciao Banryu,

gli header files erano già tutti elencati...mi son messo a vedere un po' se c'era qualcosa che non andava ma non ho trovato niente.

e purtroppo ancora non riesce a vedere i mniei header files....
register è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 11:48   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da register Guarda i messaggi
Ciao Banryu,

gli header files erano già tutti elencati...mi son messo a vedere un po' se c'era qualcosa che non andava ma non ho trovato niente.

e purtroppo ancora non riesce a vedere i mniei header files....
Strano, allora non saprei.
Sei sicuro che non dipenda da altro?

Magari puoi andare nella cartella del progetto, e ti apri a mano ogni file di configurazione del progetto con un editor testuale; alcuni file saranno in formato binario, ma quelli testuali li puoi leggere e verificare che eventuali sezioni che abbiano a che fare con l'elencazione dei file sorgenti del progetto contengano tutti gli headers.

Non so se in alternativa potresti creare ex-novo un progetto vuoto per poi importare tramite Visual Studio i sorgenti... in modo che VS ti ricrei i file di progetto in modo corretto, sempre ammesso che il problema dipenda da questo.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 12:21   #11
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Non so se in alternativa potresti creare ex-novo un progetto vuoto per poi importare tramite Visual Studio i sorgenti... in modo che VS ti ricrei i file di progetto in modo corretto, sempre ammesso che il problema dipenda da questo.

non so! a me pare ke è quello ke ho fatto...
ho creato proprio un progetto nuovo e da quì ho aggiunto tutti i file ke mi servivano..però non va!!! TRISTE ASSAIIIII
register è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 12:28   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da register Guarda i messaggi
non so! a me pare ke è quello ke ho fatto...
ho creato proprio un progetto nuovo e da quì ho aggiunto tutti i file ke mi servivano..però non va!!! TRISTE ASSAIIIII
Probabilmente servono altre direttive...ad esempio quali librerie linkare.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 14:52   #13
register
Member
 
Iscritto dal: Feb 2008
Messaggi: 68
Capito, Grazie!

Cerco di fare quante più prove possibili e vedrò...se andrà bene posterò la soluzione qui...in caso contrario....che tristezza!!!
register è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2008, 15:03   #14
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Nella prima ci sono le varie classi;
Nella seconda 5 cartelle: Dialog, Icon, Menu, String Table, Version.
Nella terza 4 cartelle: Source Files, Header Files, Resource Files e External Dependencies.
Controlla bene anche queste
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 21:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v