| 
		| 1. | Re: C++ forraskod ellenorzo (UNIX) (mind) | 43 sor |  (cikkei) |  
		| 2. | Visual C++ and OCX (mind) | 24 sor |  (cikkei) |  
		| 3. | Re: C++ forraskod ellenorzo (UNIX) (mind) | 60 sor |  (cikkei) |  | 
 |  
		| + - | Re: C++ forraskod ellenorzo (UNIX) (mind) | VÁLASZ | Feladó:  (cikkei) |  | 
> Felado :  [Hungary]
> Temakor: Re: C++ forraskod ellenorzo (UNIX) ( 15 sor )
> Idopont: Tue Sep 11 21:23:06 CEST 2001 CODER #1290
> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
> Az rtin szerint  azt irta, hogy:
>
> >  Tud-e valaki olyan programot, amely átnyálazza a forrásokat és
> > különféle hibákat keres. Például malloc után nincs free, és egyéb
> > gyönyörűségek.
>
> Nagyon nem hiszem, hogy van olyan eszköz, ami fordítási időben ilyesmit
> mond neked. Egy kivétel eldobása például nagyon bekavarhat egy ilyen
> eszköznek. Viszont vannak sok pénzért, vagy akár ingyen is olyan
> programok, amik figyelik a mellécímzést, a memóriafolyást, stb. Az
> ElectricFence például általában kiszúrja a mellécímzést (ez ingyenes).
vagy ha
- nem ingyenes
- nem UNIX
- nem fordítási időben dolgozó
eszköz is jó, akkor a Borland C++ Builder 5.0-nak van egy CodeGuard-ja,
ami viszonylag jó, eléggé hatékonyen kiszúrja az ilyen disznóságokat.
Ha standard c++ programról van szó, akkor ez is használható a hibák
kiszűrésére.
szvsz:
Szerintem fordítási időben ilyen util soha nem lehet hatékony, mert bonyolultab
b
programoknál úgyis nem triviális hibák lépnek fel, amelyek a bemenő adatok
függvényében jelentkeznek vagy nem. Tehát fordítási időben gyakorlatilag
elkaphatatlan olyan hiba, ahol nem 1 függvényen belül van a malloc és a free.
Még had ugassak bele kéretlenül egy kicsit:
c++ programban én gyakorlatilag csak úgy használok malloc/new módszert,
hogy csinálok neki egy wrapper osztályt, ami a destruktorában automatikusan
elpusztítja szegény objektumot, amikor már nincs rá szükség. Többek által
használt objektumoknál reference counting technikával ugyanezt lehet elérni.
Ez igen nagy biztonságot ad, és gyakorlatilag a Java-s garbage collection-nak
felel meg, sokkal jobb hatékonysággal.
-- 
Józsi   |  
		| + - | Visual C++ and OCX (mind) | VÁLASZ | Feladó:  (cikkei) |  | 
Sziasztok!
Visula C++ -al fejleszte(ne')k egy alkalmazast, ami MS Acces adatbazisbol
dolgozik. A problema a kovetkezo:
Azon a gepen amelyiken fent van a VStudio, a forditas utan tokeletesen
mukodik az exe, viszont ha ezt atmasolom egy masik gepre, es ott futtatom,
akkor a szokseges dll-ek atmasolasa utan elindul a progi, de azok a
form-ok amelyekben DataGrid-et hasznalok, egyszeruen nem jonnek elo
(semmi hibauzenet).
Azt hiszem az lehet a gond hogy az msdgrid.ocx azon a rendszeren nincs
regisztralva.
Kerdesem, hogy hogyan tudom ezt megtenni? Marmint egy ocx file bejegyzeset
a regisztracios adatbazisba.
Arra gondoltam, hogy a fejleszto gep registry-eben megnezem hol van
hibatkozas dgrid-re es azokat a kulcsokat letrehozom a masik gepen is. De
ettol lenni kell valami elegansabb megoldasnak is. Azt is el tudtam volna
kepzelni, hogy a fejlesztokornyezetnek van valamilyen telepitesvarazsloja,
de nincs. Legalabbis nem talaltam.
Szoval most nem nagyon tudom atrakni a kesz progit egy olyan gepre amin
nincs Visual Studio telepitve.
	Bocs ha hosszu voltam.
			Valaszokat elore is koszi!
						PaZso!
 |  
		| + - | Re: C++ forraskod ellenorzo (UNIX) (mind) | VÁLASZ | Feladó:  (cikkei) |  | 
Halihó!
> vagy ha
> - nem ingyenes
> - nem UNIX
> - nem fordítási időben dolgozó
> eszköz is jó, akkor a Borland C++ Builder 5.0-nak van egy CodeGuard-ja,
> ami viszonylag jó, eléggé hatékonyen kiszúrja az ilyen disznóságokat.
> Ha standard c++ programról van szó, akkor ez is használható a hibák
> kiszűrésére.
  Nem lesz jó, mert UNIX környezetben fejlesztünk és próbálunk az olcsó
megoldások felé menni. Nem éri meg egy drága program, ha nem termeli ki
az árát...
> Szerintem fordítási időben ilyen util soha nem lehet hatékony, mert
> bonyolultabb programoknál úgyis nem triviális hibák lépnek fel, amelyek
> a bemenő adatok függvényében jelentkeznek vagy nem. Tehát fordítási
> időben gyakorlatilag elkaphatatlan olyan hiba, ahol nem 1 függvényen
> belül van a malloc és a free.
  Ehh... hülye példa volt a malloc-free, sokkal több hibás mellégépelés
fordul elő... Például a g++ szó nélkül kódot generál:
#include <stdio.h>
int main( )
  {
    int iError = -1;
    int iReturn = 2;
    if ( iError = 0 & iReturn < 0 )
      {
        return -1;
      }
    return 0;
  }
többszöri átnézésre sikerült felfedezni egy néhányszáz soros program
vége felé az ilyen jellegű mellégépeléseket, pedig az lclint rögtön
mondja:
 :~ > lclint /home/nfsmount/andromeda/franko/proba.cpp
LCLint 2.5q --- 26 July 2000
/home/nfsmount/andromeda/franko/proba.cpp: (in function main)
/home/nfsmount/andromeda/franko/proba.cpp:7:10:
    Test expression for if is assignment expression:
  iError = 0 & iReturn < 0
  The condition test is an assignment expression. Probably, you mean to
use == instead of =. If an assignment is intended, add an extra
parentheses nesting (e.g., if ((a = b)) ...) to suppress this message.
(-predassign will suppress message)
/home/nfsmount/andromeda/franko/proba.cpp:7:10:
    Test expression for if not boolean, type int:
  iError = 0 & iReturn < 0
  Test expression type is not boolean or int. (-predboolint will
suppress
  message)
Finished LCLint checking --- 2 code errors found
  Szóval én ilyen kis problémákra szeretnék megoldásokat... :)
-- 
Frank O'Yanco - Auth Gábor -=- Mobil/SMS +36203494743 /+36303687792
Age of The Penguin -=- SuSE Linux 7.1 -=- http://andromeda.rgstudio.hu |  |