1. |
RE:virtual es memset (this, 0, sizeof (ClassA)); (mind) |
12 sor |
(cikkei) |
2. |
Re: dinamikus adatok megosztasa 32-bites DLL-ben (mind) |
27 sor |
(cikkei) |
3. |
Re: Sin...Cos es Lee-algoritmus (mind) |
17 sor |
(cikkei) |
4. |
Re: FLC es AVI formatum (mind) |
6 sor |
(cikkei) |
5. |
Re: Sin...Cos es Lee-algoritmus (mind) |
6 sor |
(cikkei) |
6. |
Re: virtual es memset (this, 0, sizeof (ClassA)); (mind) |
29 sor |
(cikkei) |
|
+ - | RE:virtual es memset (this, 0, sizeof (ClassA)); (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szia Joco,
A memset (this, 0, sizeof (ClassA)); hasznalata a konstruktorban nem tulzottan
szerencses. A megfigyelesed helyes, valoban szamit az, hogy az adott osztalyban
van-e virtualis fuggveny. Ebben az esetben ugyanis a this pointer a virtualis
fuggvenyek cimet tartalmazo tablazat (ezt szoktak vtable-nek is nevezni) cimere
mutat. Ezt a memset kinullazza igy az elso virtualis fugveny meghivasakor a co
mpiler a 0 cimrol akarja kivenni a virtualis fuggvenyek tablajanak cimet es ezz
el a muvelettel a vilagurbe indexel. Azt hogy ezutan mi tortenik, azt mar konny
u kitalalni... :)
Bela
|
+ - | Re: dinamikus adatok megosztasa 32-bites DLL-ben (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello!
A dinamikusan allokalt memoriat csak a file mapping segitsegevel lehet hozzafer
hetove tenni mas processzek szamara. Nem tul nehez ezt megoldani, de a leirt fe
ladathoz nincs szukseg kozvetlenul osztott memoria kezelesere, sokkal kenyelmes
ebb valamilyen osztott memoriara epulo indirekt modszert hasznalni, pl. a named
pipe-okat. A pipe-nak eloszor is valasztasz egy nevet. A DLL indulaskor megnez
i, hogy letezik-e mar ilyen nevu pipe (CreateNamedPipe()), ha igen, akkor csak
lekerdezi az azonositojat, ha nem, akkor letrehozza, es a ConnectNamedPipe() fu
ggvennyel hozzarendeli egy esemeny objektumhoz. Ezutan egy vegtelen ciklusban v
arakozni kell a kliens keresekre pl. a WaitForSingleObject() fuggvennyel. Az in
formacio fogadasat es irasat a szokasos Read/Write fuggvenyekkel lehet vegrehaj
tani.
A klienseknek eleg csak egy fuggvenyt meghivniuk, a CallNamedPipe() fuggvenyt,
ezzel atpasszolnak egy kerest a szervernek es valaszt is kaphatnak ra. A szerve
r a halozat mas gepen is lehet!
Ha ugyanezt a funkcionalitast kozvetlenul file mapping-gel akarod megoldani, ak
kor minden csak bonyolultabb lesz, mert pl. a hozzaferesek sorbarendezesehez a
kliens oldalon tovabbi fuggvenyhivasokra lesz szukseg (viszont a CallNamedPipe(
) ezt mar tartalmazza).
Szanto Tamas
MOL Rt. IT
(webes bekuldes, a bekuldo gepe: fw.mol.hu)
|
+ - | Re: Sin...Cos es Lee-algoritmus (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hali!
> Az lenne a kerdesem hogyan lehet kiszamitani ASM-ban A Sin es Cos
> ertekeket? Persze a fixpontos abrazolast kell hasznalni azt sejtem.
Milyen ASM? A PC-n ezt tudja a floating point unit. Igy nem kell
fixpontos aritmetikat irnod.
> Hallottam arrol hogy valamilyen tablazatos modszer is van es a tablazatoto
> is futasidoben allitja elo a rutin.
Ha az eletem mulna rajta, akkor en Taylor sorba fejtenem a dolgot.
--
Let the Source be with you!
ImRe
|
+ - | Re: FLC es AVI formatum (mind) |
VÁLASZ |
Feladó: (cikkei)
|
>Erdekelne az FLC es az AVI formatum szerkezete es hogy hogyan
>Ezert ha tudnatok cimet, hogy hol talalok leirast ill.
http://www.wotsit.org/animate.htm
z2
|
+ - | Re: Sin...Cos es Lee-algoritmus (mind) |
VÁLASZ |
Feladó: (cikkei)
|
>Az lenne a kerdesem hogyan lehet kiszamitani ASM-ban A Sin es Cos
>ertekeket? Persze a fixpontos abrazolast kell hasznalni azt sejtem.
http://www.chu.cam.ac.uk/home/lk213/comp_fix.html
z2
|
+ - | Re: virtual es memset (this, 0, sizeof (ClassA)); (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Szevasztok!
>Felado : [Hungary]
>Osztalyok konstruktoranak elokeszitesere eloszeretettel hasznaltam
>a memset funkciot a kovetkezo formaban:
>ClassA::ClassA (void)
>{
>memset (this, 0, sizeof (ClassA));
>return;
>}
>Mindaddig nem is volt ezzel problemam, amig az adott osztalyban
>nem szerepelt virtualis fuggveny. Ha azonban szerepelt a virtual
Latod azert mert a C-ben szinte mindent meg lehet tenni, olyat csinalsz,
amibol csak gond lehet.
Sehol sincs leirva, hogy igy lehet, kell inicializalni egy osztalyt (Te
ugyan azt allitod, hogy a konstruktor elokeszitesere hasznalod, de a
memset-ben az osztaly meretet adtad meg!).
Azert mert egy-ket alkalommal mukodott, latod egy masik helyzetben mar nem
mukodik. Mi van, ha egy masik C alatt, vagy akarcsak egy uj verziojaban a
forditodnak nem 2 byte-ot, hanem pl. 5 byte-ot hasznalnak valami kulonleges
celra?
Szerintem ezt ne tedd, hanem tessek a konstruktorban minden egyes valtozo
erteket egyenkent inicializalni!
Udvozlettel (:-))>
Torma Istvan, TOR, (ekezetes, tegezodes johet)
|
|