Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Abbiamo provato il nuovo HUAWEI Pura 80 Pro. Parliamo di uno smartphone che è un vero capolavoro di fotografia mobile, grazie ad un comparto completo in tutto e per tutto, In questa colorazione ci è piaciuto molto, ma i limiti hardware e software, seppur in netto miglioramento, ci sono ancora. Ma HUAWEI ha fatto davvero passi da gigante per questa nuova serie Pura 80. Buona anche l'autonomia e soprattutto la ricarica rapida sia cablata che wireless, velocissima.
Opera Neon: il browser AI agentico di nuova generazione
Opera Neon: il browser AI agentico di nuova generazione
Abbiamo provato il nuovo web browser con intelligenza artificiale della serie Opera accessibile tramite abbonamento. Ecco le nostre prime impressioni sulle funzionalità di Opera Neon basate su AI e come funzionano
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-08-2008, 18:30   #1
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
[C++] passare due puntatori a una funzione

ciao a tutti,
scusate ma non sapevo della regola di scrivere tra [] il linguaggio!!! sono nuovo!!!
comunque vorrei riprendere la discussione iniziata qua: http://www.hwupgrade.it/forum/showthread.php?t=1798829
ciao
ps: rispondetemi presto!!!
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2008, 18:36   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Dagli errori riportati non sembra che abbia fatto come suggerito, anche se giuri... non e' per caso che la funzione copyfile() e' in un altro file, ed hai cambiato solo il .cpp ma non il .h?

Inoltre immagino che in libreria ci sia gia' una funzione con questo nome. Prova a dargli un altro nome (per esempio, copia_file()) e riprova...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2008, 19:04   #3
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
grazie,
forse il problema era dovuto all'esistenza di quella funzione in una libreria...
ora tui sarei grato semi aiutassi ancora una volta!!!
funzione usata per richiamare la funzione:
Codice:
copydir("E:\\Php", buf);
funzione:
Codice:
void copydir(char *percorso[MAX_PATH], char *percorso2[MAX_PATH])
{

  char tpercorso2[MAX_PATH];
  strcat(tpercorso2, "E:\\Documents and Settings\\Matteo\\Immagini\\");
  strcat(tpercorso2, percorso2);
  strcpy(percorso2, tpercorso2);
  listadir.push_back(percorso2);
  search(percorso, percorso2);

  //cout<<endl<<endl<<endl;

  crearedir(percorso2);

  copyallfile();


  //system("pause");
}
c'è un problema nel passare i dati alla copy dir e nell'"elaborazione" della variabile con il percorso.
Devono essere tutti legati alle conversioni da char a const char o altre...
ciao
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 13-08-2008, 22:47   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
Codice:
void copydir(char *percorso[MAX_PATH], char *percorso2[MAX_PATH])
Ad una prima occhiata al codice, sembri interessato a passare due stringhe a questa funzione, pertanto l'intestazione sopra riportata non e' corretta (la si potrebbe interpretare come "vettori di stringhe" mentre vuoi due stringhe solamente).

Prova con
Codice:
void copydir(char *percorso, char *percorso2)
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 11:42   #5
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
ciao,
siamo alla fine: la libreria è conclusa e funziona, solo che provandola da un file main.cpp quando il programma finisce dopo il system("pause") viene fuori il tipico messaggio windows:
Si è verificato un errore in Progetto1.exe. L'applicazione verrà chiusa.
main.cpp
Codice:
#include <iostream.h>
#include "copymydir.h"

int main()
{
    char name[] = ("prova");
    copymydir("E:\\Php", name);
    system("pause");
    
}
copymydir.h
Codice:
//#include "stdafx.h" 

#include <windows.h> 
#include <iostream> 
#include <stdio.h> 
#include <vector> 
#include <string> 
#include <direct.h>
#include <fstream>
#include "copymyfile.h"

using namespace std; 

vector<string> listaofile; 
vector<string> listadfile;
vector<string> listadir;

void search(char *p, char *p2) 
{ 
  WIN32_FIND_DATA fd; 

  char tlist[MAX_PATH]; 
  char pf[MAX_PATH]; 

  strcpy(pf, p); 
  strcat(pf, "\\*.*"); 

  HANDLE h = FindFirstFile(pf, &fd); 
  if (h != INVALID_HANDLE_VALUE) 
  { 
    do 
    { 
      if( strcmp(fd.cFileName, ".") && strcmp(fd.cFileName, "..")) 
      { 
        if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) 
        { 
          //printf ("[%s]\n", fd.cFileName); 
          //per continuare la ricerca:
          char pf[MAX_PATH]; 
          strcpy(pf, p); 
          strcat(pf, "\\"); 
          strcat(pf, fd.cFileName); 
          
          //per generare la lista
          strcpy(tlist, p2);
          strcat(tlist, "\\");
          strcat(tlist, fd.cFileName);
          listadir.push_back(tlist);

          search(pf, tlist); 
        } 
        else 
        { 
          //printf ("\t%s\n", fd.cFileName); 
          //lista origine file
          strcpy(tlist, p); 
          strcat(tlist, "\\"); 
          strcat(tlist, fd.cFileName); 
          listaofile.push_back(tlist); 
          //lista destinazione file
          char tdlist[MAX_PATH];
          strcpy(tdlist, p2);
          strcat(tdlist, "\\");
          strcat(tdlist, fd.cFileName);
          listadfile.push_back(tdlist);          
          
        } 
      } 
    } while (FindNextFile(h, &fd)); 

    FindClose(h); 
  } 
  else 
    printf("Errore %d\n", GetLastError ()); 
} 

void crearedir(char *d){

  //e tutte le altre...
  vector<string>::iterator a = listadir.begin();
  while(a != listadir.end())
  {
        cout<<*a<<endl;
        mkdir(a->c_str());
        a++;
  }

  cout<<"Cartelle create.\n";

}


void copyallfile()
{
    vector<string>::iterator a = listaofile.begin();
    vector<string>::iterator b = listadfile.begin();
    while(a != listaofile.end())
    {
        cout<<"Origine  "<<*a<<endl;
        cout<<"   Destinazione  "<<*b<<endl;
        
        copymyfile((*a).c_str(), (*b).c_str());
        
        a++; b++;
    }

}

void copymydir(char *percorso, char *percorso2) 
{ 

  char tpercorso2[MAX_PATH];
  strcat(tpercorso2, "E:\\Documents and Settings\\Matteo\\Documenti\\Immagini\\");
  strcat(tpercorso2, percorso2);
  strcpy(percorso2, tpercorso2);
  listadir.push_back(percorso2);
  search(percorso, percorso2); 

  cout<<endl<<endl<<endl; 

  crearedir(percorso2);
  
  copyallfile();
  
}
copymyfile.h
Codice:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;

void copymyfile(const char *origine, const char *destinazione)
{
    char sfile;
    

    ifstream in(origine, ios::in | ios::binary);
    if(!in)
    {
        cout<<"Impossibile aprire il file di origine!!!";
    }
    ofstream out(destinazione, ios::out | ios::binary);
    if(!out)
    {
        cout<<"Impossibile aprire il file di destinazione!!!";
    }
    
    while(!in.eof())
    {
        in.get(sfile);
        out.put(sfile);
    }
    
    in.close();
    out.close();
    
    
}
ciao ciao
ti sarò e sono molto grato...
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:09   #6
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Prova a sostituire:

Codice:
    char name[] = ("prova");
con
Codice:
    char *name = "prova";
e posta il risultato...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:13   #7
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
En passant, ne ho vista un'altra:
Codice:
void copymydir(char *percorso, char *percorso2) 
{ 
  char tpercorso2[MAX_PATH];
  strcat(tpercorso2, "E:\\Documents and Settings\\Matteo\\Documenti\\Immagini\\");
  strcat(tpercorso2, percorso2);
Beh, almeno la prima deve essere una strcpy(), cosa ne dici? Qualcosa del tipo:

Codice:
void copymydir(char *percorso, char *percorso2) 
{ 
  char tpercorso2[MAX_PATH];
  strcpy(tpercorso2, "E:\\Documents and Settings\\Matteo\\Documenti\\Immagini\\");
  strcat(tpercorso2, percorso2);
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:21   #8
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
dunque con la prima sostituzione l'errore arriva all'apertura del programma, con la seconda come sempre alla fine...
che femo???
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:31   #9
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Il codice che hai pubblicato e' lunghino e non e' facile individuare ad occhio il problema. Occorre fare un po' di debugging. Cmq le modifiche che ti ho suggerito dovrebbero essere corrette, per cui ti consiglio di tenerle.

Hai parlato di errore: e' qualcosa del tipo "L'istruzione a 0x004018b8 ha fatto accesso alla memoria 0x0000000c. La memoria non poteva essere "written"" o simile?

Se fosse cosi', sarebbe interessante sapere cosa scrive esattamente ed i numeri che sono scritti in quel dialogo. Inoltre servirebbe vedere il .map che e' stato generato dal linker (usi Visual C?)

Nel caso fosse qualche altro errore, servono piu' dettagli altrimenti si brancola nel buio....

Se e' Visual, potresti postare l'intero progetto? Si fa prima... (beh, io ho una versione molto vecchia, speriamo di farcela)
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 12:41   #10
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Intanto ne ho vista un'altra: per inciso, questo significa che le modifiche che ti ho suggerito sembrano andar bene.



Codice:
void copymydir(char *percorso, char *percorso2) 
{ 

  char tpercorso2[MAX_PATH];
  strcat(tpercorso2, "E:\\Documents and Settings\\Matteo\\Documenti\\Immagini\\");
  strcat(tpercorso2, percorso2);
  strcpy(percorso2, tpercorso2);
  listadir.push_back(percorso2);
  search(percorso, percorso2); 

  cout<<endl<<endl<<endl; 

  crearedir(percorso2);
  
  copyallfile();
  
}
Guarda l'istruzione in neretto: dopo aver attaccato il path, copi il risultato sulla variabile di ingresso, quella che originariamente valeva "prova".
Siccome il compilatore ti ha riservato solo 6 byte per quella variabile (cioe' sufficiente a contenere la parola "prova" + il carattere di terminazione della stringa), non c'e' spazio sufficiente per tutta la nuova stringa.
Vai quindi a sovrascrivere qualcos'altro (qualcosa che non doveva essere sovrascritto) dunque il programma termina con un errore.

Soluzioni:
1 - prima di tutto, valutare se ti serve davvero copiare indietro la stringa, poiche' ad una prima analisi potresti benissimo usare tpercorso2;

2 - Chiedere al compilatore di allocare piu' spazio per detta stringa. Comunque ricordati che le operazioni che hai usato, quali strcpy() e strcat() non possono controllare se c'e' spazio sufficiente per copiare quanto serve. Copiano e basta, e se non c'e' spazio puo' succedere di tutto (la fortuna e' andare immediatamente in crash, cosi' da trovarlo).

In questo secondo caso, per esempio potresti sostituire nel tuo main l'istruzione

Codice:
char *name = "prova";
con
Codice:
char name[MAX_PATH];
strcpy (name, "prova");
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 13:40   #11
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
evvai!!!!
6 un grande!!!
dovevo scrivere quel max path!!!
grazie!
se ho ancora problemi faccio sapere
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 13:52   #12
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
bene, il programma che volevo creare funziona alla perfezione!!! solo un'ultima cosa fastidiosa:
quando si apre viene visualizzata dietro la finestra principale (che viene creata dal file di risorse e che quindi ha un interfaccia, diciamola così!!!) la tipica finestra della console... siccome non mi era mai successo volevo sapere come posso toglierla (non renderla visibile).
ciao
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:04   #13
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
bene, il programma che volevo creare funziona alla perfezione!!! solo un'ultima cosa fastidiosa:
quando si apre viene visualizzata dietro la finestra principale (che viene creata dal file di risorse e che quindi ha un interfaccia, diciamola così!!!) la tipica finestra della console... siccome non mi era mai successo volevo sapere come posso toglierla (non renderla visibile).
ciao
Penso di non aver capito. Da quel poco che ho capito, dipende dal progetto che hai creato, perche' se crei un normale progetto "Win32 console" non ci sono altre finestre, risorse o quant'altro...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:07   #14
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
ciao,
io uso dev-c++ ... comunque ho creato un progetto vuoto ma sto lavorando con le API in modo che il mio programma abbia un'interfaccia grafica e non si apra più con la console (il prompt dei comandi o cmd.exe)... tutto funziona a parte il fatto che si apre comunque la console!!!
in pratica mi ritrovo con due finestre: quella da me creata con le api e la finestra console vuota.
Quindi non sai che dirmi???
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:20   #15
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
ciao,
io uso dev-c++ ... comunque ho creato un progetto vuoto ma sto lavorando con le API in modo che il mio programma abbia un'interfaccia grafica e non si apra più con la console (il prompt dei comandi o cmd.exe)... tutto funziona a parte il fatto che si apre comunque la console!!!
in pratica mi ritrovo con due finestre: quella da me creata con le api e la finestra console vuota.
Quindi non sai che dirmi???

Non ho mai visto dev-c++. Posso immaginare che quando crei un progetto devi selezionare quale tipo vuoi: console, win32,....
Probabilmente hai creato il progetto console, salvo aprire poi le tue finestre di grafica.
Hai gia' provato a creare qualche altro tipo di progetto?

Magari qualcuno piu' esperto ti puo' aiutare...
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:25   #16
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da Mattyfog Guarda i messaggi
ciao,
io uso dev-c++
Ti consiglio di provare Code::Blocks invece di Dev-C++, è un'IDE sicuramente più maturo e completo (oltre che ancora vivo ).

Per il fatto delle "due finestre" c'è da dire che se hai creato un progetto per console e poi hai creato le finestre solo in seguito usando le API Win32, il tuo progetto sarà sempre un'applicazione per console. Fai prima a creare un nuovo progetto riutilizzando il codice scritto finora.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 14:26   #17
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Non ho mai visto dev-c++. Posso immaginare che quando crei un progetto devi selezionare quale tipo vuoi: console, win32,....
Azz mi hai preceduto!

Comunque sì, è esatto quel che hai detto, è semplicemente che veniva compilato un target diverso da quello che gli interessava.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 15:09   #18
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
già meglio code::blocks...
comunque il problema non è stato risolto... piuttosto cè una roba molto strana: il programma deve semplicemente copiare da una cartella predefinita tutti i file in una cartella scelta dall'utente. L'utente infatti deve solo inserire un nome come ad esempio montagna2008 perchè tutti i file vengano copiati dentro Documenti\Immagini\montagna2008. Ora il programma funziona a volte si a volte no. Infatti dopo aver copiato le immagini a volte si chiude.
Il codice è qui allegato se potete aiutarmi...
grazie
ps: la finestra era colpa mia che scemo!!! avevo avviato in modalità debug e quindi... ciao!!!
Allegati
File Type: zip Copia immagini.zip (3.6 KB, 1 visite)

Ultima modifica di Mattyfog : 14-08-2008 alle 15:11.
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 15:31   #19
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Prima di tutto, risolvi i blind trust (i.e. "fede cieca"): e' un anti-pattern molto comune che consiste nel credere sempre che quello che si fa vada a buon fine.
Per esempio, nel tuo codice:

Codice:
void copymyfile(const char *origine, const char *destinazione)
{
    char sfile;

    ifstream in(origine, ios::in | ios::binary);
    if(!in)
    {
        //cout<<"Impossibile aprire il file di origine!!!";
    }
    ofstream out(destinazione, ios::out | ios::binary);
    if(!out)
    {
        //cout<<"Impossibile aprire il file di destinazione!!!";
    }

    while(!in.eof())
    {
        in.get(sfile);
        out.put(sfile);
    }

    in.close();
    out.close();
}
E' chiaro che se non riesci ad aprire i file per qualsiasi motivo,
1 - non lo saprai mai;
2 - l'applicazione andra' in crash;

Dovresti risolvere prima queste cose, anche se non ti risolvono il problema specifico.
Dopo di che, avrai piu' probabilita' di avere dei crash "regolari", cioe' che avvengono sempre quando si verifica una determinata condizione (cioe' una condizione che si puo' capire). Se riesci ad ottenere dei crash cosi', e' sicuramente piu' facile risolverli.

Suggerimento: per quanto riguarda l'esempio sopra riportato, potresti modificare facendo riportare un codice di errore alla funzione, per esempio:

bool copymyfile (......);

potresti far ritornare true se tutto ok, false in caso di errori,...

Penso ci siano altri casi come questi nel tuo codice. Inoltre dovresti controllare quanto diventano lunghe le tue stringhe.

Una volta che hai fatto queste cose, se vuoi, potresti postare il nuovo codice
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-08-2008, 15:50   #20
Mattyfog
Senior Member
 
Iscritto dal: Jul 2008
Messaggi: 1426
ciao,

ho provato ad inserire alcuni cout cosicchè in modalità debug potessi osservare cosa succedesse.
Ho così scoperto che, i file vengono ciopiati senza alcun errore e l'operazione finisce bene. Semplicemente però dopo che l'operazione viene eseguita il programma va in tilt, vale a dire che appena ci si clicca sopra col mouse (oppure viene "modificato" con una messagebox) parte l'errore. E' come se non fosse più capace di rispondere.
Codice:
#include <windows.h>
#include "copymydir.h"
#include "resource.h"


BOOL CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch(msg)
    {
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case ID_EXIT:
                    PostQuitMessage(0);
                    break;
                case ID_COPY:
                    int len = GetWindowTextLength(GetDlgItem(hWnd, IDC_EDIT1));
                    if(len < 0)
                    {
                        cout<<"Non è stato inserito alcun nome.";
                    }
                    if(len > 0)
                    {
                        //int i;
                        char* buf;

                        cout<<"iniziato.";

                        buf = (char*)GlobalAlloc(GPTR, len + 1);
                        GetDlgItemText(hWnd, IDC_EDIT1, buf, len + 1);

                        //... fa qualcosa con il testo ...
                        cout<<"iniziato.";

                        copymydir("E:\\Php", buf);

                        GlobalFree((HANDLE)buf);
                    }

                    //MessageBox(NULL, "Copia effettuata!", "Finito", MB_OK);

                    cout<<"Copia effettuata.\n";

                    break;
             }
            break;

        case WM_CLOSE:
            cout<<"E' stato deciso di chiudere l'applicazione.\n";
            DestroyWindow(hWnd);
            break;

        case WM_DESTROY:
            cout<<"L'applicazione sta per essere chiusa.\n";
            PostQuitMessage(0);
            break;
    }

    return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MSG msg;

    //Creo la form dalle risorse.
    HWND hWnd = CreateDialogParam(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, WndProc, NULL);

    ShowWindow(hWnd, SW_SHOWNORMAL);
    UpdateWindow(hWnd);

    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return msg.wParam;
}
Mattyfog è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
1.200 CV e drift a 213 km/h: la supercar...
Shenzhou-21: esperimenti sui topi in orb...
Cloudera punta su cloud privato e intell...
Il mistero del Ryzen 7 9700X3D: prezzo p...
Posticipato il rientro dell'equipaggio c...
Propaganda russa e hactivism fra le prin...
Superluna del Castoro: stasera il satell...
NVIDIA regala una GeForce RTX 5090 Found...
Snowflake punta su Intelligence, l'IA pe...
Volkswagen realizzerà i propri chip per ...
Formula E GEN4 svelata: 600 kW di potenz...
PC Desktop HP Victus con RTX 4060 e Ryze...
Fastnet, il 'mega-cavo' di AWS che pu&og...
Offerte Amazon da non perdere: GeForce R...
Clima, l'UE trova l'accordo sul taglio d...
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: 05:01.


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