Archive for the 'Kompiuterizmai' Category

Naujasis darbo įrankis - Dell Vostro 1400

Kadangi viena trečioji mano gyvenimo yra virtuali, po incidento teko kuo greičiau ieškotis naujojo darbo įrankio. Kurį laiką paturėjęs savo Acre’į, pamačiau jo blogąsias puses ir jau žinojau kokio daikto norėčiau. Acer’yje nepatiko plastmasių minkštumas. Taip pat norėjau didesnės skiriamosios gebos, 1280 ir 800 atrodė kiek mažokai. Žvilgsnis krypo ir į mažesnius nei 15,4” aparatus. Apibendrinant, ieškojau nedidelio ir galingo :-) Paprasta. Rinkausi iš Dell produktų, kodėl - sakyti turbūt neverta. Sprendimą radau ganėtinai greitai - Dell Vostro 1400.

Dell Vostro 1400

  • Core 2 Duo T5470 (1.6Ghz, 2MB L2 Cache, 800MHz FSB)
  • 14,1” WXGA+ (1440×900) TrueLife
  • 2GB DDR2 667Mhz
  • 128MB Nvidia Geforce 8400GS
  • 160GB 5400RPM
  • 4 USB lizdai
  • 2.0 mega pixel webcam
  • WiFi, Ethernet, CD/DVD burner, etc…
  • Windows Vista Business
  • 3 metų garantija
  • Svoris: 2,65 kg

Jau kelias dienas džiaugiuosi naujuoju pirkiniu. Kompiuteris daug smagesnis, nei buvęs. Korpusas ir klaviatūra tvirti. Korpusas matinis, juodas. Ant viršaus lieka nežymūs pirštų antspaudai. Klaviatūra veikia tyliai, mygtukai patogūs ir vienodai reaguoja į paspaudimus. Atrodo tai turėtų būti savaime suprantama, tačiau kaikurių “minkšto” korpuso kompiuterių klaviatūrų mygtukai į paspaudimus reaguoja nevienodai. Ekranas taip pat laikosi stabiliai. Tarp kitko pats ekranas uždarius nėra fiksuojamas fiksatoriais, kaip įprastai, tačiau laikosi vistiek laikosi stipriai. Be to, taip patogiau jį atversti. Nors ekrano istrižainė mažesnė nei buvusio, tačiau palaikoma maksimali rezoliucija didesnė (tai ir buvo vienas iš veiksnių, kodėl pasirinkau būtent šį modelį). Apžvalgos kampas ganėtinai didelis, ekranas ryškus. Integruotos web kameros vaizdo kokybė taip pat nudžiugino - tikėjausi prastesnių rezultatų, kadanors parodysiu. Integruotos garso kolonėlės nėra skirtos klausyti muzikai, tačiau filmams visai užtenka. Kokybė vėlgi geresnė nei Acer’io. Kompiuteris veikia tyliai, kaista mažai. 6 celių akumuliatorius veikia iki 4 valandų naudojant Windows Vista.

Vostro ir Ubuntu

Žinoma netrukus susiinstaliavau Ubuntu. Gaila, tačiau čia ne viskas vyko sklandžiai, kaip norėjau. Užkrovus sistemą iš Live CD, neveikė WiFi tinklo plokštė. Taip pat sistema neturėjo Geforce vaizdo tvarkyklių (parinko tvarkykles pagal nutylėjimą). Dėl WiFi išsiaiškinau, kad taip nutinka su visomis Broadcom tinklo plokštėmis. Pakako kompiuterį prijungti prie interneto įkišus kabelį ir Ubuntu automatiškai susirado reikiamas video ir tinklo tvarkykles. Kaltinti Ubuntu čia nėra ko, nes kūrėjai paprasčiausiai nededa neatviro kodo tvarkyklių į CD. Dar viena problema - Stand by ir Hibernate rėžimai. Nepavyksta pervesti kompiuterio į nei vieną iš jų. Pasirinkus, sistema uždaro grafinę sąsają ir galiausiai pakimba. Trumpai permečiau akimis forumus ir radau, jog tai Vostro problema. Kolkas sprendimo neieškojau.

Manau, kad labai neblogas pirkinys už puikią kainą. Jei sumanysite pirkti tokį patį, atkreipkite dėmesį į Vostro su Free DOS (žinoma, jei dar rasit). Sutaupysit 200 Lt.

Kai laptope trūksta vietos…

Filmai, muzika (turiu įprotį rinkti diskografijas), dvi operacinės sistemos ir 100 gigabaitų kieto disko darosi mažokai. Stacionariam kompiuteriui užtektų tiesiog nupirkti papildomą kietą diską. Šiais laikais paplitusiuose midi tower korpusuose vietos jam tikrai atsirastų. Tuo tarpu nešiojamuose kompiuteriuose dažniausiai tektų keisti visą kietą diską į didesnį. Nežiūrint į tai, jų kietieji diskai yra mažesni (turiu galvoje ir talpą) ir brangesni. Kitas variantas - nusipirkti stacionaraus kompiuterio HDD ir jam skirtą išorinį stalčių (case), kuris jungiamas prie kompiuterio per USB. Šiomis dienomis kietieji diskai kainuoja nedaug 200-300 Lt už 320-400 Gb, o išorinis dėklas: ~100 Lt. Vakar pasiemiau 320 Gb HDD (400 jau nebebuvo), o prie jo prigriebiau ir Cooler Master XCraft Lite išorinį dėklą.

Cooler Master XCraft Lite (RX-3SB)

Kas įtakojo pasirinkti būtent šį produktą - negaliu tiksliai ir pasakyti. Tiesą sakant, nėra čia ką daug ir svarstyti - ieškojau SATA palaikymo ir dėmesį kreipiau į dizainą. Cooler Master produkcija pasižymi unikaliu dizainu, tad produkai traukia akį. Galima pasirinkti dėklo spalvą: juodą arba sidabrinį. Parsinešęs namo puoliau atlupinėt dėžę.

Cooler Master XCraft Lite

Nustebino gausus priedų rinkinys. Į komplektą įėjo:

  • XCraft Lite USB 2.0 dėklas 3.5” kietąjam diskui.
  • A-Male - B-Male USB 2.0 kabelis. 3 pėdų ilgio, tad kiek trumpokas.
  • eSata kabelis jungimui prie kompiuterio. Taip pat 3 pėdos.
  • SATA - eSATA išėjimo lizdas stacionariam kompiuteriui. Tvirtinamas galinėje sienelėje.
  • Aliumininė prie šono fiksuojama kojelė, norint diską laikyti vertikaliai.
  • Maitinimo kabelis.
  • Dvi fiksavimo plastmasės ploniems HDD.
  • CD su USB tvarkyklėmis (chi chi) ir kažkokia programine įranga.
  • Vartotojo vadovas.

XCraft Lite dėžės turinys

Programinės įrangos nebandžiau, nes ji skirta Windows OS. XCraft’as palaiko iki 500 Gb ir iki 10000 apsukų per minutę kietuosius diskus. Ant dėžutės parašytos palaikomos OS: Windows ir Mac. Įdomu kodėl neparašytas Linux palaikymas? :-) Įrenginio priekinėje sienelėje ir apačioje esančios grotelės leidžia vėsinti kietąjį diską ir apsaugo jį nuo kaitinimo. Tiesa, dėl to girdimi disko triukšmai, nes jis nėra pilnai izoliuotas. Pradžioje norint atidaryti dėklą reikėjo šiek tiek pastangų. Gale yra sidabrinis mygtukas, kurį paspaudus nusiema viršutinė dėklo dalis. Tada į vidų jau galima statyti kietąjį diską. Diskas užmaunamas ant mažų “vinukų” su spiruoklėmis. Uždarius dėklą, spiruoklės prispaudžia diską prie viršutinės dalies, o vinukai neleidžia jam slankioti. Diskas išlieka stabilus vartant patį dėklą. Po viršutiniu dangčiu yra užklijuota kažkokios termomedžiados juosta, kuri taip pat turėtų padėti vėsinti.

Pajungimas

Viską sujugus atėjo metas pirmam bandymui. Įjungiau maitinimą, įkišau USB laidą, laukiu kol Ubuntu automatiškai primountins diską. Nieko nevyksta. Pasileidau disko skirsnių editorių - GParted ir žiūriu ką turiu.

GParted

Nieko nuostabaus, kad nebuvo automatiškai primountintas - pirmiausiai reik jį suformatuot. Jau esu perdaug pripratęs prie flash laikmenų. Sukūrus naują skirsnį, diskas atrandamas be jokių problemų, tačiau yra automatiškai prijungiamas /media/kažkas. Aš savo kompiuteryje diskus prijungiu $HOME direktorijoje esančiuose kataloguose “C”, “D” ir t.t. Taip būna daug patogiau juos pasiekti per terminalą. Todėl būtų labai patogu, kad ir šis būtų jungiamas tarkim prie ~/E katalogo. Tam užtenka sukurti nuorodą. Ant darbastalio atsiradusios disko ikonos spaudžiame dešinį pelės mygtuką, pasirenkame properties. Atsidariusiame lange pažiūrime kur prijungtas diskas, arba nurodome statinį prijungimo tašką:

Mount point

Aš prijungimo tašką esu nurodęs kaip “E”, tad diskas jungiamas /media/E. Man daug patogiau kai diskai vadinami raidėmis. Pakeitimai įsigalios iš naujo prijungus diską. Galų gale telieka sukurti nuorodą iš savo $HOME katalogo į diską:

1
pawka@pawka-laptop:~$ ln -s /media/E E

Štai ir viskas, diskas pasiekiamas iš namų katalogo, kaip ir visi kiti. Ateityje reikės su rsync sinchronizuoti laptope ir diske esančius dokumentus, bei projektus, bet apie tai kitą kartą. Šiuo metu naujasis pirkinys iš interneto gilumų po truputį kaupia visus šešis Ozo sezonus (34 Gb).

TeleJazz laužimas SMS’ais

Toks čia ir laužimas, tiesiog duomenų validacijos spraga. Šianakt nesimiega, tai vis dar tupiu lovoj su skreitinuku (taip rašosi?). Mėgstu kai fone veikia televizorius. Tokiu metu TV3 rodo kažkokią laidą, kur visokie iškrypeliai ir nepilnavetiškumo kompleksą turintys žmonės siunčia SMS ir bando susirast antrą pusę arba “V+V”. Fone pasodinta kažkokia pana ir daro šou: skaito horoskopus, sapnus aiškina, etc. Seniau buvo stengiamasi SMS žinutės kainą rašyti kuo mažesnėmis raidėmis, kad niekas nematytų, tačiau šiais laikais niekas taip nebedaro. Dabar egzistuoja dar geresnis būdas - kaina išvis nerašoma, o tiesiog pateikiamas svetainės adresas, kurioje “galite rasti žaidimo taisykles”.

Tas puslapis turbūt išvis nėra lankomas ir sukurtas tiesiog, kad būtų. Visgi kažkas mane patraukė ten pasižiūrėt ką jie ten gali rašyt. Atsivertęs aptikau vieną įdomų puslapį, kuriame pateikiamas visų atėjusių SMS žinučių sąrašas. Atėjusi žinutė talpinama į duomenų bazę ir iškart rodoma, o per televizorių rodomos žinutės šiek tiek vėluoja. Tai leido daryti prielaidą, kad galbūt sąraše pateikiamos žinutės dar nėra patikrinamos? Ir kažkaip užnižo man nagai…

SMS #1: “<b>nieko neiesko, nes geria alu.”

Hacking TeleJazz

Veikia, bet beveik nesimato. Gal padarom gražiau?
SMS #2: “<h1>vis dar nieko neiesko, nes toliau geria alu.”

Hacking TeleJazz

O kaip su JavaScript’u?
SMS #3: “<script>alert(’alaus?’);</script>”

Hacking TeleJazz

Tai va. O viso šito moralas toks, kad reikia validuoti įeinančius duomenis nepriklausomai nuo to, ar jie ateina iš html formos, ar sms’u. “Koks durnius sugalvotų siųsti JavaScript’ą SMS’ais?” Iškart po atradimo parašiau laišką ir pranešiau apie klaidą. Kaip tyrimo kompensaciją (3 SMS’ai po du litu), gražiai paprašiau padovanoti kažkokį TeleJazz puoduką, kurį šianakt labai reklamavo, bet kažin. :-) Nors aš jų vietoj netaisyčiau klaidos, o palikčiau pasižaist kitiems. Vis keletą litų prisirinks.

Jūsų TOP 10 dažniausiai naudojamų konsolės komandų

Čia dar viena ekshibicionizmo apraiška. Kažkada ir kažkur (berods Ubuntuforums) buvau aptikęs įrašą, kuriame žmonės rašė savo dažniausiai naudojamas Linux konsolės komandas. Pati idėja pasirodė labai įdomi, nežiūrint į tai, kad perskaičius akimis permetus apie 10 kitų varototojų įrašų, tai pasidaro nuobodu. Bet kokiu atveju, įdomu sužinoti pačiam ką dažniausiai rašai terminale. Pabandom? Kas nori, gali skaičiuoti mintinai, o aš pasirašiau tokią eilutę:

1
history | awk '{print $2}' | sort | uniq -c | sort -nr | head -n10

Tiesiog nukopijuokite ją į savo terminalą ir “Enter”. Išvysite savo dažniausiai naudojamų konsolės komandų dešimtuką. Taip taip, žinau, kad “head” komanda pagal nutylėjimą duoda 10 pirmų įrašų, tačiau parametrą “-n” čia nurodžiau specialiai tiems, kurie norės peržiūrėti daugiau komandų. O štai ką gavau aš:

  • 94 cd - Dažnai vaikštau po direktorijas…
  • 88 ls - … ir žiūriu ką jose turiu.
  • 51 sudo - Dažnokai prireikia administratoriaus teisių.
  • 38 java - Leidžiu (bandau leisti?) Java aplikacijas…
  • 36 javac - …o kartais jas ir kompiliuoju.
  • 17 svn - Versijų kontrolės sistema.
  • 12 ssh - SSH klientas.
  • 11 php - Šitą dažniausiai naudoju Interactive rėžimu (su parametru “-a”: php -a).
  • 10 man - RTFM!
  • 9 rm - Trinu šiukšles.

Kol rašiau tą stebuklingąją bash eilutę, į topą įlindo “history” komanda, tad jos sąmoningai neskaičiavau. Dabar jūsų eilė!

Windows Vista bajeriai

Darbe pateikė man kompą su Windows Vista. Taip ir prasidėjo mano pirmoji pažintis su šia OS. Pačią pirmą dieną buvau nustebintas (jei nesimato klaidos pranešimas, paspauskite ant paveiksliuko, kad pamatytumėte didesnę versiją):

Vista Works Perfectly

“Error: The operation completed successfully” išgavau instaliuodamas Apache serverį :-) Kažko Vistai nepatinka ta Apache’o ikona, kuri turėtų būti system tray’uje.

Ubuntu: atsinaujinau į Feisty 7.04

Naujos Ubuntu Feisty 7.04 versijos išleidimas www.ubuntu.com puslapiui buvo tolygus denial of service atakai. Kiekvienas bandęs jį atsiversti, tiesiogiai prisidėjo prie atakos :) Puslapis nebuvo tinkamas naudoti beveik visą dieną, tačiau pasirodyti naująjai Ubuntu versijai tai nesutrukdė. Dienos viduryje pasirodė Feisty’čio image’ai ir torrentai. Palaukęs vakaro, užstačiau distribucijos atnaujinimą ir nuėjau miegot.

Kelias dienas panaudojęs naująją versiją, galiu šiek tiek apibendrinti pliusus. Pilnas “whats new” guli čia, tad viskas toliau tik iš mano pusės. Kaip ir visi laptopininkai, turbūt pirmiausiai pastebėjau naująjį network manager’į, bei integruotą WPA kodavimo palaikymą. Dabar kompiuteris gali nuolat veikti roaming’o būdu, o perjunginėti tinklus tapo daug paprasčiau.

Feisty network manager

Seniai to reikėjo, nes anksčiau tekdavo naudotis “iwlist scan”, o WPA taip ir nebuvau prisivertęs susitvarkyt. Kitas puikus dalykas, kuris nudžiugino šiandien - žymiai sumažėjęs energijos vartojimas, tad nešiojamo kompiuterio baterija veikia ilgiau. Gerokai ilgiau, netgi ilgiau, nei dirbant su Windows :) Nežinau, galbūt čia tik sutapimas, tačiau panašiomis sąlygomis ankščiau mano laptopas ištverdavo maždaug valanda trumpiau. Disk Usage Analyzer irgi neblogas dalykas, nors ir nėra būtinas. Tačiau kai pritrūksiu vietos, pradėsiu žvalgytis kurį didesnį gabalą disko pratrynus :)

Ubuntu Feisty 7.04 Disk Usage Analyzer tool

Naujojoje versijoje pilna dar visokio gėrio, tačiau man kolkas jo panaudoti neteko, nes naudoju ne šviežiai suinstaliuotą distribuciją, tad viską kaip ir susitvarkęs. Tačiau šviežiai instaliavus Ubuntu, visi šie nauji dalykėliai nemažai pagelbės. Po atnaujinimo didesnių nesklandumų neiškilo, tik vat hda tapo sda :) Nežinau kodėl taip nutiko, bet matyt čia jau kernelio ypatumai.

Skype virusas

Šiandien nepaprastu greičiu pradėjo plisti naujas Skype virusas, siūlantis kažkokios Sandros papus. Kaip skitzo iš IRC sakė: “nebutu sake kad papai nebuciau spaudes :D”. Vieną minutę užmetęs akį į X-Chat’ą nesupratau apie kokius papus ten šneka, o jau kitą - gavau pasiūlymą pasižiūrėti pats. Žinutės turinys maždaug toks (gavau keletą skirtingų variantų):

[21:35:40] … kaip tau tokia? :d
[21:35:40] … paziurek kokia foto andrius atsiunte
[21:35:45] … bet cia nesveikai
[21:35:49] … [cenzūra]sandra.jpg
[21:35:49] … [cenzūra]sandra.jpg
[21:35:50] … oi netau cia turejo but sory
[21:35:53] … (rofl)
[21:35:55] … :)

Žiūrim ką turim

pawka@pawka-laptop:~/Desktop$ wget [cenzūra]sandra.jpg
–21:51:39– [cenzūra]sandra.jpg
=> `sandra.jpg’
Resolving www.[cenzūra].ru… [cenzūra]
Connecting to www.[cenzūra].ru|[cenzūra]|:80… connected.
HTTP request sent, awaiting response… 301 Moved Permanently
Location: [cenzūra]/sandra.scr [following]
–21:51:40– [cenzūra]/sandra.scr
=> `sandra.scr’
Resolving pasidulkinam.com… 77.232.72.67
Connecting to pasidulkinam.com|77.232.72.67|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 179,328 (175K) [text/plain]

100%[========================================================>] 179,328 131.73K/s

21:51:42 (131.46 KB/s) - `sandra.scr’ saved [179328/179328]

Ir gaunam sandra.scr, kas ir yra virusas. Operuot neoperavau, kaip pašalint - tiksliai nežinau, nes nesirgau. Girdėjau, kad jis lyg įsirašo į temp katalogą ar tai Windows/system32/. Tad darot maždaug taip:

  • Į run (iš start meniu) lauką įsirašot “msconfig”
  • Išsiimat iš start-up’o ko nereik, t.y. “Windows/system32/skype.exe”.
  • Per search’ą sistemoje susirandat *.pf failus ir juos šalinat lauk.
  • Rekomenduojama švariai ištrinti ir perinstaliuoti Skype.

Pamenu kai panašūs dalykai dėdavosi IRC. Dabar Aitvaro komanda neblogai dirba ir tiesiog užmeta autokill’ą vartotojams, kurie parašo kokio nors kenksmingo puslapio adresą (pats iš smalsumo gavau killą, kai darbe pabandžiau parašyt sau į privatą vieną adresą ir pažiūrėt kas bus :-)). Todėl tokiems dalykams ilgai plisti IRC paprasčiausiai nėra sąlygų. O kaip bus su Skype?

Evolution sinchronizacija su Google Calendar @ Ubuntu

Nieko naujo neišradau, tiesiog aptikau labai smagų dalykėlį. Apskritai nemėgstu naudoti visokių mail-calendar programų (a la Outlook, Thunderbird, Evolution, …). Galbūt tiesiog neturėjau būtinybės jas naudoti. Man geriausias kalendorius - Google Calendar, o geriausias el. pašto klientas - Gmail. Tačiau kažkaip instinktyviai-intuityviai sugalvojau pabandyti susinchronizuoti savo Google Calendar su standartiniu Gnome el. pašto klientu - Evolution.

Visų pirma, reikia nusikopijuoti konkretaus kalendoriaus adresą. Tam Google kalendoriuje atidarome kalendorių tvarkymą (manage calendars). Iš kalendorių sąrašo pasirenkame kokį kalendorių norime įtraukti. Atvėrus kalendoriaus tvarkymo puslapį, pasirenkam Pirvate iCal adresą ir jį nusikopijuojame.

Google Calendar

Dabar įkelsim jį į Evolution’ą. Pasileidę programą, atsidarome kalendoriaus rėžimą ir pasirenkame kurti naują kalendorių. Parinkę kalendoriaus tipą “Web Calendar”. Į tam skirtą vietą įterpiame, anksčiau nukopijuotą, kalendoriaus iCal adresą. Nusistatom kitas opcijas ir viskas. Analogiškai susikeliam kitus kalendorius.

Evolution

Gaila, bet kalendorius veikia tik skaitymo rėžimu, tad visus redagavimo darbus turėsit toliau atlikti naudodamiesi naršykle. Jei tuo viskas ir užsibaigtų, nebūčiau taip apsidžiaugęs ir turbūt netgi viso šito nenaudočiau. Bet dabar smagiausia dalis. Visi Evolution’o kalendoriaus įrašai automatiškai rodomi Gnome kalendoriuje:

Gnome Calendar

Nors tai nėra padaryta idealiai, teksto dalis nukerpama ir nerodoma jokiam pop-up’e, tačiau vistiek patogu. Nereik kiekvieną kartą krautis naršyklės, norint peržvelgt dienotvarkę. Žodžiu, jūzeful.

P.S. Žinau žinau, straipsnio pavadinimas nevisai tikslus. Tačiau kaižkaip vietoj “Linux” ar “Gnome” instinktyviai įrašiau Ubuntu :-) Vistiek gi supratot :-P

Bėdos su dinaminiu DLL užkrovimu su C++

Gaminu čia mokslams tokį kursinį. Semestro darbas. Nors pradžioje turėjom vilčių pradėt (ir užbaigt) kuo anksčiau, bet va, mokslų liko tik viena savaitė, o mūsų projektas dar neužbaigtas. Norėjosi geriau, gavosi kaip visada. Žodžiu, reikia parašyti programą, dirbančią su aprašytomis schemomis. Nusprendžiau, kad bus labai gražu ir patogu duotas schemas sukompiliuoti į DLL failus, o paskui, programos vykdymo eigoje, vartotojas (aka dėstytojas) galės pasirinkti schemą. Vakar teko užtektinai su tuo pasikrušti. Pagal visus oficialius ir neoficialius pavyzdžius NIEKAIP nepavyko suprograminti, kad DLL’as būtų užkraunamas dinamiškai.

Anot visokių wikipedijų ir MSDN’ų, apsirašom DLL’ą maždaug taip:


#include <windows .h>

BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}

//Eksportuojam funkciją.
extern "C" __declspec(dllexport) int test()
{
    return 123;
}

Sukompiliuosim ir turėsim DLL’ą su labai reikalinga funkcija test(), kuri grąžins 123 :-) Dabar galim bandyti naudoti šį kūrinį statiškai (bandžiau įsitikinti ar veikia).


#include <windows .h>
#include <iostream>

//Importuojam funkciją.
extern "C" __declspec(dllimport)int test();

int main(int argc, char **argv)
{
    int tmp = test();
    std::cout < < tmp << endl;
    return 0;
}

Viskas kaip ir OK, veikė kuo puikiausiai (į projektą įtraukus *.lib). Reiškia DLL’as gyvas. Bet kadangi mano užduočiai statinis variantas netiko, nes schemų gali būti bet kokių ir bet kiek, tai reikėjo rinktis dinaminį DLL užkrovimą. Maždaug pasirenku kokį noriu failą, jis patikrinamas ar tai būtent schemos failas (ar turi reikiamus metodus), jei viskas tvarkoj - naudojam. Viso šito sourcas toks:


#include <windows .h>
#include <iostream>

//Būsimos funkcijos aprašas.
typedef int (*importFunction)();

int main(int argc, char **argv)
{
    importFunction test;
    int result;

    //Užkraunam DLL'ą.
    HINSTANCE hinstLib = LoadLibrary("ManoDLL.dll");
    if (hinstLib == NULL)
    {
        std::cout < < "ERROR: unable to load DLL" << endl;
        return 1;
    }
    // Gaunam rodyklę į funkciją.
    test = (importFunction)GetProcAddress(hinstLib, "test");
    //Tikrinam ar funkcija egzistuoja.
    if (test == NULL)
    {
        std::cout << "ERROR: unable to find DLL function" << endl;
        FreeLibrary(hinstLib);
        return 1;
    }
    result = test();
    // Iškraunam DLL'ą iš atminties.
    FreeLibrary(hinstLib);
    std::cout << "The result was: " << result << endl;
    return 0;
}

Va čia ir prasidėjo bėdos. DLL’as būdavo užkraunamas, tačiau GetProcAddress vis nesugebėdavo atrinkti reikiamo metodo. Kas man iš to dll’o jei negaliu naudot jo metodų? Buvo siūlymų prie metodo eksportinimo darašyt cdecl, tačiau tai nepadėjo. Po kelių valandų bandymų ir ieškojimų išradau, jog DLL’e aprašant funkciją, reik prirašyt __stdcall:


//Eksportuojam funkciją.
extern "C" __declspec(dllexport) int __stdcall test()
{
    return 123;
}

Dabar viskas veikia kuo puikiausiai :-) Daugiau info MSDN’e ir Wikipedijoj.

Duomenų atkūrimas

Pasirodo nėra labai gerai vienu metu bandyti švariai perinstaliuoti OS (su reikalingų duomenų perkėlimu į kitą particiją, ir HDD formatavimu) ir tuopat metu lakti alų. Šių dviejų įvykių sąjungos rezultatas gali būti kiek fatališkas. Pavyzdžiui pirmą kartą po instaliacijos užsikrovus MS produktui, atsidarę backupinį HDD, pastebėsite, jog vietoj turėjusios likti 300 MB laisvos vietos iš 30 GB, liko tik 300 MB užimtos… Tada koks nors draugas Povilas (aka aš) pasiteiraus, “galbūt atvirkščiai hardą pajungei ir dėl to visa informacija invertavosi? :-)”. Na bet kuriuo atveju vieniems ši situacija kiek juokinga, kitiems nelabai… Po kiek laiko atgaminama jog formatavimui buvo pasirinkta ne ta particija :-)

Reikalui išspręsti ieškojau kažkokių programų download.com‘e, tačiau dauguma jų reik pirkt norint atkurt duomenis, o dar be to tuo metu garavo alus, tai paieškos ilgai netruko. Nusprendėm atidėt kitam kartui. Tad gal kam yra tekę atstatyti informaciją iš suformatuoto HDD? Kuo naudojotės? Ką galėtumėt rekomenduoti? Tai atliekančių firmų paslaugų nesiūlykit.