View Single Post
Old 21-04-2011, 23:02   #20
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Emaborsa Guarda i messaggi
...boh, non la capisco. Saranno le mie scarse conoscenze di C++.
Semplicemente quel codice costruisce un oggetto vettore di unsigned char (è uguale anche usando char) ampio imageSize.
Il vantaggio di vector è che è compatibile con gli array del C.

Quote:
ok, capito....allora come faccio? ok posso fare il cast in un char*, ma poi con quello cosa ci faccio? Al momento ho questo codice:

Codice:
char* ptImage = (char*) malloc(imageSize);

	memcpy(ptImage, sqlite3_column_blob(pStmt, 3), imageSize);

	const unsigned char* ptFilename = sqlite3_column_text(pStmt, 4);
	const char* ptFilenameChar = (const char*) ptFilename;
	ofstream outfile (ptFilenameChar,ofstream::binary);
	outfile.write (ptImage,imageSize);
Questo l'ho fatto per vedere se il codice è OK, e in effetti funziona, dato che mi crea il jpg su disco fisso. Io però ho bisogno dell'oggetto FILE*. C'è un modo per farlo o devo scrivere sul disco (come attualmente fa) e poi aprirlo con fopen?
Perchè vuoi proprio farti del male utilizzando FILE*?
In tal caso devi usare le funzioni di io su file del C al posto di ofstream tipo:
Codice:
FILE * fp = fopen(ptFilenameChar, "wb");
fwrite (ptImage, 1 , imageSize , fp );
...
fclose(fp);
tomminno è offline   Rispondi citando il messaggio o parte di esso