Egyre nepszerubbe valik a "biztonsagos" programozas, ennek jegyeben tennek
ket javaslatot:
> CString URL(_T("anything.htm"));
Persze ez csak egy peldakod, de fontos szem elott tartani, hogy ne adjunk
oda barmilyen URL-t az Explorernek.
> HINSTANCE result = ::ShellExecute(NULL, _T("open"), URL, "valami",NULL,
> SW_SHOW);
...
> TCHAR key[MAX_PATH + MAX_PATH] = {_T('\0')};
> TCHAR ext[_MAX_EXT] = {_T('\0')};
...
> lstrcat(key, _T("\\shell\\open\\command"));
strcat helyett jo lenne az strncat, lstrcat helyett az MSDN javasol
sokfele mas fuggvenyt. Igaz, jelen esetben egyertelmu, hogy nem csordulhat
tul, kiveve ha a MAX_PATH nem nagyon kicsi.
Az alabbi string muveleteknel szinten erdemes a hosszra odafigyelni:
> pos = strstr(key, _T("%1"));
> lstrcat(pos, _T(" "));
> lstrcat(pos, URL);
...
Es vegul:
> long datasize = MAX_PATH;
> TCHAR data[MAX_PATH];
> RegQueryValue(hkey, NULL, data, &datasize);
> lstrcpy(retdata,data);
lstrcpy helyett lstrcpyn hasznalata vagy mas hasonlo fuggvenyek hasznalata
(lasd MSDN) ajanlott.
Ezeknek a fuggvenyeknek a hasznaltanal is oda kell figyelni, hogy ne a
destination buffer teljes hosszat adjuk meg, hanem azt a hosszt, amekkora
string az eddig betelt resz utan meg tenylegesen masolhato.
Udv!
--
tocsa
---
| homepage: http://www.inf.bme.hu/~tocsa |
---
|
Sziasztok,
A Microsoft Visual SourceSafe-hez hasonlo, lehetoleg free, programot keresek. A
ki esetleg tud ilyet, az irjon, hogy hol talalom.
Koszonom
(webes bekuldes, a bekuldo gepe: 194.96.36.201)
|
Szia!
Köszi a választ, a második kérdésre rájöttem magamtól,
egy activex kontrollt (microsoft webbrowser) illesztettem
be CFormView-ba. Kiválóan működik, lehet üzengetni meg
megkapni tőle a kis üzeneteit. Szal tökjó.
Közben megfogalmazódtak kérdések:
Hogyan lehet ezeket a kontrollokat futásidőben átméretezni?
Hogyan lehet az aktuális képernyőfelbontást megkérdezni?
Hogyan lehet induláskor maximálni a programablakot?
Az első kérdésre még nem próbálkoztam rá, az a mai nap
dolga lesz. Köszi!
--
Hofferek Attila
> Elso kerdesre azt ajanlanam, hogy hasznald a
> BOOL your_class::PreTranslateMessage(MSG* pMsg) fuggvenyt amiben szerintem
> le lehet targyalni a pMsg->wParam == VK_... (VK_LCONTROL, VK_RCONTROL,
> VK_DELETE, etc). Mindenesetre nezd vegig egy kicsit a
> .../VC98/Include/WINUSER.H file-ot. En meg nem probaltam az
> altalad emlitett
> billentyukombinaciot letargyalni de szerintem megoldhato.
|