Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Recensione Borderlands 4, tra divertimento e problemi tecnici
Recensione Borderlands 4, tra divertimento e problemi tecnici
Gearbox Software rilancia la saga con Borderlands 4, ora disponibile su PS5, Xbox Series X|S e PC. Tra le novità spiccano nuove abilità di movimento, un pianeta inedito da esplorare e una campagna che lascia al giocatore piena libertà di approccio
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale
NXTPAPER 60 Ultra è il primo smartphone con tecnologia NXTPAPER 4.0 per il display, un ampio IPS da 7,2 pollici. Con finitura anti-riflesso, processore MediaTek Dimensity 7400, fotocamera periscopica e modalità Max Ink per il detox digitale, NXTPAPER 60 Ultra punta a essere il riferimento tra gli smartphone pensati per il benessere degli occhi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2013, 11:41   #41
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da sam333 Guarda i messaggi
lo so che è una figuraccia ma non so farlo
No che figuraccia, non nasciamo tutti imparati(cit.).

Ecco un esempio:

http://www.hwupgrade.it/forum/showpo...79&postcount=6
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 13:39   #42
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ecco Sam, da qui puoi scaricare la libreria statica precompilata per Linux:

http://www.filedropper.com/libreaddirtar

C'è la versione a 32 bit(X86), libreaddir32.a, e la versione a 64 bit(X86_64, AMD64), libreaddir64.a

Per usarla:

readdir.h
Codice:
#ifndef MY_READDIR_H
#define MY_READDIR_H

void getDirInfo(char *dirName, uint64_t *pDim, int depth, void (*pfnOnChange)(const char *pathName, int depth, struct stat *statOut));

#endif /* MY_READDIR_H */
main.c
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <unistd.h>

#include "readdir.h"

// gcc -O3 -m32 main.c libreaddir32.a -o readdir32
// gcc -O3 -m64 main.c libreaddir64.a -o readdir64

void OnChange(const char *pathName, int depth, struct stat *statOut)
{
	if ( S_ISDIR(statOut->st_mode) )
		printf("%*sDirectory: %s\n", (depth - 1) * 3, "", pathName);
	else
		printf("%*s%s\n", (depth - 1) * 3, "", pathName);	
}

int main(int argc, char **argv)
{
	uint64_t dim = 0;
	
	if(argc != 2)
	{
		fprintf(stdout, "uso: %s <dirpath>\n", argv[0]);
		fflush(stdout);
		return -1;
	}
	
	//getDirInfo(argv[1], &dim, 0, OnChange);
	getDirInfo(argv[1], &dim, 0, NULL);
	
	fprintf(stdout, "La dimensione della directory \"%s\" e' di %llu byte.\n", argv[1], (unsigned long long)dim);	
	
	return 0;
}
Compilare a 32 bit:
Codice:
gcc -O3 -m32 main.c libreaddir32.a -o readdir32
Compilare a 64 bit:
Codice:
gcc -O3 -m64 main.c libreaddir64.a -o readdir64
Più tardi ti posto le librerie statiche precompilate per Windows.

Ultima modifica di Vincenzo1968 : 12-03-2013 alle 17:44.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 17:18   #43
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ecco, Sam, da qui puoi scaricare le static library per Windows/Visual Studio 2012:

http://www.filedropper.com/libreaddir

Uso:

readdir.h
Codice:
#ifndef MY_READDIR_H
#define MY_READDIR_H

#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>

#define ARRAY_SIZE(Array) (sizeof(Array) / sizeof((Array)[0]))

// Dati usati dalla funzione DirWalkRecurse
typedef struct
{
	TCHAR  szInitPath[_MAX_DIR];		// Path iniziale
	TCHAR  szCurrPath[_MAX_DIR];		// Path corrente
	TCHAR  szPathParent[_MAX_DIR];		// Path genitore di szCurrPath
	TCHAR  szCurrDir[_MAX_DIR];			// Path temporaneo; ci servirà per la ricerca dei files
	int    nDepth;						// Profondità
	BOOL   fRecurse;					// impostare a TRUE per ottenere la scansione delle sottodirectory. 
	TCHAR  szBuf[1024];					// Buffer per l'output formattato 
	int    nIndent;						// Contatore per l'indentazione 
	BOOL   fOk;							// Loop control flag 
	BOOL   fIsDir;						// Loop control flag 
	WIN32_FIND_DATA FindData;			// Informazioni sui file 
} DIRWALKDATA, *LPDIRWALKDATA;

void getDirInfo(LPCTSTR pszRootPath, BOOL fRecurse, uint64_t *pDim, void (CALLBACK *pfnOnChange)(LPDIRWALKDATA));

#endif /* MY_READDIR_H */
main.c
Codice:
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>

#include "readdir.h"

void CALLBACK OnChange(LPDIRWALKDATA pDW)
{
	_tprintf(_TEXT("%s\n"), pDW->szBuf);
}

//int main(int argc, char* argv[])
int _tmain(int argc, TCHAR *argv[])
{
	uint64_t dim = 0;
	
	if( argc < 2 )
		return -1;

	getDirInfo(argv[1], TRUE, &dim, OnChange);
	//getDirInfo(argv[1], TRUE, &dim, NULL);
	
	printf("\nLa dimensione della directory \"%s\" e': %llu byte\n", argv[1], (unsigned long long)dim);

	return 0;
}
Copia i file libreaddir32.lib e libreaddir64.lib nella cartella dei sorgenti:



Per la configurazione a 32 bit indica al linker la libreria a 32 bit:





Per la configurazione a 64 bit indica al linker la libreria a 64 bit:





Se invece usi una versione precedente di Visual Studio(2010?), bisogna ricompilare le librerie con quella versione.

Visual Studio

Ultima modifica di Vincenzo1968 : 12-03-2013 alle 17:43.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 17:40   #44
sam333
Member
 
Iscritto dal: Jan 2013
Messaggi: 205
grazie mille!! ora mi studierò per bene le librerie dinamiche
sam333 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 17:41   #45
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ecco le librerie per Visual Studio 2010:

http://www.filedropper.com/libreaddirvs2010
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2013, 10:27   #46
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ecco le shared library per Linux:

http://www.filedropper.com/readdirsharedlibtar

Uso:

32 bit:
Codice:
gcc -O3 -m32 -L. -lreaddir32 main.c -o readdir32

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

./readdir32 ~/Contest19
64 bit:
Codice:
gcc -O3 -m64 -L. -lreaddir64 main.c -o readdir64

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.

./readdir64 ~/Contest19
Se schiaffi la libreria in uno dei percorsi standard, tipo "/usr/local/lib", non c'è bisogno del comando export

readdir.h
Codice:
#ifndef MY_READDIR_H
#define MY_READDIR_H

#if defined _WIN32 || defined __CYGWIN__
	#ifdef MYDLL_EXPORTS
		#define MYDLL_API __declspec(dllexport)
	#else
		#define MYDLL_API __declspec(dllimport)
	#endif
#else
	#if __GNUC__ >= 4
		#define MYDLL_API __attribute__ ((visibility ("default")))
	#else
		#define MYDLL_API 
	#endif
#endif


#ifdef __cplusplus
extern "C" {
#endif

MYDLL_API void getDirInfo(char *dirName, uint64_t *pDim, int depth, void (*pfnOnChange)(const char *pathName, int depth, struct stat *statOut));

#ifdef __cplusplus
}
#endif

#endif /* MY_READDIR_H */
main.c
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <unistd.h>

#include "readdir.h"

void OnChange(const char *pathName, int depth, struct stat *statOut)
{
	if ( S_ISDIR(statOut->st_mode) )
		printf("%*sDirectory: %s\n", (depth - 1) * 3, "", pathName);
	else
		printf("%*s%s\n", (depth - 1) * 3, "", pathName);	
}

int main(int argc, char **argv)
{
	uint64_t dim = 0;
	
	if(argc != 2)
	{
		fprintf(stdout, "uso: %s <dirpath>\n", argv[0]);
		fflush(stdout);
		return -1;
	}
	
	getDirInfo(argv[1], &dim, 0, OnChange);
	//getDirInfo(argv[1], &dim, 0, NULL);
	
	fprintf(stdout, "La dimensione della directory \"%s\" e' di %llu byte.\n", argv[1], (unsigned long long)dim);	
	
	return 0;
}
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2013, 12:30   #47
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Ecco le dll per Windows:

http://www.filedropper.com/libreaddirwinnew


Uso:

readdir.h
Codice:
#ifndef MY_READDIR_H
#define MY_READDIR_H

#if defined _WIN32 || defined __CYGWIN__
	#ifdef MYDLL_EXPORTS
		#define MYDLL_API __declspec(dllexport)
	#else
		#define MYDLL_API __declspec(dllimport)
	#endif
#else
	#if __GNUC__ >= 4
		#define MYDLL_API __attribute__ ((visibility ("default")))
	#else
		#define MYDLL_API 
	#endif
#endif

#define ARRAY_SIZE(Array) (sizeof(Array) / sizeof((Array)[0]))

#ifdef __cplusplus
extern "C" {
#endif

// Dati usati dalla funzione DirWalkRecurse
typedef struct
{
	TCHAR  szInitPath[_MAX_DIR];		// Path iniziale
	TCHAR  szCurrPath[_MAX_DIR];		// Path corrente
	TCHAR  szPathParent[_MAX_DIR];		// Path genitore di szCurrPath
	TCHAR  szCurrDir[_MAX_DIR];			// Path temporaneo; ci servirà per la ricerca dei files
	int    nDepth;						// Profondità
	BOOL   fRecurse;					// impostare a TRUE per ottenere la scansione delle sottodirectory. 
	TCHAR  szBuf[1024];					// Buffer per l'output formattato 
	int    nIndent;						// Contatore per l'indentazione 
	BOOL   fOk;							// Loop control flag 
	BOOL   fIsDir;						// Loop control flag 
	WIN32_FIND_DATA FindData;			// Informazioni sui file 
} DIRWALKDATA, *LPDIRWALKDATA;

MYDLL_API void getDirInfo(LPCTSTR pszRootPath, BOOL fRecurse, uint64_t *pDim, void (CALLBACK *pfnOnChange)(LPDIRWALKDATA));

#ifdef __cplusplus
}
#endif

#endif /* MY_READDIR_H */
main.c
Codice:
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <tchar.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>

#include "readdir.h"

void CALLBACK OnChange(LPDIRWALKDATA pDW)
{
	_tprintf(_TEXT("%s\n"), pDW->szBuf);
}

//int main(int argc, char* argv[])
int _tmain(int argc, TCHAR *argv[])
{
	uint64_t dim = 0;
	
	if( argc < 2 )
		return -1;

	getDirInfo(argv[1], TRUE, &dim, OnChange);
	
	printf("\nLa dimensione della directory \"%s\" e': %llu byte\n", argv[1], (unsigned long long)dim);

	return 0;
}
Ricordarsi di impostare il file d'importazione .lib:

32 bit:



64 bit


Ricordati di piazzare la dll nella stessa cartella dell'eseguibile o nella cartella di sistema, solitamente "C:\Windows\System32".

Ultima modifica di Vincenzo1968 : 13-03-2013 alle 12:51.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Nuove regole per l'AI di Meta: niente co...
iPhone 16 in Bianco e altri 2 colori a s...
Microsoft rimuove il blocco dell'aggiorn...
TikTok 'MAGA al 100%': Trump vuole modif...
Stuttering e freeze sui laptop da 3.000 ...
Government Data Intelligence for Agricul...
iPhone 17e limitato per non oscurare iPh...
Windows 11 può usare l'IA per cla...
Microsoft Edge diventa più sicuro...
Yakuza Kiwami 3: il nuovo trailer mostra...
Geely lo fa davvero: auto con garanzia a...
'Troppi videogiochi': ecco perché...
Videogiochi e TV aumentano la concentraz...
OneXFly Apex è la console portati...
Dati impressionanti: le auto autonome di...
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: 12:21.


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