Visual C# 2005
Homman nimi on sellainen että pitäisi jotenkin saada pointteriin suora muistiosoite joka on tallennettuna int-muuttujaan. Eräs ActiveX-komponentti palauttaa funktiolla käsittelemänsä tiedon muistiosoitteen (C long-tyyppisesnä, mutta taitaa olla int C#:ssa).
Esim. tyyliin.
unsafe koodia...jne..plaaplaa
{
int *ptr;
int osoite = 3243290490; // hatusta vetäsin
ptr = osoite; /* Tässä kohtaa mennään metsään, kun C# ei ymmärrä */
}
Kääntäjä valittaa seuraavaa: Cannot implicitly convert 'int' to 'int*'. An explicit conversion exists (are you missing a cast?)
Onko olemassa jotain kikka kolmosta ongelman ratkaisemiseksi? Muuten tekisin ohjelman C :lla mutta kun rahkeet ei riitä C :ssa muuhun kuin konsoliohjelmien tekoon ja mikro-ohjainten ohjelmointiin (c-kieli).
Visual Basicilla sain kyllä moisen tempun tehtyä vaikka se on vielä vähemmän osoitin-ystävällinen. Ainut vaan että Basic on tehoton kieli nopeaan prosessointiin, mihin olisi tarvetta. Mitä tehokkaampi kieli, sitä vaikeampaa on, ainakin aluksi.. :) Tarkoitus on kyllä sitä c :kin opiskella (nytkin pari kirjaa lainassa), mutta kun se alku on aina hankalaa.... Snif..
C# ja suora muistiosoite
7
1804
Vastaukset
- kjhg
Tyyppimuunnoksen kanssa pitäisi toimia:
unsafe
{
int* ptr;
int osoite = 3243290490;
ptr = (int*)osoite;
}- überkoodari
Sehän tuli kuin apteekin hyllyltä! Kiitos todella paljon!
Noin se tosiaan toimii.. On todella "hurjaa" kun C#-kielessä joutuu kirjoittamaan "unsafe"-koodia osoittimien kanssa. Kielen pitäisi olla muka helpompaa, mutta vaikeammaksihan se menee kun helppouden muuria joutuu särkemään..
Noh, joka kielessä on omat jipponsa; ei auta itku markkinoilla. :)
Ihan uteliaisuudesta: sattuukohan kukaan tietämään miten osoittimet saa käyttöön javalla (visual j#)? :D
Kumpi on mielestänne hyödyllisempi kieli: java vai C#? Itse touhuilen pääasiassa sulauttujen järjestelmien/sovellusten kanssa (= elektroniikkaa mukana), eli sellaisessa tarkoituksessa. Mitään pelejä tms. ei ole tarkoitus väsäillä, lähinnä videokuvaa tai ääntä analysoida.
- kjhg
Periaatteessa *- merkki tulee tyypin perään eikä osoittimen nimen eteen kuten sen kirjoitit. Jos rivillä esitellään vain yksi osoitin, ei tosin tule virhettä, koska välilyöntien paikoilla ei ole merkitystä.
int* p1, p2, p3; // Näin
int *p1, *p2, *p3; // Ei käänny- überkoodari
Kiitti vielä tästäkin vinkistä. Hieman juurtunut tuo osoittimien käyttö c-puolelta.. :)
- näin?
int* p1, p2, p3; // Näin
int *p1, *p2, *p3; // Ei käänny
------------
Onko todellakin noin? Jos on, kielen kehittäjät eivät ole liikaa vaivautuneet säilyttämään c/c :n esittelymuotoja. - überkoodari
näin? kirjoitti:
int* p1, p2, p3; // Näin
int *p1, *p2, *p3; // Ei käänny
------------
Onko todellakin noin? Jos on, kielen kehittäjät eivät ole liikaa vaivautuneet säilyttämään c/c :n esittelymuotoja.Ainakaan äkkiseltään kun kokeilin, niin ei toiminut. C#-kielessä on jotain tuollaista pientä hämärää, joka kummastuttaa jos siirtyy esim. c/c puolelta suoraan..
- Mika0800
vertailu:
char* s1, s2, s3; // Loogisesti oikeaoppinen tapa, mutta hyvin harva C -ohjelmoija kirjoittaa näin.
char *s1, *s2, *s3; // C-kieliohjelmoijien eniten käyttämä tapa, vaikka onkin erittäin epälooginen.
C -kääntäjä yleensä hyväksyy kumman tahansa tavan käytön.
harjoitustehtävä:
kirjoita funktio, joka muuntaa kumman tahansa em. merkkijonoista tällaiseksi:
"char* s1, s2, s3;"
Ketjusta on poistettu 1 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
S-kauppa nosti hintoja, K-kauppa laski
Elintarvikkeiden arvonlisävero laski vuodenvaihteessa 13,5 prosenttiin. S-kauppa siirsi alennuksen suoraan katteisiin pi1827682Hiihtäjä Vilma Nissisen kommentit aiheutti paniikkia
ja hernettä vedettiin nenään. Nissinen kertoi torstaina haastattelussa, kun häneltä kysyttiin, että tykkääkö hän hiihtä1365279Huuto yltyy persujen piirissä Venezuelan johdosta.
Kohta kakofonia yltyy kun persut tajuavat mitä Venezuelassa tapahtui. Von den Leydenki jo kipuilee kuten persut EU:ssa y562791- 2772391
Nyt ottaa persua pattiin: sähköauto joulukuun myydyin
🤣 prööt prööt pakoputkellaan pörisevää persua ottaa nyt saamaristi pattiin, kun paristoilla kulkeva sähköauto on noussu1332326Yhdysvaltain hyökkäys Venezuelaan on YK:n peruskirjan mukaan laiton hyökkäyssota
Oman sävynsä tähän tuo vielä se, että hyökkäys kohdistettiin nimenomaan valtiojohtoa vastaan. Toki, kun tavoitteena on v5712134Ovatko Perussuomalaiset kommunisteja?
Toiset sanovat että ovat, toiset sanovat että eivät. Ainakin heillä on paljon sen aatteen piirteitä, koska haluavat kont722109Persuilla paniikki, kun diktaattorit yksi kerrallaan kaatuvat
Hallapersut halusivat sivarineidostaan sotilasjuntan komentajan Suomeen, jotta persuaatteen mukaiset puhdistukset olisi61768Ei tule uni
Kuten epäilin. Onneksi viime yön sain ihan hyvin nukutuksi. Tiesin kyllä, ettei tästä mitään tänään tule.571166Laittaisin whatsuppissa viestin
Jos olisin täysin varma että se on toivottua vielä kun aikaa on mennyt ja että toivot sitä edelleen.701149