Vai al contenuto
PLC Forum


Embedded Visual C++


MarinaCostigliola

Messaggi consigliati

MarinaCostigliola

E' la prima volta che intraprendo una discussion su questo sito.

In realtà ho un problema, dovrei pogrammare in embedded visual c++ (per chi non lo sapesse è la versione ridotta del visual c++ per windows CE) ma non so programmare neanche in visual c++. Procedo a tentativi ma alla fine trovo delle funzioni che vanno bene per il VC++ ma non per l'embedded e così impazzisco!

E' il caso della _strtime o ancora della _strdate di cui non riesco a trovare i corrispondenti nell'embedded, mi andrebbe bene anche qualcosa di similare!

Vi chiedo aiuto,accetto qualsiasi consiglio purchè riesca ad andare avanti. Ah,un altro problema, tipico però della programmazione, è invece riuscire a trovare la linea di codice che mi permette di scrivere da un edit ad un'altro pemendo un bottone....

Io ho fatto un qualcosa del tipo:

char nome[30];

e dietro al codice del bottone ho scritto:

itoa(IDC_edit2,nome,2);

GetDlgItem(IDC_edit1)->SetWindowText(nome);

o similare, ho fatto tanti di quei tentativi che non ricordo più quello corretto.Così scrivo nel secondo edit ma non so cosa,non è di sicuro l'equivalente in binaro della parola che io ho inserito.

Scusatemi della mia ignoranza in termini di programmazione,non è il mio forte lo ammetto,ma purtroppo questo è il lavoro di tesi che mi hanno assegnato e in un modo o nell'altro tocca portarlo a termine.

Aspetto con ansia vostri suggerimenti.....ancora grazie!!!

PS:Se non sono stata chiara vi invito a dirmelo così vedo di dare altre indicazioni.

Link al commento
Condividi su altri siti


Scusa Marina, ma da vecchio (anche di età anagrafica, purtroppo) programmatore posso darti solo un consiglio valido: ferma tutto e studiati seriamente embedd VC++, magari studiando prima VC++.

La peggior cosa che si possa fare è partire a metere insieme un po' di istruzioni senza sapere bene cosa si sta facendo e come le cose intergiscano tra loro.

Io ti consiglierei un testo come: "Programmare in Visual C++" V edizione (o successiva), di Mondadori informatica. Sono più di 1200 pagine, ma servono tutte! Poi quando dominerai in modo decente VC++ trovati un testo specifico per embedded VC++, che metta in evidenza le differenze con la versione più ampia, e vedrai che, quasi per magia, i tuoi problemi odierno non esisteranno più, anche se ne scoprirai di nuovi. Ma questo è il bello del nostro lavoro.

Link al commento
Condividi su altri siti

Ciao Marina,

Prova con questa struttura per ricavare la data ed ora del sistema.

/*///////// Comenti 

QuickInfo
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Requires version 1.0 or later.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.


typedef struct _SYSTEMTIME {  // st 
    WORD wYear; 
    WORD wMonth; 
    WORD wDayOfWeek; 
    WORD wDay; 
    WORD wHour; 
    WORD wMinute; 
    WORD wSecond; 
    WORD wMilliseconds; 
} SYSTEMTIME; 


//////   ricava 

VOID GetSystemTime(
  LPSYSTEMTIME lpSystemTime   // address of system time structure
);




 */

//// codice

  #include winbase.h


  char m_Date[200]= {'\0'};

 _SYSTEMTIME m_SystemTimeObject;/// costruisce l'oggeto m_SystemTimeObject

 GetSystemTime(&m_SystemTimeObject);/// li passi l'indirizzo del oggeto alla func.

  /// essempio formata la stringa m_Date with the current date

  sprintf(m_Date,"%02d %02d %                    04d",m_SystemTimeObject.wDay,m_SystemTimeObject.wMonth,m_SystemTimeObject.wYear);


////////////////////////


 l'instruzione :

 GetDlgItem(IDC_edit1)->SetWindowText(m_Date);

dovrebbe andare bene per scrivere la data nel edit box identificato da IDC_edit1 .

Saluti.

Link al commento
Condividi su altri siti

MarinaCostigliola

Grazie a tutti, proverò con i vostri suggerimenti a modificare il mio programma (anzi,già lo sto facendo) e appena trovo una soluzione vi faccio sapere!!!

Link al commento
Condividi su altri siti

MarinaCostigliola

Savino, ti ringrazio x le correzioni, sei stato gentilissimo ma per fortuna non sono proprio al'asciutto di tutto,mi sto dando da fare e mi ero resa conto di qualche inprecisione, anzi a ben pensarci con precisione cosa va all'interno della funzione GetSystemTime?

Ancora Grazie!!!

Link al commento
Condividi su altri siti

Ciao Marina,

Dunque,

la struttura _SYSTEMTIME e' dichiarata nel file winbase.h,

quindi e' sufficiente includere essa nel tuo codice scrivendo

#include "winbase.h" al inizio del tuo file .cpp che ne fara' uso.

Spiegazione dei Members:

wYear

Specifies the current year.

wMonth

Specifies the current month; January = 1, February = 2, and so on.

wDayOfWeek

Specifies the current day of the week; Sunday = 0, Monday = 1, and so on.

wDay

Specifies the current day of the month.

wHour

Specifies the current hour.

wMinute

Specifies the current minute.

wSecond

Specifies the current second.

wMilliseconds

Specifies the current millisecond.

Poi, passandoli alla function l'indirizzo del oggetto che punta alla struttura , ricavi

i dati dal sistema.

_SYSTEMTIME m_SystemTimeObject;

GetSystemTime(&m_SystemTimeObject);

Dati :

m_SystemTimeObject.wDay

m_SystemTimeObject.wMonth

m_SystemTimeObject.wYear

m_SystemTimeObject.wDayOfWeek

m_SystemTimeObject.wHour

m_SystemTimeObject.wMinute

m_SystemTimeObject.wSecond

m_SystemTimeObject.wMilliseconds

La function :

VOID GetSystemTime(

LPSYSTEMTIME lpSystemTime

);

e' anche dichiarata nel file winbase.h e la sua implementazione si trova nel

file di libreria kernel32.lib il quale verra' linkato durante la compilazione

della tua applicazione.( assicurati di avere settato il path nel menu options).

Good luck!

Link al commento
Condividi su altri siti

Ciao Marina,

QuickInfo:

Il Kernel e' il "main module" del OS windows CE.

Questo fornishe "system services" per l'amministrazione di threads,memoria e resources.

Saluti.

Link al commento
Condividi su altri siti

imparati il linguaggio piu nuovo,evoluto , potente , flessibile e duttitile , e ad oggetti al 100% : C# o Visual C#.net

che deriva da C++.

Il vc++ e' macchinoso e patetico .

Nella nuova piattaforma .NET c'e' un'infinita di classi pronte per affrontare lo sviluppo di un sacco di tipologie ed applicazioni Windows e Web che si posson scrivere in VB.net, VC#.net , Vc++.net, VJ.net.

Se crei un file di installazione per distribuire un'applicazione (.msi) puoi usarlo su tutti i OS windows , e credo anche nei sistemi embedded e CE(custom edition)

Io installo programmi su win 2k e xp , non ho mai provato con embedded o CE .Al limite informati .

VC#.net e' un linguaggio fantastico e professionale .

ciao

walter

Modificato: da walterword
Link al commento
Condividi su altri siti

MarinaCostigliola

Savino, grazie ai tuoi consigli sono riuscita a prendere quello che mi serviva!!!Sei stato davvero un valido supporto.

Walter,ti ringrazio per il suggerimento ma purtroppo il palmare che l'università mi ha fornito ha come SO windowsCE e non windowsCE.net e per questo suppongo che il visual .net non vada bene, suppongo, perchè qui non c'è nessuno che mi sappi dire se è vero o meno, potrei provarci ma per me già imparare il Visual C++ mi viene difficile!! A presto!! Marina :P

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...