mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.programmare.win32
Titolo: L'applicazione si chiude dopo la shellexecute

Salve a tutti,
qualcuno sa dirmi perchč dopo che l'istruzione ShellExecute viene eseguita
correttamente la mia applicazione da dove lo eseguo termina?
Grazie.

 wrote in message
MEaO6.22238$Ql3.9...@news.infostrada.it...

system("PAUSE");

Newsgroup: it.comp.programmare.win32
Titolo: Evento su ora

Vorrei eseguire una funzione allo scoccare di ogni ora (supponendo che il
mio applicativo parta alle 14.20: alle 15, alle 16. e cosi' via...). L'unica
soluzione che mi viene in mente e' quella di settare un timer in modo
oppurtuno (per 40 minuti il primo, 60 tutti gli altri, e cosi' via...).
A qualcuno viene un'idea migliore?
Grazie
Max

 ha scritto nel messaggio
news:5zr_6.3190$G35....@news2.tin.it...

Banalmente mi viene in mente una cosa cosi':
- timer ogni minuto(sempre se non hai bisogno di precisione maggiore);
- GetSystemTime per prendere l'ora corrente;
- controlla i minuti: se sono 0 hai un ora precisa;
- fai fare quello che deve fare :D
Spero ti possa essere da "spunto"
Bow-wow
Killer

...

Se usi le API Win32 e programmi in C/C++ puoi usare i Waitable Timers:
Waitable Timer Objects
MSDN Library Visual studio 6.0 - Platform SDK - Windows Base Services
- Interprocess Communications - Synchronization - About
Synchronization - Synchronization Objects - Waitable Timer Objects
Un waitable timer e' un oggetto del kernel per la sincronizzazione. E'
come una sveglia: si programma il giorno e l'ora in cui la sveglia
deve suonare; eventualmente si puo' specificare un intervallo di tempo
dopo il quale la sveglia torna periodicamente a suonare. In attesa che
l'ora arrivi il timer permane nello stato nonsignaled, quando arriva
l'ora "la sveglia suona" e il timer passa nello stato signaled.
Con la funzione SetWaitableTimer()si dicono al timer 2 cose: quando
deve suonare ed eventualmente ogni quanto deve ripetersi. Il parametro
pDueTime indica quando il timer deve essere signaled per la prima
volta: si puo' specificare un istante assoluto indicando l'anno, il
mese, il giorno e l'ora in cui il timer deve essere signaled per la
prima volta. Oppure si puo' specificare un istante relativo dicendo
l'intervallo di tempo dopo il quale, a partire dalla chiamata della
funzione SetWaitableTimer()il timer deve passare nello stato signaled,
in tal caso il valore da passare al parametro pDueTime deve essere
negativo. Per controllare la periodicita' del timer si utilizza il
parametro lPeriod se esso e' zero il timer non e' periodico e quindi
diventera' signaled una sola volta; altrimenti il valore indica in
millisecondi il periodo dopo il quale il timer diventera'
ripetutamente signaled.
Saluti.
Newsgroup: it.comp.programmare.win32
Titolo: Ricreare il comando "Esegui" di windows

Come è possibile ricreare il comando "esegui" della barra di avvio di
windows? Ho provato con WinExec,ma funziona solo per gli eseguibili,se ad
esempio voglio lanciare un file mp3 o aprire una cartella non funziona.Ho
sentito qualcosa riguardo a CreateProcess,se è la funzione giusta qualcuno
mi può gentilmente fare qualche esempio.
Grazie,
berserk

mi puň gentilmente fare qualche esempio.
Devi usare l'API ShellExecute o ShellExecuteEx.
Vedi help per la sintassi.
--
Naquern Yansbetevn
naquern.y...@africamail.com

 Vedi help per la sintassi.
E' utilissima perchè fa partire l'applicazione associata al tipo di file
lanciato senza che il programmatore si debba occupare di nulla.
Ti posto un esempio di come tutto funzioni (devi usare la ShellExecuteEx con
la struttura SHELLEXECUTEINFO)
Dome
SHELLEXECUTEINFO sei;
ZeroMemory(&sei, sizeof(sei));
sei.cbSize = sizeof(sei);
sei.lpFile = "file di testo.txt";
sei.nShow = SW_NORMAL;
ShellExecuteEx(&sei);
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
PC Brain Official Web Site
http://digilander.iol.it/pcbrain
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Newsgroup: it.comp.programmare.win32
Titolo: [BCB 6] Code optimization bug?

Ho scritto un programma che calcola vari tipi di CRC di cartelle o file.
Se lo compilo senza alcuna ottimizzazione, funziona, ma se uso 'Speed', mi 
sbaglia i 32 bit alti del CRC-64.
Se uso 'Speed' con lo stack frame, torna a funzionare, ma poi č piuttosto 
lento.
Avete idea di che puņ essere?
Inoltre, facendo il porting del programma tale e quale in CodeGear, la 
velocitą scende di circa il 25%, ma almeno funziona bene. Mah!
Cristiano 

 Avete idea di che puņ essere?
le ottimizzazioni spesso fanno qualche piccolo pasticcio ... poi se usi 
i long int a 64bit ..
cod
Newsgroup: it.comp.programmare.win32
Titolo: Directory dell'eseguibile

Ho il mio programma "abc.exe" in esecuzione. Esiste una funzione che mi
permette di recuperare la directory in cui e' contenuto l'eseguibile? In
pratica, quello che mi serve non è la Current Work Directory, ma la
directory in cui è contenuto il file "abc.exe".
Grazie
Obi

 wrote in message news:82ia2p$qsn$1...@nslave2.tin.it...

    char fullpath[MAX_PATH];
    if(!GetModuleFileName(0, fullpath, MAX_PATH)) {
        // errore stranissimo & inatteso, emetti
        // diagnostiche con GetLastError poi termina
    }
Questo ti lascia nel buffer fullpath il percorso completo del
tuo eseguibile (tipo "C:\\programmi\\tanto belli\\abc.exe").
L'API GetFullPathName, se vuoi, puo` essere comoda per
separare nome-disco-e-directory da filename-ed-estensione
(in questo, come in qualsiasi altro caso).
Alex

Ciao,
puoi utilizzare GetModuleFileName() per ricevere il path e il filename
del modulo, tramite splitpath() o altri metodi tiri fuori da questo buffer
la sola directory dove l'eseguibile e' contenuto.
ciao, Franco.
--
Posted from [194.184.225.66] by way of 
law2-oe30.hotmail.com
 [216.32.180.23]
via Mailgate.ORG Server - 
http://www.mailgate.org

Newsgroup: it.comp.programmare.win32
Titolo: Bitmap e coordinate!

Salve a tutti,
se creo una bitmap top-down e voglio poi disegnarvi con una funzione tipo
DrawEdge le coordinate che indico nella chiamata a DrawEdge come devono
essere? l'origine e' posta in alto a sinistra o in basso a sinistra?
qualcuno mi spiega cosa significano coordinate logiche e di periferica e
come/quando usare le funzioni LPtoDP e DPtoLP?
Grazie
bye
Johnny

 come/quando usare le funzioni LPtoDP e DPtoLP?
Non e` affatto un argomento che si liquida in due parole, ti consiglio di
leggerti l'overview su MSDN sul mapping engine di Windows.
---
Bye! Lorenzo Lutti
http://antani.virtualave.net/

Newsgroup: it.comp.programmare.win32
Titolo: Background di un dialog box con Win32

Ciao a tutti,
che voi sappiate esiste un modo semplice per impostare un'immagine di
sfondo ad un dialog box (solo uso win32 API)?
Pensavo di agire nel WM_PAINT e caricare l'immagine ma non vorrei
effetti strani con i controlli presenti nel dialog.
Eventualmente conviene usare un image control e settargli in qualche
modo lo z-order piu' basso?
Grazie
Fabrizio

 modo lo z-order piu' basso?
se per "image control" intendi uno static si, direi che è una buona idea.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
Newsgroup: it.comp.programmare.win32
Titolo: Linkare una DLL

Salve a tutti,
qualche piccolo dubbio sulle DLL.
Per poter utilizzare una funzione esportata da una DLL in un
altro programma in C, normalmente cosa bisogna fare?
In Visual Basic basta una Declare Function e stiamo a posto.
All'avvio dell'eseguibile immagino che vengano caricate in memoria
tutte le DLL, cioé quelle nominate almeno in una Declare Function.
Non ho bisogno di altro se non della .dll.
Spostiamo il discorso in C. In particolare, non avendo il Visual C++
della Microsoft, mi sono accontentato di mingw (con l'ambiente di
sviluppo Dev-cpp che non è per niente male).
Bene, qualcuno mi sa dire come si fa a linkare un .dll in fase di
compilazione? Ovviamente non voglio che il codice oggetto della
funzione della dll sia incluso nel mio .exe. Voglio solo che,
quando devo usare quella funzione, automaticamente venga caricata
la DLL.
Ho provato il metodo di caricare la DLL a run-time mediante
LoadLibrary()
e GetProcAddress() e funziona a meraviglia. Ma mi sembra, se non
necessario, una complicazione che non voglio avere.
Nel mio sorgente C voglio semplicemente usare la funzione foo()
presente nella .dll e, come in Visual Basic, vorrei dire al compilatore
semplicemente dove si trova questa funzione, cioé come si chiama
la .dll. Se poi, in fase di esecuzione, la .dll manca mi deve
dare un errore.
Altra domanda. E' possibile linkare staticamente un codice oggetto
presente in una DLL all'interno di un file eseguibile? Ovviamente
avendo a disposizione solo la DLL, altrimenti con il .o o il sorgente
vero e proprio diventa semplice.
Grazie mille per l'aiuto.

 Grazie mille per l'aiuto.
ciao
Newsgroup: it.comp.programmare.win32
Titolo: [API,C] Problema con il registro di windows

Stavo facendo un giochino e, giunto alla fine (o quasi), devo salvare
la classifica dei punteggi migliori. Pensavo di utilizzare il registro
di windows. Ho scritto questo codice, ma non funziona (o meglio,
funziona a meta'), infatti mostra soltanto il primo nome e i punteggi
(tutti gli altri nomi non li mostra). Se commento la parte di lettura
dei punteggi, invece, mostra tutti i nomi (tranne
"perche'nonmileggi"). Qualcuno sa dirmi perche' si comporta cosi' (e
come risolverlo)? 
Grazie :D
p.s.: per ora i dati nei registri gli ho inseriti manualmente. 
__
nel registro in 
HKEY_LOCAL_MACHINE\Software\Lord Gordon\Kill Memole 3\
player0nome "io"
player0punti "1000"
player1nome "pippo"
player1punti "900"
player2nome "perche'nonmileggi"
player2punti "600"
player3nome "prova"
player3punti "500"
__
...
typedef struct {
	TCHAR punti [30]; //punteggio
	TCHAR nome [30]; //nome
} DATACLASS; //per la classifica
...
static DATACLASS classifica [10]; //la classifica 
char szPt [30], szPath [30];
int i, k;	
static HWND hwnd;
DWORD lenght = sizeof (char [30]);
DWORD dwTipo = REG_SZ;
HKEY hKey;
...
if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, /*_T*/("Software\\Lord
Gordon\\Kill Memole 3\\"),
		0, KEY_READ, &hKey) != ERROR_SUCCESS) { //apre HKEY
		ErrorMsg ("ERRORE di apertura
Registro!\nRegOpenKeyEx", NULL, NULL); //problemi
	}
	for (i = 0; i < 10; i++) {
		//nome
		strcpy (szPath, "player");
		itoa (i, szPt, 10);
		strcat (szPath, szPt);
		strcat (szPath, "nome");
		if (RegQueryValueEx (hKey, szPath, NULL, 
			&dwTipo, (PBYTE)&classifica [i].nome, &lenght)
!= ERROR_SUCCESS) { //legge
		}
 
		//punti
		strcpy (szPath, "player");
		strcat (szPath, szPt);
		strcat (szPath, "punti");
		if (RegQueryValueEx (hKey, szPath, NULL, 
			&dwTipo, (PBYTE)&classifica [i].punti,
&lenght) != ERROR_SUCCESS) { //legge
		}
	}
	RegCloseKey (hKey);
...
--
Scritto da Gordon
E-mail: 
tbe...@avpu.vg

RegQueryValueEx aggiorna la lunghezza della stringa: se inizialmente la
variabile length vale 30, in seguito alla lettura della stringa "io" viene
aggiornata al valore 3 (2 caratteri + '\0') ed alla chiamata successiva, se
la stringa è di più di due caratteri, la funzione restituisce
ERROR_MORE_DATA. Per risolvere il problema basta che dopo ogni chiamata di
RegQueryValueEx aggiorni la variabile length.
Tao.
---
Attenzione: l'indirizzo e-mail e' fasullo!
Per rispondermi scrivete a:
TAOBAIBAI (at) TISCALI (punto) IT

RegQueryValueEx aggiorni la variabile length.
grazie :D

Newsgroup: it.comp.programmare.win32
Titolo: Libri

Ciao,
sto cercando un testo riguardante la programmazione windows. Ho già letto un
libro sulle MFC (MFC Programmazione Windows di H. Schildt) ma l'ho trovato
estremamente incompleto e superficiale.
Pensavo quindi di ripartire dal Windows API, magari con Programming Windows
di C. Petzold, di cui ho sentito parlare  molto bene. Voi che ne pensate,
avete dei consigli?
Non so quanto sono in-topic...comunque dopo aver studiato un po' di grafica
"generica" (Computer Graphics di Foley e al., e Advanced Animation and
Rendering Techniques di A. e M. Watt) vorrei buttarmi sulla programmazione
grafica più "pratica". Mi consigliate di iniziare con Open GL o Direct X?
Conoscete dei testi veramente completi ed approfonditi su questi argomenti?
Grazie, e scusate se sono andato OT.
Ciao
--
Gostram the Unknown --- Lorenzo Castelli
         E-Mail: 
gcas...@racine.ra.it
          Remove NOSPAM to reply

 Ciao
Ciao
Alex

 produrre semplici videogiochi.
Grazie comunque per il consiglio. Me lo segno che potrą essermi utile fra un
po'.
Ciao!


Newsgroup: it.comp.programmare.win32
Titolo: Monitorare la tastiera.

Dato che esistono i keylogger é sicuramente possibile in qualche modo che un
tsr riesca a intercettare la pressione dei tasti in qualsiasi momento...
Vorrei creare un programma che si accorge quando viene premuta una certa
sequenza di tasti. Un esempio: che si apre quando vengono premuti in serie i
tasti "123".
Mi potreste indicare qualche modo semplice per realizzare questa operazione?
E dirmi a quale testo o help mi posso riferire per documentarmi?
Vi ringrazio!!

 wrote in message
news:7ucfva$ngo$1...@nslave1.tin.it...


 wrote in message 7uhu2k$lbb$1...@serv1.iunet.it...


Newsgroup: it.comp.programmare.win32
Titolo: Daoerr.h

Avrei bisogno di conoscere l'indirizzo ove scaricare questo file.
Su MSDN non lo trovo.
Qualcuno puň darmi una mano?
Grazie

 Qualcuno può darmi una mano?
Google questo sconosciuto.....
cmq, da un sito a caso degli n trovati da Google che parla di daoerr.h: The
Microsoft documentation mentions the file DAOERR.H. This file is actually
called DBDAOERR.H.
Roberto

Grazie mille!
Ellebi
Newsgroup: it.comp.programmare.win32
Titolo: welcome to win32 programming!

Salve a tutti!
Volevo iniziare a creare applicazioni per windows
con il C/C++, ma avendo sempre programmato per
dos, non ho la più pallida idea da dove iniziare...
Ho sentito che ci sono diversi modi di programmare win32, con le API o
con le MFC, qual'è il migliore/+ usato?
Se queste domande hanno già una risposta nelle FAQ, perfavore
indicatemi il giusto link per leggerle.
Una volta scelto, come programmare, dove trovo dei buoni tutorial, o
che testi mi consigliate?
E il compilatore?
Grazie e scusate se scoccio con tutte queste domande!
NM

 NM
ciao

 con le MFC, qual'è il migliore/+ usato?
Il + usato e` Visual Basic.  Specificamente VB6 e l'assieme di "controlli"
(COM/ActiveX) che si tira dietro.
Il migliore, dipende che linguaggio vuoi usare.
Per C, non puoi fare di meglio delle interfacce native Win32.  Vedi
il mio tutorial, incompleto ma ben indicativo, a 
http://www.aleax.it/
 .
Per C++, tecnicamente, la soluzione migliore e` Qt.  Puo` avere dei
problemi o costi di licenza (ne stiamo discutendo su it.comp.lang,
poiche` fra i vari vantaggi ha di essere cross-platform: le applicazioni
girano alla perfezione su Windows, ma altrettanto bene su Linux o
Macintosh OSX).  Se le condizioni di licenza Qt non sono accettabili,
wxWindows e` probabilmente oggi la soluzione second-best e gratis.
MFC sono abbastanza usate, semi-decenti, ma non sono le migliori.
Parlo da ragionevole esperto di MFC, di Win32 (vedi il mio tutorial), e
di C++ (sono MVP di C++ per Brainbench).  MFC sono piu` o meno
ferme ("stabili", cioe` mezze morte) da anni: Microsoft punta su altro
(.NET, poco adatto sia a C sia a C++).
Alex

 (.NET, poco adatto sia a C sia a C++).
Perché poco adatto?
--
Gerolamo

 Perché poco adatto?
Anzitutto perche` .NET e` un ambiente basato sul concetto "la memoria
la gestisce il sistema" e C e C++ sono linguaggi basati sul concetto "la
memoria la gestisce il programmatore".  Il "golfo" semantico e` cosi`
gigantesco che gia` per quello e` impossibile avere un C o C++ a pieno
standard su .NET pure a suoi standard; sono possibili solo "pezze".  Non
a caso infatti MS ha introdotto un nuovo linguaggio sintatticamente simile
a C e C++ ma profondamente diverso in questi aspetti semantici (per
cui e` invece vicinissimo a Java).
Alex

api -> c -> gestione di tutti i particolari
Mi consigli un buon testo completo e comprensibile per la
programmazione win32 con le API?
Considera che io parto veramente da 0...
Grazie.
NM
Newsgroup: it.comp.programmare.win32
Titolo: [API] errore con CreateFile

Salve, e' la prima volta che provo a creare un file con le apposite
funzioni dell'API di windows. Ho provato a creare un file e scriverci
qualcosa, ma appena finito di scrivere (e ho verificato che scrive
correttamente cio' che deve scrivere) windows segnala che c'e' stato
un'errore. Ecco il codice:
...
HFILE m_hFile;
TCHAR szFilePath [MAXCHAR * 2], szBuffer [MAXCHAR]; 
DWORD numbyte = 0, * writebyte = NULL;
int i = 0;
strcpy (szFilePath, TEXT("C:\\miacartella\\miofile.txt"));
m_hFile = (HFILE) CreateFile (szFilePath, GENERIC_WRITE, 0, NULL,
	CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL);
itoa ((int) i, szBuffer, 10);
strcat (szBuffer, "#");
numbyte = strlen (szBuffer);
if (!WriteFile ((HANDLE) m_hFile, szBuffer, numbyte, writebyte, NULL))
	 return FALSE;
-- 
Scritto da Gordon
E-mail: 
tbe...@avpu.vg

 un'errore.
Ma quand'è esattamente che ricevi l'errore? xkè qui vedo che il file non
lo chiudi (dovresti chiuderlo con CloseHandle).
"Appena finito di scriverci" vuol dire alla fine della chiamata WriteFile ?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

if (!WriteFile ((HANDLE) m_hFile, szBuffer, numbyte, writebyte, NULL))
   Gli ultimi due parametri non possono essere entrambi NULL. O
allochi spazio per writebyte, o lo dichiari cosi`:
DWORD writebyte;
[...]
WriteFile ((HANDLE) m_hFile, szBuffer, numbyte, &writebyte, NULL);
-- 
S.L.

"Appena finito di scriverci" vuol dire alla fine della chiamata WriteFile ?
durante la chiamata stessa (se tolgo WriteFile l'errore scompare),
pero' riesce a scrivere su file i dati.


WriteFile ((HANDLE) m_hFile, szBuffer, numbyte, &writebyte, NULL);
ah, ecco. Ora funziona tutto senza errori.
Poi ho anche aggiunto (come nell'altra risposta) CloseHandle, cosi' da
chiudere tutto correttamente.
Grazie.


WriteFile ((HANDLE) m_hFile, szBuffer, numbyte, &writebyte, NULL);
grazie, funziona tutto bene!
Pero' adesso c'e' un problema nella lettura dei dati scritti:
appare la MessageBox di errore (quindi ReadFile fallisce).
Considerando che leggo il primo carattere (e il file e' molto piu'
grosso, quindi non e' un errore di EOF) cosa potrebbe essere questa
volta? Ovviamente in createfile ho cambiato con GENERIC_READ e
OPEN_EXISTING.
...
TCHAR szCharRead [2];
DWORD writebyte = 0;	
szCharRead [0] = 0x00;
if (!ReadFile ((HANDLE) hFile, szCharRead, 1, &writebyte, NULL)) {
	MessageBox (m_hwnd, TEXT("ERRORE durante la lettura del
		 file!"), szAppName, MB_ICONERROR);


if (!ReadFile ((HANDLE) hFile, szCharRead, 1, &writebyte, NULL)) {
   Mi pare giusto, direi che sarebbe meglio se postassi il valore
restituito da GetLastError().
-- 
S.L.

restituito da GetLastError().
mi dava il 6, ERROR_INVALID_HANDLE.
pero' ho capito l'errore (era in CreateFile), ed ora funziona tutto. I
classici errori di distrazione da principianti ^^;;

Newsgroup: it.comp.programmare.win32
Titolo: DLL versione di prova

Il mio problema è il seguente: devo poter creare una versione di prova
(limitata ad un mese, per esempio, oppure che scada dopo tot utilizzi) di
alcuni plug-in per Adobe Acrobat (che alla fine dei conti sono DLL). Potete
consigliarmi qualche sistema efficace o qualche software che possa aiutarmi
nell'impresa? Ho provato con Soflocx (che puo' proteggere anche le DLL), ma
dopo il "trattamento" Acrobat si rifiutava di caricare il plug-in.
Grazie!
Fra.

 ha scritto nel messaggio
news:5qi96.2844$pr5.1...@twister1.tin.it...

Dove si scarica questa cosa per fare software shareware?

> Dove si scarica questa cosa per fare software shareware?
Se ti riferisci a Softlocx è un prodotto BitArts (
http://www.bit-arts.com/
),
ma con una ricerca banalissima su Altavista trovi decine di software
analoghi.
Fra.

Newsgroup: it.comp.programmare.win32
Titolo: Timer

Salve a tutti!
Nella mia finestra principale carico delle bitmap.... come faccio a fare in
modo di farle visualizzare con un ritardo di un secondo l'una dall'altra? So
che devo gestire il messaggio WM_TIMER ma non so come....
Grazie

 ha scritto nel messaggio:

usa GetTickCount() e risolvi il problema.
Ciao!
--
- Carlo -
c.b...@libero.it

> usa GetTickCount() e risolvi il problema.
Scusa la mia ignoranza, ma una volta usata quella funzione dovrei avere come
valore di ritorno il numero DWORD in millesecondi da quando windows è
attivo, o sbaglio? Ma poi ... come lo uso? Abbi pazienza....
Grazie e CIAO

 attivo, o sbaglio? Ma poi ... come lo uso? Abbi pazienza....
esatto, non sbagli.
Ma se fai qualcosa di simile ...
Valore1 = GetTickCount() + 1000;
   Ripeti
   Finchè (GetTickCount() => Valore1)
ecco che il tuo secondo è passato ... questa soluzione è proponibile se non
devi fare operazioni nell'attesa del tempo necessario.


 Salve a tutti!
 SetTimer(ID_NEW_TIMER, 1000, NULL);
//ClassWizard...AddFunction sul messaggio WM_TIMER
E poi processi la OnTimer()
...
drj



Sleep(1000) non é molto + semplice se non deve altro che attendere?
Antonio

 Sleep(1000) non é molto + semplice se non deve altro che attendere?
ROTFL! Sei un grande! 8)
-- 
Luc.

 Sleep(1000) non é molto + semplice se non deve altro che attendere?
vero, ma stavo cercando di proporre una soluzione che non bloccasse il
thread.
Infatti io quella del GetTickCount() la utilizzo forzando l'applicazione a
servire la message queue e quindi senza bloccare il thread.
Se bloccare il thread non è un vincolo per l'applicazione allora la tua
soluzione va a genio.


> Sleep(1000) non é molto + semplice se non deve altro che attendere?
Grazie a Tutti, Sleep() è la funzione che cercavo, sto facendo un programma
per un gioco di carte (chiamata al due, o briscola chiamata, come dir si
voglia...). Volevo solo far sembrare che il pc "pensasse" un po' prima di
giocare... sembrava umiliante vedere 4 giocatori giocare in pochi
millisecondi....
Grazie ancora! A presto per nuovi suggerimenti (ce ne sarà ancora una larga
richiesta!!)....
CIAO
Newsgroup: it.comp.programmare.win32
Titolo: [C#] synchronized: come in Java?

Ciao tutti,
  Come posso sincronizzare un metodo di una classe C# come si faceva in
Java per semaforizzarla? C'è un corrispondente della parola chiave
synchronized?
Grazie
Alx
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 synchronized?
lock { ... }


Newsgroup: it.comp.programmare.win32
Titolo: TDirectoryListBox ce n'e' un'altro?

Domanda: c'e' da qualche parte un componente visuale che raggruppi
TDirectoryListBox e TDriveComboBox (che fanno un po' troppo win3.1) come
cioe' l'albero delle directory a sinistra in explorer?
Immagino si possa fare a mano ma allora dove mettiamo il riuso del
software ? :)
TIA
G Amici


Per quel poco che ne so direi che non esiste.
Ho letto un articolo su Computer Programming di marzo 2000 sulla creazione
di una TreeList identica a quella di Explorer. Veniva mostrata una soluzione
per Delphi, tuttaltro che semplice :-( ; è infatti necessario costruirsi
*completamente* la TreeList.
Ciao
Aug
Newsgroup: it.comp.programmare.win32
Titolo: Informazioni dal BIOS

Ciao,
 ho la necessita' in un applicativo Windows ( 95 / 98 ) di ricavare delle
informazioni ( dal BIOS ?? ) quali tipo di CPU, velocita', scheda video .
etc.. e qualsiasi informazione particolare del sistema  in modo da poter
legare il mio applicativo a quella particolare configurazione ( una specie
di chiave HW ) . Ho notato che esiste alcune API  ( trale quali
GetSystemInfo ) che restituiscono alcune di queste cose ma non mi basta. Io
vorrei un comportamento analogo a quelli di molti programmi diagnostici in
grado di rilevare completamente le caratteristiche di un sistema . Qualcuno
sa dove parare ???
Grazie,
Michele

Ciao Michele,
dubito che tu riesca a ricavare le informazioni dal Bios, piuttosto dovresti
vedere
se queste informazioni sono contenute nel registro di configurazione di
Windows.
{ Io credo che ci siano}
Alcune le trovi tranquillamente dalle varie API come quelle che hai citato.
Altre informazioni le puoi trovare mediante la GetVolumeInformation,
GetKeyboardType etc..
Per quel che riguarda il Clock della CPU puoi calcolare il numero di cicli
fatti nell'unità di tempo,
solo che questa soluzione impone che l'utente non svolga altre operazioni
nello stesso momento.
Scrivi pure (qua o in privato) se vuoi altre informazioni.
Ciao
--
- Carlo -
BSSoftware Tips Mailing-List Support

 nello stesso momento.
Se è un Pentium (va bene era una battuta) puoi usare la chiamata
assembler RDTSC
(per il clock) e CPUID per il tipo di CPU (GetSystemInformation comunque
è
sufficiente per quest'ultima cosa).
Tu vuoi fare un codice seriale valido per ogni computer: Attento che se
il cliente cambia semplicemente l'HD o la scheda video, il codice non va
più bene... ecco perchè solitamente nessuno usa questo sistema per
proteggere i software.

Newsgroup: it.comp.programmare.win32
Titolo: CBitmap GRRRRRRR

Che differenza c'è tra CreateCompatibleBitmap e CreateDiscardableBitmap? Ho
consultato la MSDN ma non ho colto la differenza
Quando cancello una bitmap è sufficiente che chiami l'operatore Delete?

 ha scritto nel messaggio
news:W46X6.59974$Cq5.5...@news.infostrada.it...


 CreateCompatibleBitmap function.
Eccola qua la frase chiave! Grazie :)
Newsgroup: it.comp.programmare.win32
Titolo: MD2 Scusate l'OT ma . .

Scusate la domanda SUPER OT, ma data la gravità del problema posto
ovunque . .
^_^   ^_^ 
Ciao, a tutti grazie anticipatamente a tutti quelli che mi aiuteranno !
^_^
Ho un problema (certo !!)
Sto tentando (tentando) di animare un modello MD2, ma appena calcolo i
nuovi vertici,
mi ritrovo con uno di quei maledetti “Access Violation” qui:
	x1 = pointList[model->triIndex[i].meshIndex[0]].point[0];
////////////////////////////////////////////////////////
QUESTA E’ LA PARTE DI CODCE:
	vector_t *pointList;	
       vector_t *nextPointList;
	mesh_t *triIndex;	
       int i;		
       float x1, y1, z1;	
       float x2, y2, z2;
for (i = 0; i < model->numTriangles; i++)
	{
	x1 = pointList[model->triIndex[i].meshIndex[0]].point[0];
	y1 = pointList[model->triIndex[i].meshIndex[0]].point[1];
	z1 = pointList[model->triIndex[i].meshIndex[0]].point[2];
	x2 = nextPointList[model->triIndex[i].meshIndex[0]].point[0];
	y2 = nextPointList[model->triIndex[i].meshIndex[0]].point[1];
	z2 = nextPointList[model->triIndex[i].meshIndex[0]].point[2];
	vertex[0].point[0] = x1 + model->interpol * (x2 - x1);
	vertex[0].point[1] = y1 + model->interpol * (y2 - y1);
	vertex[0].point[2] = z1 + model->interpol * (z2 - z1);
         . . . .  
Da cosa puo' essere causato il problema ?
Che devo fare ?
Ciao.
Grazie.
HS_
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 x1 = pointList[model->triIndex[i].meshIndex[0]].point[0];
Ma i debugger son passati di moda?
Kiuhnm



si! abbasso i debugger :p
< vector_t *pointList;	
< vector_t *nextPointList;
< mesh_t *triIndex;	
< int i;		
< float x1, y1, z1;	
< float x2, y2, z2;
ok.. se non ha omesso codice incollando.. pointList e nextList e
triIndex
sono puntatori pazzi che puntano da qualche parte non meglio precisata
 
< for (i = 0; i < model->numTriangles; i++)
< {
<     x1 = pointList[model->triIndex[i].meshIndex[0]].point[0];
e qui logicamente succede il patatrac
le cose sono due: o doveva allocare o doveva farli puntare a
qualcosa che avesse senso.
ciao
 sbirish


chi li doveva allocare questi due puntatori ??? o chi li doveva far
puntare a qualcosa? tu o quello che aveva fatto quel listato?
Newsgroup: it.comp.programmare.win32
Titolo: Directx Media (Urgente)

Ciao a tutti
Sto sviluppando un programma c he usa le directx media,
lo vorrei fare in c# .net.
Si possono sviluppare DLL che implementano le directx media usano le MFC?
Dovrei leggere dei file mp3 e farli riprodurre usando le directx media.
credo che serva quello.
Se sě come posso fare?
grazie
Gabriele Fantoni

 
[...]
Non so nulla di .net, ma ti do' comunque un consiglio:
3 messaggi in 3 minuti si avvicina al record di rottura di balle al 
prossimo.
Questo è un newsgroup, non un help desk, quindi se qualcuno sa qualcosa 
e ha voglia di rispondere, ti risponde. Potrebbe essere tra 10 minuti, 
potrebbe essere tra 2 ore, potrebbe essere anche tra un giorno. Dipende 
da quando la gente si collega per vedere i messaggi.
Quindi è assolutamente inutile postare un messaggio al minuto (anche 
aggiungendo la scritta [urgente]), altrimenti l'unico risultato che 
ottieni è che la gente ti ignora.
Spero che almeno queste considerazioni ti siano d'aiuto.
Luca

 Se sě come posso fare?
Fare cosa? Usare le directx media o far ascoltare gli mp3?
In che linguaggio?
Prova a cercare su 
www.codeproject.com
 se c'č qualche esempio che fa 
al caso tuo.
-- 
Valter Minute
(the reply address of this message is invalid)
(l'indirizzo di reply di questo messaggio non č valido)

Newsgroup: it.comp.programmare.win32
Titolo: Realizzare Screen Saver

vorrei realizzare uno screen saver il visual c++ 6.0 ma non so che progetto
creare con l'AppWizard. So comunque che è possibile perchè ho scaricato un
esempio dal sito della Microsoft.
Grazie a tutti in anticipo !


Gli screen saver sono normali exe windows che gestiscono in modo 
particolari alcuni parametri passati sulla command-line (per visualizzare 
il preview, la schermata di configurazione o lo screen-saver vero e 
proprio). Se non hai esigenze troppo particolari, puoi evitare la parte 
(tediosa) di interpretazione dei suddetti messaggi e creazione di finestre 
e dialog varie linkando al tuo eseguibile scrnsave.lib (per maggiori info 
ti rimando all'help di VC++ o, ancora meglio a MSDN: 
msdn.microsoft.com
).
-- 
Valter Minute
min...@inwind.it
 (the reply address of this message is invalid)
Newsgroup: it.comp.programmare.win32
Titolo: [MI] - Informatica - PROGRAMMATORI DELPHI JUNIOR

Affermata softwarehouse ricerca giovani programmatori in Delphi (vers. 3 o
4)
da inserire in un team di sviluppo con brillanti prospettive future.
Il candidato ideale ha le seguenti caratteristiche indispensabili:
- buona conoscenza di Delphi e ambiente Windows,
- esperienza nello sviluppo di applicazioni Client-Server single e 2-tier,
- conoscenza di SQL,
- militare assolto,
- disponibilità a breve scadenza.
Saranno titoli preferenziali inoltre:
- conoscenze sul campo assicurativo,
- esperienza di sviluppo in team,
- laurea o diploma in discipline informatiche,
- disponibilità full-time.
Si valutano anche opportunità di assunzione per occupazione full-time.
La sede di lavoro è Milano.
Tel. 0348/2329039 - Fax. 02/6070752
email: 
ass...@tin.it
--
Rif. Villa Ing. Fabrizio

email: 
ass...@tin.it
Wow, e' una sw hous cosi' importante che non ha nemmeno un Web site suo...
Davide Marcato.
----------------------------------------------------
| -- Freelance International Consultant
| -- Win32/MFC/COM Development & Training
| -- Technical Writer & Speaker
----------------------------------------------------
| -- Email: 
mar...@programmers.net
| -- Web: 
http://www.DavideMarcato.com
----------------------------------------------------
Newsgroup: it.comp.programmare.win32
Titolo: AutoSize in C++ Builder 3

Salve,
mi sapete dire con quale comando posso far si che la finestra non possa
essere ridimensionata dall'utente?
In Delphi 4 cera un comando che se non ricordo male si chiamava "AutoSize"
che settavo a false.
in BC++B3 mi sapete dire se c'e' questo comando? Io nell'object inspector
non lo trovo.
Grazie

 essere ridimensionata dall'utente?
Setta la proprietą BorderStyle a bsSingle.
AutoSize ha un altro significato.
Ah, io ho verificato con BCB5, ma a memoria mi pare ci fosse 
anche in BCB3.
HTH,
-- 
Stefano Frosio
www.esse-effe.com

 AutoSize ha un altro significato.
In Delphi ricordo che quando lo attivavo le dimensioni erano fisse e non
potevo più ridimensionarla.
Ciao

 potevo piů ridimensionarla.
E' solo una conseguenza indiretta. Con AutoSize a true il form 
si ridimensiona automaticamente in base al suo contenuto.
-- 
Stefano Frosio
www.esse-effe.com

 si ridimensiona automaticamente in base al suo contenuto.
Si, infatti cercavo qualcosa di simile anche su BC++B.
Un'altra cosa: ma quando compilo l'exe è già pronto per girare su altri pc?
Ad esempio ho notato che su un PC mi richiedeva la dll VCLX35.BPL. Ho
cercato nel mio hard disk e ne ho trovate due: una in CBuilder3\Source\Debug
e l'altra in Windows\System32.
Devo inserire anche questa dll nella cartella dell'exe? Ma quale delle due?
Grazie

 su altri pc?
Dipende dai settaggi e da come intendi effettuare la 
distribuzione. Se quello che vuoi è creare un eseguibile che non 
necessita di librerie, verifica che le seguenti opzioni del 
progetto (Project -> Options) siano disabilitate:
- Use dynamic RTL (scheda Linker);
- Build with runtime packages (scheda Packages).


 - Build with runtime packages (scheda Packages).
Ok grazie

 Ma non la trovo questa proprietà.
Prova a settarla da codice:
FormX->AutoSize = true;
Se così non compila, allora, anche se mi pare strano, è stata 
introdotta successivamente a BCB3 (in effetti tu parlavi di 
Delphi 4), altrimenti semplicemente non la stai vedendo 
nell'Object Inspector.


 FormX->AutoSize = true;
Ho aperto l'IDE, trascinato un TButton sulla form (Form1) e inserito questo
codice:
 Form1->AutoSize = true;
Al momento della compilazione mi diceva che AutoSize non e' un membro di
TForm1.
Direi che non c'č...
Ciao
Newsgroup: it.comp.programmare.win32
Titolo: Mi consigliate un buon libro...

... per programmare in ambiente windows. Grazie

Programming Windows di Charles Petzold per iniziare; Programming
Applications for Microsoft Windows di Jeffrey Richter per esperti.
Ciao,
Marco Era
http://www.marcoera.com
"Nuke" <man...@inwind.it_nospam> ha scritto nel messaggio
news:iJ2fb.5414$vO5.1...@twister1.libero.it...



wrote:
Entrambi disponibili in lingua italiana, ma se per te non č un
problema meglio quella in inglese ^_^


 ... per programmare in ambiente windows. Grazie
mmm...
non avendo specificato il contesto (linguaggio p. es.?) ti consiglio
di visitare le molte risposte a questa stessa tematica "che libro?"
(FAQ?)
per intanto prova questo che è gratis e ha un pò di scelta :)
http://www.informit.com/isapi/session_id~{2FE70948-D4B3-434C-B4D0-F371CD882FFC}/free_library/index.asp
Saluti
JJ
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Applications for Microsoft Windows di Jeffrey Richter per esperti.
Concordo in pieno con questi consigli; in piu' aggiungerei che se vuoi 
usare le MFC per sbrigarti un po' prima nello sviluppo di applicazioni 
Windows, potresti considerare l'acquisto di un testo di Jeff Prosise su 
MFC (non ricordo bene il titolo, comunque e' tradotto anche in 
italiano). 
Jeff Prosise : MFC = Charles Petzold : Win32
:)

Sono interessato alla programmazione in C. Intanto grazie per i consigli.

 Sono interessato alla programmazione in C. 
Allora devi "cestinare" il mio consiglio sul testo su MFC, dato che si 
tratta di classi C++.
Comunque, se posso permettermi, ti consiglio di considerare anche il C++ 
per lo sviluppo sotto Windows; ti potrebbe far risparmiare molto tempo 
(IMHO).
Ciao, e buon lavoro
Dan
Newsgroup: it.comp.programmare.win32
Titolo: dubblicare se stessi

Quesito: ho creato un programma che si auto duplica in un'altra directory.
Il problema e che non funziona non riesco a fare una copia esatta..
Prima ho usato le classi del MFC CFile.. dava subito dei problemi anche solo
per ricavare la lunghezza del file. Scarto l'uso di CFile, ed uso il
classico FILE *filePtr funziona ma il file non è uguale..  il codice non è
errato con altri file funziona.. qualcuno mi spiega il perché??
Grazie Luca , sotto riporto il codice.
 FILE *filePtr;
 FILE *DupplicaPtr;
 char phatEXE1[100];
 char *buff;
 if( _getcwd( buffer, 100 ) != NULL )
 {
  strcpy(phatEXE1,strcat(buffer,"\\pippo.exe"));
  filePtr = fopen(phatEXE1, "rb");
  if (filePtr != NULL)
  {
   fseek(filePtr, 0, SEEK_END);
   lungFile = ftell(filePtr);
   fseek(filePtr, 0, SEEK_SET);
   DupplicaPtr = fopen("c:\\pippo.exe", "w+");
   // read entire file into buffer
   buff = (char*)malloc(lungFile + 1);
   fread(buff, sizeof(char), lungFile, filePtr);
   fwrite(buff,sizeof(char), lungFile, DupplicaPtr);
   // close file and free memory
   fclose(filePtr);
   fclose(DupplicaPtr);
   free(buff);
  }
 }

Ciao, ilMatto!
Il giorno 07/04/2004 alle ore 23:05 hai scritto:
 i> Quesito: ho creato un programma che si auto duplica in un'altra
 i> directory.
Ma state tutti cercando di scrivere dei virus ?
 i>    DupplicaPtr = fopen("c:\\pippo.exe", "w+");
"w+b"
Bye
-- 
Marco Maccaferri
MaccaSoft - 
http://www.maccasoft.com
Newsgroup: it.comp.programmare.win32
Titolo: CB3- SQL_INSERT

salve a tutti,
    utilizzo CBuilder 3 e sto scrivendo una semplice applicazione DB.
Cerco aiuto sull'uso della comando sql INSERT da utilizzare all'interno
dell'oggetto UpdateSQL per inserire un nuovo record.
Con l'istruzione SQL:
    INSERT INTO MYDATABASE (DB_ID,DB_NAME,DB_DATA,) VALUES
(1,"rossi","1956")
ottengo solo degli errori tipo: FIELD VALUES REQUIRED.
Qualcuno sà spiegarmi l'uso corretto di INSERT.
Grazie a tutti. Ciao.

 ottengo solo degli errori tipo: FIELD VALUES REQUIRED.
Credo che ci siano diversi errori:
-Dopo DB_DATA c'e` una virgola, che e` un errore di sintassi;
-Se inserisci tutti i campi della tupla non importa che li specifichi prima di
VALUE (quindi basta INSERT INTO MYDB VALUES ...);
-Alla fine del comando SQL ci va un punto e virgola;
-Le stringhe e` meglio specificarle dentro ad apici singoli anziche` doppi
('rossi', '1956').
Ricapitolando:
INSERT INTO MYDATABASE VALUES (1,'rossi','1956');
(non e` molto bello specificare la data con una stringa, ma questo e` un altro
problema)
--
Bye! Lorenzo Lutti
http://www.geocities.com/SiliconValley/Peaks/6258/

Grazie per l'aiuto,
    purtroppo il problema persiste. Ora l'errore è: INVALID PARAMETER.
Approfitto della tua disponibilità (o di chiunque altro) per chiarire meglio
il problema.
    La tabella è così strutturata:
            table->FieldDefs->Add("ID",ftAutoInc,0,true);
            table->FieldDefs->Add("NOME",ftString,30,false);
            table->FieldDefs->Add("GENERE",ftString,20,false);
            table->FieldDefs->Add("TIPO",ftString,15,false);
            table->FieldDefs->Add("OS",ftString,6,false);
            table->FieldDefs->Add("ANNO",ftWord,0,false);
            table->FieldDefs->Add("CD",ftInteger,0,false);
            table->IndexDefs->Add("","ID",TIndexOptions()<<ixPrimary);
di seguito il codice che aggiorna la proprietà di UpdateSQL->InsertSQL():
      MainForm->QueryProgrammi->Open();
      temp=MainForm->NomeDatabase();
      sql="insert into "+temp+" values('"+
        NomeEdit->Text+"'"+",'"+
        GenereComboBox->Text+"',"+
        AnnoEdit->Text+","+
        CdEdit->Text+",'"+
        TipoComboBox->Text+"');";
      MainForm->UpdateSQL->InsertSQL->Clear();
      MainForm->UpdateSQL->InsertSQL->Add(sql);
      MainForm->QueryProgrammi->Insert();
e fin qui tutto OK.
Quando inizia la transizione:
    if(MainForm->QueryProgrammi->Active)
    {
        MainForm->QueryProgrammi->Database->TransIsolation=tiDirtyRead;
        MainForm->QueryProgrammi->Database->StartTransaction();
        MainForm->QueryProgrammi->ApplyUpdates();
        MainForm->QueryProgrammi->Database->Commit();
        MainForm->QueryProgrammi->CommitUpdates();
    }
Alla riga di .....ApplyUpdates(); viene lanciata l'eccezione.
Anche se nella riga SQL specifico i campi da aggiornare il risultato non
cambia.
Dove sbaglio?
Ciao a tutti.
MG


Newsgroup: it.comp.programmare.win32
Titolo: Quando uscirà il Visual C++ 7.0 ???

Scusate volevo chiedervi se qualcuno sa se è in programma l'uscita di una
versione superiore del Visual C++ 6, perchè devo farlo comprare al lavoro e
non vorrei far spendere tutti quei soldi per un prodotto che sta per essere
sorpassato...visto che è da un pezzo che è uscito!!
Grazie per l'attenzione,
Max

Al limite poi pagheresti solo l'aggiornamento...
Comunque acquistatelo senza problemi, qui da noi in ditta lo usiamo
tutti (8 programmatori) con ottimi risultati. (Visual Studio Completo)
Ciao!
Luc


A sentire la MS non prima del 2001. E ci sono forti novità per VBasic. Forse
non ci sarà più VJ (forse)
--
Stefano Tempesta
TSoft - 
www.tempesta.org
in...@tempesta.org

 tutti (8 programmatori) con ottimi risultati. (Visual Studio Completo)
...scusa se approfitto, ma mi sai dire com'è il supporto per la
programmazione per win2000?
Io uso ancora vc++5 su win 2000 e va benissimo, ma ovviamente manca un
supporto esplicito per win2000.
Grazie mille per la risposta.
Ciao,
Max

 ha scritto nel messaggio
news:8gervm$n2k$1...@nslave2.tin.it...


Newsgroup: it.comp.programmare.win32
Titolo: Esiste un testo

Esiste un testo dove spiega come sono organizzati i file.
Cioč:
In una .bmp l'intestazione definisce la dimensione  la combinazione di
colori ecc ecc
cosi pure per i .wav .gif .zip ecc ecc
orf...@tin.it

Esiste un testo dove spiega come sono organizzati i file.
www.wotsit.org
 ha i formati di tantissimi file.
Se sei fortunato trovi anche links a librerie per la loro gestione già
pronte.
--
DGP85
http://daps.cjb.net/

 cosi pure per i .wav .gif .zip ecc ecc
Dai un'occhio sul sito del Dr Dobbs, hanno fatto un CD
contenente una mezza dozzina di libri del genere.  Non
arrivano a definire TUTTI i formati esistenti, ma ci
arrivano vicino.  Nessun singolo testo puo` bastare,
naturalmente, ma mettendone assieme sei o sette va meglio.
Alex
Newsgroup: it.comp.programmare.win32
Titolo: collegamento ad un file...

Salve, qualcuno sa dirmi come fare per creare, dall'interno di un
programma in esecuzione in C++ usando il Builder, un collegamento ad un
file...ad esempio sul desktop? Mi riferisco ai file *.lnk di windows.
Grazie.
--
|. .| |||| |||| |||| |||| |. | |  |  MRFRANK is my Nick-name
||||| |  | |..  |  | |..| || | |.|
| . | |||  |    |||  |  | | || |||   PC & AMIGA user on
|   | |  | |    |  | |  | |  | |  |  INTERNET and IRC channels

Tratto da MSDN:
// CreateLink - uses the shell's IShellLink and IPersistFile interfaces
//   to create and store a shortcut to the specified object.
// Returns the result of calling the member functions of the interfaces.
// lpszPathObj - address of a buffer containing the path of the object.
// lpszPathLink - address of a buffer containing the path where the
//   shell link is to be stored.
// lpszDesc - address of a buffer containing the description of the
//   shell link.
HRESULT CreateLink(LPCSTR lpszPathObj,
    LPSTR lpszPathLink, LPSTR lpszDesc)
{
    HRESULT hres;
    IShellLink* psl;
    // Get a pointer to the IShellLink interface.
    hres = CoCreateInstance(&CLSID_ShellLink, NULL,
        CLSCTX_INPROC_SERVER, &IID_IShellLink, &psl);
    if (SUCCEEDED(hres)) {
        IPersistFile* ppf;
        // Set the path to the shortcut target and add the
        // description.
        psl->lpVtbl->SetPath(psl, lpszPathObj);
        psl->lpVtbl->SetDescription(psl, lpszDesc);
       // Query IShellLink for the IPersistFile interface for saving the
       // shortcut in persistent storage.
        hres = psl->lpVtbl->QueryInterface(psl, &IID_IPersistFile,
            &ppf);
        if (SUCCEEDED(hres)) {
            WORD wsz[MAX_PATH];
            // Ensure that the string is ANSI.
            MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1,
                wsz, MAX_PATH);
            // Save the link by calling IPersistFile::Save.
            hres = ppf->lpVtbl->Save(ppf, wsz, TRUE);
            ppf->lpVtbl->Release(ppf);
        }
        psl->lpVtbl->Release(psl);
    }
    return hres;
}
Ciao,
    Marco

     Marco
Grazie mille....mi hai risparmiato un bel pò di tempo.:-)
Franco

Newsgroup: it.comp.programmare.win32
Titolo: Database DB2

Ho appena scaricato la Versione 7.2 del database della IBM DB2.
Quanlcuno mi sa dire dove trovare delle guide in italiano per apprendere
come funziona?
Ho visto un po l'help e non si capisce più di tanto. La cosa che mi
interesserebbe è capire come gestire database ed esempi per accedere alle
fonti dati.
Grazie!

 ha scritto nel messaggio
news:aa5oal$7rihj$2...@ID-134361.news.dfncis.de...


Newsgroup: it.comp.programmare.win32
Titolo: Pokemon games for pc!!!!!!!!!!!!!!

Cerco ragazzi che vogliono costruire un gioco sui pokemo. Se siete
interessati scrivete all'e-mail 
giuse...@tin.it
I search boys that they want build a game of the pokemon: If  you are
iterested write at the e-mail 
giuse...@tin.it

 Cerco ragazzi che vogliono costruire un gioco sui pokemo.
Ecco i primi effetti del caldo estivo ... :)
--
- Carlo -
c.b...@libero.it

 ha scritto nel messaggio
news:fR8W6.1538$T52....@news.infostrada.it...


 Cerco ragazzi che vogliono costruire un gioco sui pokemo. Se siete
Io credo che non si possa fare.....
Comunque il NG adatto è it.comp.giochi.sviluppo

Newsgroup: it.comp.programmare.win32
Titolo: msVC6 "unwind semantics are not enabled"

Salve a tutti, non sono solito lurkare qui e spero di non annoiare nessuno
con domande già viste e straviste, ma sono un po' annoiato dal fatto che
compilando un programma che sto portando da linux (basato sulle QT della
trolltech) su win tramite il VC6 mi saltano fuori una sfilza infinita di
warning come il seguente...
C:\Programmi\Microsoft Visual Studio\VC98\INCLUDE\ostream(234) : warning
C4530: C++ exception handler used, but unwind semantics are not enabled.
Specify -GX
Qualcuno sa dirmi come risolvere il problema e togliermeli di torno? (sennò
non trovo gli errori in mezzo!)
Mille grazie, G.

 non trovo gli errori in mezzo!)
il warning dice: "Specify -GX", ma ci hai provato ?
Devi abilitare l'exception handling. Aggiungi questa opzione di compilazione
nel project setting.
Ciao!!
Newsgroup: it.comp.programmare.win32
Titolo: Serializzazione CArchive

file.Open(strFile, CFile::modeCreate | CFile::modeWrite);
CArchive ar (&file, CArchive::store);
 
ar << m_iTipo << m_sNome << m_sComposizione << m_fPrezzo;
 
file.Close();
 
Perchè non va?
Si trova all'interno di una funzione membro di una classe derivata da CObject.
Per sicurezza ho incluso le macro per la serializzazione ma non sono sicuro
che siano fondamentali visto che dà lo stesso errore con o senza di esse.
 
L'errore avviene in secuzione (Debug assertion failed) se vado avanti l'errore
diventa (an unamed file was not found).
 
Ciao
 
-- 
Caronte
-- 
Inviato da 
Newsgate.Localinfo.IT
 Web Service
http://newsgate.localinfo.it


Su quale istruzione ti scatta l'asserzione,
sulla file.Close()?
Federico.

 sulla file.Close()?
 
qui:
 
ar << m_iTipo << m_sNome << m_sComposizione << m_fPrezzo;
 
Ad ogni modo ho risolto spostando l'apertura e chiusura del file nel
costruttore/distruttore del documento.
La cosa comunque è strana, a me sebra come se CArchive esegua delle operazioni
in ritardo rispetto alla chiamata e nel mio caso trova il file chiuso.
 
Che ne pensi?


 Che ne pensi?
è chiarissimo (scusate se mi intrometto)! il file buffering è attivato,
percui CArchive tenta di fare il flush *dopo* che il file è stato chiuso
(il flush viene effettuato alla distruzione dell'oggetto CArchive).
se invece chiudi il file alla distruzione del documento, l'oggetto
CArchive viene distrutto *prima* della chiusura del file, il cui handle
quindi è ancora valido e vi si può effettuare il flush.
ciao.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 quindi è ancora valido e vi si può effettuare il flush.
 
perfetto allora è come pensavo.
Basterebbe eseguire il flush forzato sull'oggetto CArchive.
 
Ciao



uhmmmmm,
se fosse cosi' l'asserzione ti dovrebbe scattare quado chiudi i file, non
quando usi gli operatori di inserimento...
Ciao. Federico.

 quando usi gli operatori di inserimento...
 
Quando scattava l'asserzione non stavo utilizzando il flush del CArchive, in
realtà ancora non l'ho provato con il flush, se l'informatica non è
un'opinione dovrebbe funzionare :)
 
Apprifitto per chiedere un'altra cosetta sullo storaggio dei file.
 
Ho letto diverse cosette sulla serializzazione ma ancora non ho ben capito
cosa sia in realtà.
Per serializzazione si intende il processo mediante il quale un'applicazione
SDI o MDI salva il documento in un file oppure ogni istruzione di scrittura su
un file, anche automatica come la mia, è una serializzazione? Con questa
seconda affermazione intendo il processo di scrittura e lettura di oggetti C++
direttamente su file tipo CString senza preoccuparsi del tipo di dato scritto.
 
illuminatemi please.
