Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla
OPPO Watch X2 Mini è uno smartwatch compatto capace di offrire un'esperienza completa di monitoraggio della salute e fitness con una cassa da 43 mm che può adattarsi a qualsiasi tipo di polso, dal più grande al - soprattutto - più piccolo. Con l'architettura dual-chip e un'autonomia che può coprire due giorni con tranquillità, rappresenta la soluzione ideale per chi cerca prestazioni premium in un formato ridotto.
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione
Dopo il recente lancio della serie Xiaomi 15T di Monaco, vi parliamo oggi della versione più performante della nuova famiglia, ovvero Xiaomi 15 T Pro. Vi raccontiamo la nostra prova nel dettaglio, spiegando perché a questo prezzo e in questa fascia, questo smartphone ha davvero senso tenerlo in seria considerazione.
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento
Acer ha ampliato la sua offerta professionale con il TravelMate P6 14 AI, un notebook ultraleggero e robusto pensato per chi lavora in mobilità. Certificato Copilot+ PC, combina design premium, autonomia elevata e piattaforma Intel Core Ultra Serie 2 con funzionalità AI, garantendo sicurezza, affidabilità e produttività per l'utenza business moderna.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 27-08-2005, 22:28   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
[C] enumerazione contenuto dir

allora, stavolta il mio problema è il seguente: sto lavorando sull'affarone delle DLL (ho fatto altri thread in passato, qualcuno quindi forse se lo ricorda) e devo semplicemente caricare nel mio processo tutte le mie DLL. tutto molto semplice, ma il problema è che il codice deve essere il più possibile portabile (tranne ovviamente il LoadLibrary), quindi devo scrivere un codice compilabile sia in VC++ sia col gcc che in un modo o nell'altro si procuri una lista delle librerie esterne da caricare e e carichi.

avevo pensato semplicemente di mettere le librerie in una dir speciale, e di far enumerare il suo contenuto dal programma, che poi fa un tentativo di caricamento per ciascun file che trova.

come si fa in C puro e portabile ad enumerare il contenuto di una cartella? altrimenti avete proposte migliori? thx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 22:54   #2
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Al solito,ai tuoi quesiti io purtroppo non sono minimamente in grado di risponderti (e giustamente ti chiederai...perchè quindi non ti astieni dal farlo? -> la risposta è: non lo so! )...ma tu quando dici di voler compilare anche con gcc,intendi che vuoi comunque compilare sempre sotto windows?

Se la risposta è si,hai pensato di passare solo le opzioni al compilatore più che scrivere qualcosa in C puro apposta?

Codice:
Gcc Directory Options
           -Bprefix  -Idir  -iquotedir  -Ldir  -specs=file  -I-
Perdonami se ho solo scritto stupidaggini.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:09   #3
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
man opendir
Scherzi a parte. opendir readdir e closedir sono standard posix e quindi esserci pure su windows.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:13   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da RaouL_BennetH
Al solito,ai tuoi quesiti io purtroppo non sono minimamente in grado di risponderti (e giustamente ti chiederai...perchè quindi non ti astieni dal farlo? -> la risposta è: non lo so! )...

LOL... però sei simpatico!!!

Quote:
ma tu quando dici di voler compilare anche con gcc,intendi che vuoi comunque compilare sempre sotto windows?
dovevo specificare meglio: la risposta è no, devo compilare col gcc e con qualsiasi altro compilatore C. ho scritto tutto in C standard tranne alcune parti non portabili (socket tcp/ip e poche altre cose) che Daniele si è offerto di aiutarmi a portare.

Quote:
Perdonami se ho solo scritto stupidaggini.
figurati; cioè NO!!! *non hai* scritto stupidaggini!!!!
(dai come gaf sarebbe stata stupenda... solo che visto che l'ho scritta non è una gaf... scherzi a parte, ognuno ha i suoi campi di specializzazione nei quali eccelle e poi se proprio vuoi saperlo le opzioni del gcc che hai scritto non le conosco, quindi sai almeno una cosa più di me )

ciao
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:27   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da VICIUS
man opendir
Scherzi a parte. opendir readdir e closedir sono standard posix e quindi esserci pure su windows.
e infatti non ci sono...
cercando in MSDN ho trovato una sottosezione di "Win32 and COM programming" che spiega un certo Interix (non so cosa sia) e come migrare da UNIX a Windows... qualcuno ne sa qualcosa? potrebbe servirmi anche per l'università in effetti...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:39   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ho provato a tirare fuori qualche ricordo di api e mi son ricordato qualcosa tipo FindNextFile, FindFirstFile ... forse è quello che ti serve. Ovviamente portabilità 0.

edit: google utile come al solito: http://www.microsoft.com/japan/devel...dfirstfile.htm

ciao

Ultima modifica di VICIUS : 27-08-2005 alle 23:41.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 27-08-2005, 23:42   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da VICIUS
Ho provato a tirare fuori qualche ricordo di api e mi son ricordato qualcosa tipo FindNextFile, FindFirstFile ... forse è quello che ti serve. Ovviamente portabilità 0.
infatti... e cmq le conoscevo già, e anche non conoscendole sarebbero bastati suppergiù 90 sec in MSDN
quello che mi serviva era qualcosa di portabile :\


edit:
Quote:
Originariamente inviato da VICIUS
edit: google utile come al solito: http://www.microsoft.com/japan/deve...ndfirstfile.htm
ma LOL
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 00:11   #8
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Ue

ma io le opendir, readdir etc...che diceva vicius le ho trovate e sono compatibili con windows:

si devono includere le glib: #include <glib.h>


"Windows Compatibility Functions -- functions to support portability to the Windows environment."

http://developer.gnome.org/doc/API/g...functions.html
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 28-08-2005 alle 00:23.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 00:16   #9
fantoibed
Senior Member
 
L'Avatar di fantoibed
 
Iscritto dal: May 2003
Città: Trieste, Pordenone
Messaggi: 920
Quote:
Originariamente inviato da 71104
avevo pensato semplicemente di mettere le librerie in una dir speciale, e di far enumerare il suo contenuto dal programma, che poi fa un tentativo di caricamento per ciascun file che trova.

come si fa in C puro e portabile ad enumerare il contenuto di una cartella? altrimenti avete proposte migliori? thx
Per cercare le dll usa FindFirstFileEx e FindNextFileEx:
http://msdn.microsoft.com/library/de...irstfileex.asp

Sono API del sistema operativo e quindi non dipendono dal compilatore (e nemmeno dal linguaggio).

Per caricare le librerie LoadLibrary o GetModuleHandle e per determinare l'entry point della funzione che ti interessa importare usa GetProcAddress che restituisce un long che è l'indirizzo di memoria della funzione che intendi chiamare. Per usare tale funzione, però, devi castarla (nel senso di type casting) al giusto prototipo.

Esempio:
Codice:
        user32=GetModuleHandle("USER32.DLL");
        SLWA=(BOOL ( __stdcall *) (HWND, COLORREF, BYTE, DWORD)) GetProcAddress(user32, TEXT("SetLayeredWindowAttributes"));
...dove user32 e SLWA sono dichiarate così:
Codice:
HMODULE user32;
BOOL (__stdcall *SLWA)(HWND, COLORREF, BYTE, DWORD);
__________________
buy here

Ultima modifica di fantoibed : 28-08-2005 alle 12:29.
fantoibed è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 00:39   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da RaouL_BennetH
Ue
LOL

Quote:
ma io le opendir, readdir etc...che diceva vicius le ho trovate e sono compatibili con windows:

si devono includere le glib: #include <glib.h>
si, ma non stanno nel Visual C++
mi sa che per usare quell'header dovrei installare mingw...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 00:40   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fantoibed
Sono API del sistema operativo e quindi non dipendono dal compilatore (e nemmeno dal linguaggio).
ehm, però come dire... dipendono dal sistema operativo... (per l'appunto...)

io cercavo un modo portabile per enumerare il contenuto di una cartella.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 00:44   #12
fantoibed
Senior Member
 
L'Avatar di fantoibed
 
Iscritto dal: May 2003
Città: Trieste, Pordenone
Messaggi: 920
Quote:
Originariamente inviato da 71104
ehm, però come dire... dipendono dal sistema operativo... (per l'appunto...)

io cercavo un modo portabile per enumerare il contenuto di una cartella.
Hai parlato di DLL però, quindi si presume che l'OS sia Windows... O no?
__________________
buy here
fantoibed è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 02:10   #13
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da 71104
LOL

si, ma non stanno nel Visual C++
mi sa che per usare quell'header dovrei installare mingw...

Se vuoi per forza compilare con Visual C++ difficilmente riuscirai a tirare fuori qualcosa di portabile

Devi usare un compilatore multipiattaforma , come GCC aka minigw/Dev C++

Forse è possibile anche con Visual C++ ma è sicuramente + semplice con GCC

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 06:15   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da VICIUS
man opendir
Scherzi a parte. opendir readdir e closedir sono standard posix e quindi esserci pure su windows.

ciao
Il sottosistema POSIX di Windows non c'è più a partire da XP, se non ricordo male (e comunque era molto vecchio e non aggiornato).

Forse la soluzione sarebbe quella di usare il classico #ifdef a seconda che si lavori con VisualStudio o MingW/Cygwin, creando delle apposite funzioni o macro.
Una palla, insomma...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 12:25   #15
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cdimauro
Il sottosistema POSIX di Windows non c'è più a partire da XP, se non ricordo male (e comunque era molto vecchio e non aggiornato).

Forse la soluzione sarebbe quella di usare il classico #ifdef a seconda che si lavori con VisualStudio o MingW/Cygwin, creando delle apposite funzioni o macro.
Una palla, insomma...
È un peccato perché in fondo sono molto più facili e intuitive da usare per u programmatore C che ha usato per anni funzioni come fopen e fclose.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 15:43   #16
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
be', riassumendo mi pare di capire che non c'è modo, quindi credo che adotterò quest'altra soluzione: scriverò in un file "index.dat" l'elenco delle librerie che il programma deve cercare nella directory e tentare di caricare: i files li posso leggere tranquillamente in maniera portabile. l'unica cosa che rimane non portabile è la LoadLibrary con relativa GetProcAddress.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 16:42   #17
fantoibed
Senior Member
 
L'Avatar di fantoibed
 
Iscritto dal: May 2003
Città: Trieste, Pordenone
Messaggi: 920
Quote:
Originariamente inviato da 71104
be', riassumendo mi pare di capire che non c'è modo, quindi credo che adotterò quest'altra soluzione: scriverò in un file "index.dat" l'elenco delle librerie che il programma deve cercare nella directory e tentare di caricare: i files li posso leggere tranquillamente in maniera portabile. l'unica cosa che rimane non portabile è la LoadLibrary con relativa GetProcAddress.
Io non capisco ancora il tuo problema di portabilità. Hai parlato di VC, mingw e Dev C++ che sono tutti compilatori per Windows. Se usi FindFirstFileEx e FindNextFileEx il tuo codice girerà sarà protabile a tutti e 3 questi compilatori...
__________________
buy here
fantoibed è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 17:18   #18
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
be', riassumendo mi pare di capire che non c'è modo, quindi credo che adotterò quest'altra soluzione: scriverò in un file "index.dat" l'elenco delle librerie che il programma deve cercare nella directory e tentare di caricare: i files li posso leggere tranquillamente in maniera portabile. l'unica cosa che rimane non portabile è la LoadLibrary con relativa GetProcAddress.
Scusa ma perché non ti crei la tua funzione piglia_lista_files(). la metti in un file separato e poi la implementi in modo diverso a seconda del sistema operativo su cui ti trovi, questione di un #ifdef.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 20:39   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fantoibed
Io non capisco ancora il tuo problema di portabilità. Hai parlato di VC, mingw e Dev C++ che sono tutti compilatori per Windows. Se usi FindFirstFileEx e FindNextFileEx il tuo codice girerà sarà protabile a tutti e 3 questi compilatori...
veramente non ho parlato ne' di mingw ne' tantomeno di Dev-C++
il programma che sto facendo è C++ puro con pochissime parti Win32 (socket e qualcos'altro) che Daniele mi aiuterà a portare (per fortuna i socket sono quasi identici a quelli di Linux). il sorgente deve essere portabile.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 28-08-2005, 20:39   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da VICIUS
Scusa ma perché non ti crei la tua funzione piglia_lista_files(). la metti in un file separato e poi la implementi in modo diverso a seconda del sistema operativo su cui ti trovi, questione di un #ifdef.
si, ma si fa prima leggendo dal file index
scrivo una volta sola e vale sia per Windows che per Linux
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OPPO Watch X2 Mini, lo smartwatch compatto a cui non manca nulla OPPO Watch X2 Mini, lo smartwatch compatto a cui...
Xiaomi 15T Pro, è lui il nuovo best buy? La recensione Xiaomi 15T Pro, è lui il nuovo best buy? ...
Acer TravelMate P6 14 AI: il Copilot+ PC sotto il chilo per il professionista in movimento Acer TravelMate P6 14 AI: il Copilot+ PC sotto i...
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Tesla, le novità sono due: ecco M...
5 kg di oro puro, ecco da dove nasce la ...
Lego Game Boy completamente funzionante,...
Il Premio Nobel per la Fisica 2025 a Cla...
Amkor investirà fino a 7 miliardi...
ARC Raiders gratis? Solo per chi compra ...
Premi fino a 30 mila dollari per chi tro...
Bollette a sorpresa: il prezzo dell'ener...
Apple aggiorna due app con il nuovo desi...
Arriva Qualys Enterprise TruRisk Managem...
Super offerta Amazon: ASUS Vivobook Go 1...
Nuovo MacBook Air M4 a soli 949€ su Amaz...
Roborock R25 Ultra: l'aspirapolvere che ...
Qualcomm compra Arduino e subito si vedo...
HUAWEI WATCH GT 6, prezzo fuori dal comu...
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: 02:26.


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