Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2013, 12: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, 14: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 18:44.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 18: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 18:43.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2013, 18: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, 18: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, 11: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, 13: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 13:51.
Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
Piratare Battlefield 6? Davvero una pess...
Arriva Veeam Data Platform v13. Pi&ugrav...
Framework interrompe la vendita di RAM: ...
Tachyum inventa le memorie TDIMM: una nu...
Roborock Q7 TF+, il robot economico cost...
Osca rinasce: le auto dei fratelli Maser...
Hlpy, la tecnologia al servizio dell’ass...
Ericsson rilancia sul 5G Standalone: l’I...
Black Friday Amazon: arrivano i super-sc...
Seagate raggiunge 6,9 TB per piatto con ...
Samsung lancia la One Shot Challenge: co...
Dell: il passaggio da Windows 10 a Windo...
Black Friday Speaker: JBL, Bose, Sony, M...
Hai un router ASUS? La nuova falla in Ai...
SK hynix trasforma i chip HBM in snack: ...
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: 20:07.


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