Internet: za i protiv (školski eseji). Društvene mreže u životu srednjoškolaca Poruka na temu Internet prednosti i mane

Od 2010. sveruska linija za pomoć djeci 8-800-2000-122 Primljeno je više od 8 milijuna zahtjeva.
Trenutno su na jedan broj povezane 222 usluge u 83 regije naše zemlje. Djeca, adolescenti i njihovi roditelji mogu dobiti psihološku pomoć u teškim životnim situacijama. Poziv je besplatan i anoniman.
Konkretno, web stranica linije za pomoć navodi glavne znakove i 10 oblika internetskog nasilja.


Suvremena djeca i tinejdžeri, koje nazivamo “digitalnim građanima”, lako svladavaju računalo, Mobilni uredaji i vješto ih koristiti. Ipak, dječje sigurnosne vještine na internetu zaostaju za njihovom sposobnošću učenja novih aplikacija i uređaja.

Glavne opasnosti na internetu za djecu i adolescente su sljedeće:

1. Cyberbullying (Internetsko zlostavljanje).

2. Korištenje interneta za manipuliranje sviješću djece i adolescenata (propaganda ekstremizma, asocijalnog ponašanja, samoubojstva, uključivanje u opasne igre).

4. Cyber ​​prijevara.

5. Sigurnost pristupa internetu i krađa osobnih podataka tehničkim sredstvima.

6. Protuzakonito prikupljanje osobnih podataka maloljetnika i (ili) širenje u javnoj domeni.

7. Pregledavanje stranica za odrasle.

Svaka se generacija više ili manje razlikuje od prethodne. No, upravo su djeca rođena početkom trećeg tisućljeća i koju nazivamo generacijom Z u tom smislu apsolutno jedinstvena, jer na njihov razvoj utječu od samog početka ranih godina pod utjecajem tako moćnog alata kao što je digitalna stvarnost.

Internet je novo okruženje i izvor razvoja djeteta. Naravno, ova situacija utječe na formiranje dječje osobnosti, njihove odnose s vanjskim svijetom i njihove kulturne prakse.


Predsjednik kreativne udruge “Unpress”, doktor pedagoških znanosti Sergej Cimbalenko, rekao je u jednom od svojih intervjua: “Djeco na internetu, to je činjenica, od toga se ne može pobjeći. Društvo je prešlo na stalni dijalog Ovo je odlučujući prijelaz na kolektivnu inteligenciju, ili su djeca prva zakoračila u ovo novo stanje društva."

Prema Odsjeku za psihologiju ličnosti Moskovskog državnog sveučilišta, broj djece koja svakodnevno koriste internet porastao je na 95%. Istodobno, 32% djece surfa internetom svaki dan po 8 sati, dok je prije tri godine takvih bilo samo 14%. Pred našim očima formira se nova “digitalna” generacija koja se neminovno suočava s rizicima pri korištenju World Wide Weba.


Jedan od “Velikih projekata” u domenskoj zoni.CHILDREN je projekt Sputnik.Children u kojem je odabrano više od 5000 stranica: s crtićima, igricama, knjigama, pjesmama i još mnogo toga. Svaki resurs testiraju procjenitelji tražilica i sigurnosni sustav.

Google roditeljima nudi 10 pravila za sigurnost djece na internetu. Prvo pravilo je razgovarati s djetetom o sigurnosti na internetu, uvjeriti ga da se u svakoj nejasnoj ili zastrašujućoj situaciji obrati roditeljima kako bi pronašli sigurno rješenje.

Korištenje interneta od strane tinejdžera

Zanimljiv članak objavljen je 09.03.2017. na web stranici Selo, s pričama pet ruskih tinejdžera u dobi od 11 do 16 godina, o tome kako se koriste i kolika je važnost interneta za njih, koje su im omiljene stranice i društveni mediji, svoje mišljenje o online sigurnosti i roditeljskoj kontroli.

Na mnogo načina, stavovi ovih tinejdžera prema internetu odražavaju rezultate studije u nastavku. Osim njihovog općeg mišljenja: internet ima i „protiv“ i opasnosti.


Godine 2013. provedeno je prvo (i zasad jedino) sverusko znanstveno istraživanje digitalne kompetencije tinejdžera i roditelja djece tinejdžerske dobi. Studiju su proveli Zaklada za internetski razvoj i Fakultet za psihologiju Moskovskog državnog sveučilišta nazvanog po M.V. Lomonosov uz podršku Googlea.

U Rusiji 89% tinejdžera u dobi od 12 do 17 godina svakodnevno koristi Internet. Radnim danom 37% njih provodi 3 do 8 sati na internetu, vikendom 47%. Mobilni internet Dvostruko popularniji kod djece nego kod njihovih roditelja.

Većina tinejdžera koristi internet za pretraživanje zanimljiva informacija. Na drugom mjestu po popularnosti je potraga za informacijama za proučavanje.

Kako se pokazalo, gotovo trećina ispitane djece smatra da internet nema nikakvih nedostataka, a svako deseto imalo je poteškoća sa samim pitanjem o “nedostacima” interneta.

Glavni zaključak studije je da je razina digitalne kompetencije i roditelja i samih adolescenata otprilike trećina najveće moguće u Rusiji (31% za roditelje i 34% za adolescente).

U siječnju 2019. VTsIOM je proveo istraživanje odraslih i adolescenata (14–17 godina) o pitanjima vezanim uz utjecaj društvenih mreža na njihovo ponašanje.

Značajno je da ispitanici svih dobnih skupina primjećuju da interes tinejdžera za "loše" grupe na društvenim mrežama ne formiraju same mreže, već stvarni problemi školaraca: 49% tinejdžera smatra da je takav interes uzrokovan stvarnim psihički problemi, 31% – sukobi s vršnjacima i 29% – nedostatak roditeljske kontrole.


Prema istraživanju Zaklade " Javno mišljenje”, provedenom u prosincu 2015. godine, samo 10% djece starije od 6 godina ne koristi društvene mreže. Pitanje je postavljeno ispitanicima s kojima žive djeca starija od 6 godina.

Utjecaj interneta na tinejdžere

Psiholozi Centra za socijalno-psihološku prilagodbu i razvoj adolescenata Perekrestok smatraju da je jedan od glavnih problema razvoj ovisnosti o računalu.

Britanski psiholozi smatraju da su tinejdžeri ovisni o Facebooku, Twitteru i računalne igrice pozitivna pojava. Prema njihovom mišljenju, smanjenje upotrebe alkohola i droga kod tinejdžera u Europi i SAD-u povezano je s rastućom popularnošću društvenih mreža, računalnih igrica i širenjem društvenih mreža među mladima.

Ruski tinejdžeri, poput svojih zapadnih vršnjaka, značajan dio svog slobodnog vremena provode na internetu. Međutim, to ne utječe na razinu uporabe droga.

Tinejdžerska ovisnost o internetu i nasilje

Ovisnost o internetu je pošast 21. stoljeća. Nažalost, djeca se s tim ne mogu sama nositi. Roditelji se ne trebaju sukobljavati sa svojom djecom, ne treba ih napustiti, već ih prihvatiti onakvima kakvi jesu. Jer roditelji svakako imaju udjela u tome što je njihovo dijete postalo ovakvo. Ovdje je važno priznati svoje pogreške, ali ovo je najteže - roditelji se uvijek smatraju u pravu.

Na internetu tinejdžeri imaju priliku biti nekakvo aseksualno biće koje ubija sve i svakoga, osjećajući se snažno i cool. Ako dijete to potpuno apsorbira, onda će jednostavno izrasti u kriminalca. U jednom će trenutku to pomisliti stvaran život sve je također dozvoljeno. Jedan od tih kockara odgovorio je na pitanje: "O čemu ste tada razmišljali?" - odgovorio: "Imao sam dvije želje - ili nekoga ubiti ili biti ubijen."

Paradoks tehnološke pismenosti djece

Današnja djeca mogu biti veliki potrošači tehnologije, ali rijetko su tehnički pismena, kaže izvršni direktor BT Group (British Telecommunications plc) Gavin Patterson.

Možda izgledaju kao pametni digitalni urođenici, ali njihovo je znanje ograničeno dubinom ekrana. Oni su pasivni korisnici, a ne aktivni kreatori. I većinu njih, zapravo, malo zanima kako tehnologija o kojoj ovise zapravo funkcionira. Smatram da je to paradoks tehnološke pismenosti.

Ruski školarci: privatnost i sigurnost na internetu

Ovo izvješće napisala je Galina Vladimirovna Soldatova, profesorica Odsjeka za psihologiju ličnosti, Psihološki fakultet Moskovskog državnog sveučilišta nazvanog po M.V. Lomonosov, na 6. međunarodnoj konferenciji “Zaštita osobnih podataka” održanoj 10. studenog 2015. u Moskvi.

76% ruske školske djece provede u prosjeku 3 sata dnevno na internetu. Svaki sedmi tinejdžer u dobi od 12 do 17 godina provede gotovo trećinu svog života na internetu (8 sati dnevno). Suvremeni školarci Internet ne doživljavaju kao skup tehnologija, već kao životno okruženje.

Gotovo svaki drugi tinejdžer ne poštuje načelo povjerljivosti svojih lozinki na društvenim mrežama. U isto vrijeme, još uvijek ima djece koja su spremna nepoznatima reći svoju lozinku.

Više od trećine tinejdžera još uvijek je spremno neznancu na internetu reći osobne podatke: ime i prezime, točnu dob, ali i poslati fotografiju. Jedna šestina djece podijelit će broj mobitel, gotovo isti iznos prijavit će broj škole.

Utjecaj računala i interneta na školski uspjeh

Autori istraživanja, provedenog u sjevernoirskim školama, nisu pronašli izravnu vezu između vremena koje djeca provode na društvenim mrežama i njihovih ocjena. S druge strane, video igrice mogu pogoršati rezultate na srednjoškolskim ispitima.

Velika ulaganja u školsku informacijsku tehnologiju "nisu uspjela proizvesti mjerljiva poboljšanja" u rezultatima testova Programa za međunarodno ocjenjivanje, navodi se u izvješću Organizacije za ekonomsku suradnju i razvoj (OECD). obrazovna postignuća učenika u čitanju, matematici i prirodoslovlju.

Kako je o tome izjavio ravnatelj obrazovni programi OECD Andreas Schleicher, informatizacija i uvođenje interneta u škole "probudili su previše nerealnih nada".

Google efekt ili kako internet mijenja naš mozak

Danas se gotovo sve informacije mogu pronaći pomoću tražilice. Moguće je, kažu psiholozi sa Sveučilišta Harvard Daniel Wegner i Adrian Ward, da internet zamjenjuje ne samo druge ljude koji pohranjuju informacije, već i naše vlastite kognitivne procese. Internet ne samo da nas može osloboditi potrebe za razmjenom informacija “uživo”, već i oslabiti našu želju za pamćenjem važnih informacija. Psiholozi to zovu Google efekt.

“Do 15. godine učenici imaju tendenciju naivne percepcije izvora informacija. Često ne osjećaju poriv za provjerom informacija koje dobivaju i skloni su ih prihvatiti onakvima kakve jesu, fokusirajući se na ono što se govori”, kaže francuski znanstvenik Jean-François Rouet koji procjenjuje utjecaj digitalnog okruženja na čitanje i informiranje. tražeći.

Problem sigurnosti djece na internetu u drugim zemljama

Europljane najviše zabrinjava cyberbullying (zlostavljanje) na društvenim mrežama i njegove posljedice, kada zbog ismijavanja vršnjaka tinejdžer može pasti u depresiju ili razmišljati o samoubojstvu.

Facebook na vašem

Internet: prednosti i mane.

Internet je ogromna platforma za priliku da se ostvarite, pronađete nešto što volite i odete tamo gdje nikada niste bili. No, ne iskorištavaju svi ovu priliku...

Dakle, pogledajmo prednosti i nedostatke ovog weba. Počnimo s dobrim stvarima.

Prvo, postoje neograničene mogućnosti samospoznaje. Na internetu postoji mnogo tečajeva koji vas mogu naučiti bilo čemu: čak i kako hakirati stranice. Ovdje ne morate ići nigdje - sjedite kod kuće, pijte čaj i učite.

Na primjer, želite li naučiti strani jezik? Tutori preko Skypea, svi mogući resursi će vam pomoći. Samo trebate pronaći nešto što vam je bliže duši, a sada možete učiti u bilo koje prikladno vrijeme (još jedan plus).

Ne trebaš učiti? Imate li veliko znanje o nečemu? Podijelite, podučite nekoga, napravite web stranicu, privucite publiku, nekome pridonesite.

Još jedna prilika za upoznavanje. Pronalaženje prijatelja sličnih interesa i možda iz drugih zemalja neće predstavljati problem u 21. stoljeću.

I mnogo više…

Ali osim prednosti, postoje i mane.

Prvi nedostatak: Internetom se ne služe samo normalni ljudi.

Budući da je nemoguće vidjeti osobu koja sjedi s druge strane monitora, saznati što se događa u njegovoj glavi, to predstavlja neposrednu opasnost ako padnete pod utjecaj takvih ljudi, možete izgubiti novac, ili čak i biti ubijen (bilo je takvih slučajeva).

Odatle dolaze hakeri.

Virusi su pošast 21. stoljeća. A što sve računala ne pohranjuju, koliko tajni znaju. A s takvim informacijama čovjeku se može smjestiti, osramotiti ga i na kraju ucijeniti, što nitko normalan ne bi želio.

Drugi minus: Degradacija ljudi.

Kao što je navedeno, ne koriste svi internet ispravno. Padajući pod utjecaj interneta, ljudi ne shvaćaju koliko vremena gube.

Npr. Zamislite banku koja vam svaki dan daje 86.000 dolara koje ste dužni potrošiti, a ostatak banka uzima za sebe. I tako svaki dan.

Naravno, nastojali biste potrošiti svaki dolar. Dakle, 86 400 dolara je vaše vrijeme. Svaki novi dan daje vam 86400 sekundi, oduzimajući ostatak.

Zastrašujuće brojke. A mnogi ljudi većinu vremena provode gledajući glupe objave na društvenim mrežama. mreže, selfije i editovanje, a onda se tresu i zbog lajkova...

Treći minus: Grubost.

Postoji mišljenje da nas nitko ne vidi na internetu, ne prati itd. Ali uzalud. Sve posjete se prate. Jeste li primijetili da kada odete na stranicu s modernim haljinama, tada će vam se ponuditi reklame s ponudama za kupovinu haljina itd. Gledati. Ponekad je smiješno)

Vrlo je lako biti nepristojan i nepristojan na internetu, jer ne vidite osobu, sigurni ste i onda to postane normalno, postane navika, a kako kažu, "Navika je druga priroda".

Nažalost, ne koristimo sve mogućnosti koje nam Internet pruža. Uostalom, za uspjeh, za zaradu s interneta, potrebno je strpljenje, rad, volja, ali, nažalost, ljudi se ne vole truditi. Svi žele nešto lako, ali na ovom svijetu ništa nije besplatno... Tako živimo.

Poteškoće u korištenju dll-a stvorenog korištenjem Borland C++ Buildera (u daljnjem tekstu BCB) u projektima razvijenim u Microsoftovim okruženjima uzrokovane su trima glavnim problemima. Prvo, Borland i Microsoft imaju različite konvencije imenovanja funkcija u dll-ovima. Ovisno o tome kako je izvezena funkcija deklarirana, kompajler može njenom imenu dodati određene simbole. Stoga, kada se koristi konvencija poziva kao što je __cdecl, BCB dodaje podvlaku prije naziva funkcije. Visual C++ (u daljnjem tekstu VC), zauzvrat, kada eksportira funkciju kao __stdcall, svom će nazivu, osim podvlake, dodati i informacije o popisu argumenata (simbol @ plus veličina popisa argumenata u bajtovi).

Tablica 1 pokazuje moguće opcije imena za izvezenu funkciju MyFunction, deklarirana na sljedeći način:

Tablica 1. Imena funkcija ovisno o konvenciji pozivanja i prevoditelju.

Drugo, binarne datoteke objekata (.obj i .lib) koje proizvodi BCB nekompatibilne su s VC objektnim datotekama i stoga se ne mogu povezati s VC projektom. To znači da ako želite koristiti implicitno povezivanje s dll-om, morate nekako stvoriti .lib datoteku (biblioteku za uvoz) u formatu kojeg se Microsoft pridržava.

Treće, klase i funkcije metode klase izvezene iz BCB dll ne mogu se koristiti u VC projektu. Razlog tome je što prevoditelji mijenjaju nazive i regularnih funkcija i funkcija metoda klase (ne treba ih brkati s različitim konvencijama imenovanja). Iskrivljenje je uvedeno kako bi se podržao polimorfizam, to jest, kako bi se razlikovale funkcije s istim imenom, ali različitim skupovima parametara koji su im proslijeđeni. Ako se za obične funkcije izobličenje može izbjeći korištenjem extern “C” direktive prije definiranja funkcije (ali u ovom slučaju, prvo, prvi problem dolazi do izražaja - različite konvencije za imenovanje funkcija u dll-ovima, i drugo, od dva ili više funkcija s istim imenom, extern “C” direktiva može se koristiti samo za jednu od njih, inače će doći do pogrešaka kompilacije), tada su za funkcije metode klase neizbježna iskrivljenja imena. Borland i Microsoft kompajleri, kao što ste vjerojatno pogodili, koriste različite sheme izobličenja. Kao rezultat toga, VC aplikacije jednostavno ne vide klase i metode klasa koje su eksportirale biblioteke kompilirane u BCB.

Ova tri problema otežavaju korištenje BCB dll iz aplikacija izgrađenih na VC-u, ali je još uvijek moguće. Ispod su tri načina za stvaranje dll-a kompatibilnog s VC-om i zatim uspješnog korištenja tog dll-a.

Algoritmi za stvaranje VC-kompatibilnog dll-a i njegova upotreba

Dva algoritma opisana u ovom odjeljku koriste implicitno dll vezanje, jedan koristi eksplicitno učitavanje dll. Opišimo prvo najjednostavniju metodu - korištenje BCB dll iz VC projekta eksplicitnim učitavanjem tijekom izvođenja programa.

Algoritam s eksplicitnim učitavanjem dll

Koristeći ovu tehniku, nećemo morati stvarati VC-kompatibilne biblioteke za uvoz (.libs). Umjesto toga, bit će dodan niz radnji za učitavanje i istovar dll-a u aplikaciji koja ga koristi.

Kreirajmo BCB dll (Novo -> DLL Wizard -> C++ -> Use VCL -> OK), koji izvozi samo dvije funkcije radi jednostavnosti. Jedna od funkcija će izračunati zbroj dvaju brojeva i neće koristiti VCL klase, a druga će kreirati prozor i prikazati u TStringGrid VCL komponenti elemente niza proslijeđene kao jedan od argumenata.

Ispis 1 - Borland C++ Builder 5 kompajler

#ifndef _EXPLICITDLL_

#define _EXPLICITDLL_

int __declspec(dllexport) __cdecl SumFunc(int a, int b);

HWND __declspec(dllexport) __stdcall ViewStringGridWnd(int Count,double* Vrijednosti);

Ključna riječ __declspec s atributom dllexport označava funkciju kao izvoznu, naziv funkcije dodaje se u dll tablicu izvoza. Tablica izvoza bilo koje PE datoteke (.exe ili .dll) sastoji se od tri niza: niza naziva funkcija (točnije, niza pokazivača na retke koji sadrže nazive funkcija), niza sekvencijskih brojeva funkcija i niza relativne virtualne adrese (RVA) funkcija. Niz naziva funkcija poredan je abecednim redom, a postoji i odgovarajući niz brojeva funkcija. Redni broj se nakon nekih transformacija pretvara u indeks elementa iz niza relativnih virtualnih adresa funkcija. Prilikom izvoza funkcije po imenu odvija se sljedeći slijed radnji: pomoću poznatog imena funkcije određuje se njezin indeks u nizu naziva funkcija, zatim se pomoću rezultirajućeg indeksa iz niza rednih brojeva utvrđuje redni broj funkcije, zatim se iz rednog broja, uzimajući u obzir osnovni redni broj eksporta funkcije za zadanu PE datoteku, izračunava indeks kojim se iz niza adresa izdvaja traženi RVA funkcije. Osim izvoza po imenu, moguće je eksportirati funkcije i po njihovim rednim brojevima. U ovom slučaju, slijed radnji za dobivanje indeksa elementa iz niza relativnih virtualnih adresa svodi se samo na pretvaranje sekvencijskog broja funkcije. Za izvoz funkcija prema broju, koristite .def datoteku s odjeljkom IZVOZI, gdje će svakoj funkciji biti dodijeljen serijski broj. Istodobno, u tekstu samog dll-a funkcije nisu označene kao izvezene. Više informacija o tablici izvoza možete pronaći u članku na #"7248.files/image002.gif">ImplicitLinkingAliases.def

Dakle, alias funkcije se dodaju u tablicu za izvoz dll, čija imena odgovaraju funkcijama deklariranim u datoteci zaglavlja naše biblioteke. Za potpunu usklađenost (iako to možda neće biti potrebno), uklonit ćemo iz ImplicitLinking_cdecl.def reference na sve funkcije koje su strane klijentske aplikacije, budući da datoteka zaglavlja sadrži deklaracije samo dviju funkcija. Kao rezultat, dobivamo .def datoteku spremnu za generiranje objektne .lib datoteke iz nje:

ImplicitLinking_cdecl.def

BIBLIOTEKA IMPLICITLINKING_CDECL.DLL

SumFunc @4 ; SumFunc

ViewStringGridWnd @5 ; ViewStringGridWnd

BILJEŠKA

U jedinom članku koji sam uspio pronaći na ovu temu (na web stranici bcbdev.com) preporučeno je, osim uklanjanja suvišnih funkcija iz .def datoteke, zamijeniti naziv rubrike IZVOZ s UVOZ. To se ne bi trebalo činiti iz jednostavnog razloga što uslužni program lib.exe (barem isporučen s Visual Studio 6 i 7) ne podržava odjeljak IMPORTS, stoga zanemaruje sve naknadne opise funkcija i stvara praznu .lib datoteku. Uslužni program lib.exe nalazi se u direktoriju $(VC)\Bin, ali ga obično ne uspije pokrenuti prvi put jer za rad zahtijeva biblioteku mspdb60.dll (za lib.exe koji se isporučuje s Visual Studio 7, mspdb70. dll). mspdb60.dll nalazi se u mapi $(Microsoft Visual Studio)\Common\MSDev98\Bin, a mspdb70.dll je u mapi $(Microsoft Visual Studio .NET)\Common7\IDE.

Pomoću uslužnog programa lib.exe kreirat ćemo datoteku .lib u formatu COFF potrebnu za implicitno povezivanje; upišite to u naredbeni redak

lib.exe /def:ImplicitLinking_cdecl.def

lib.exe /def:ImplicitLinking_cdecl.def /out:ImplicitLinking_cdecl.lib

Dodat ćemo rezultirajuću .lib datoteku u projekt VC klijenta (Projekt -> Dodaj u projekt -> Datoteke...).

Sada pogledajmo način za postizanje istih naziva funkcija u datotekama zaglavlja i objekata (.lib) pomoću #define direktive. Prepišimo datoteku zaglavlja naše BCB biblioteke na sljedeći način:

Ispis 4 - Borland C++ Builder 5 prevodilac

Implicitno povezivanje_cdecl.h

Prilikom sastavljanja klijentske VC aplikacije u zaglavlju povezanom s projektom dll datoteka(ImplicitLinking_cdecl.h) podvlaka se dodaje nazivu svake funkcije korištenjem direktiva #define (makro _MSC_VER prema zadanim postavkama definira VC prevodilac). Budući da se __cdecl funkcije izvoze iz BCB dll na isti način, odnosno uz dodatak podvlake, uspostavlja se podudarnost između naziva eksportiranih i deklariranih funkcija. Makronaredbe #define proširuju svoj utjecaj na sav kasniji aplikacijski kod, što omogućuje da programski tekst, kada poziva uvezenu funkciju, koristi svoj izvorni naziv, koji će biti dopunjen potrebnom čarobnom podvlakom tijekom kompilacije. Stoga slijedimo vodstvo Borlanda iu klijentskoj aplikaciji prikriveno koristimo nazive koje je modificirao BCB kompajler za pozivanje funkcija iz naše dll. Potreba za korištenjem promijenjenih imena (iako ne otvoreno zahvaljujući triku definiranja), po mom mišljenju, predstavlja značajan nedostatak ove metode, jer, na primjer, ako želite eksplicitno (pogledajte odjeljak „Algoritam s eksplicitnim učitavanje dll”) morat ćete koristiti dll raditi s modificiranim nazivima funkcija. Bez daljeg razvijanja ove teme, reći ću da ako je BCB dll stvoren s jasnom namjerom da se koristi u VC aplikacijama, tada je bolje dodati .def datoteku knjižnice u projekt s nazivima aliasa funkcija koje su jednostavne za korištenje.

Na prednosti ovu metodu(define-trick) može se zahvaliti njegovoj jednostavnosti i, koliko god proturječilo onome što je rečeno u prethodnom odlomku, nepostojanju potrebe za dodavanjem aliasa funkcija u DLL tablicu izvoza. Unatoč svim pogodnostima korištenja aliasa, tablica izvoza (a time i sama dll) povećava se u veličini. Da, i stvaranje .def datoteke aliasa kada velike količine funkcije ne dodaje ugodne emocije.

Nakon kompajliranja dll-a pomoću impdef.exe, dobivamo .def izvoznu datoteku, iz koje koristimo pomoćni program lib.exe za stvaranje objektne .lib datoteke i dodavanje je klijentskom VC projektu.

Ispis klijentske aplikacije, čiji kod u ovom slučaju ne ovisi o načinu rješavanja problema nepodudarnosti naziva funkcija u zaglavlju i objektnim datotekama biblioteke, prikazan je u nastavku. Kao iu prethodnom odjeljku, ovo je dijaloški okvir s dva gumba. Kod koji nas zanima koncentriran je u rukovateljima događajima klika gumba dijaloškog okvira.

Ispis 5 - Visual C++ 6.0 prevodilac

UsingImplicitLinking_cdeclDlg.cpp

// rukovanje prozorom s VCL komponentom StringGrid

HWND hGrid = NULL;

// uključi datoteku zaglavlja knjižnice

#include "ImplicitLinking_cdecl.h"

// kod koji generira razvojna okolina

void CUsingImplicitLinkng_cdeclDlg::OnSumFunc()

// pozivamo funkciju SumFunc iz dll-a

int res = SumFunc(5, 9);

// prikaz rezultata u naslovu dijaloškog okvira

this->SetWindowText(itoa(res, str ,10));

void CUsingImplicitLinkng_cdeclDlg::OnViewStringGridWnd()

// inicijalizirati argumente

const int count = 5;

dvostruke vrijednosti = (2,14, 3,56, 6,8, 8, 5,6564);

// zatvorite prethodno kreirani prozor kako se ne bi "množili"

if(hGrid != NULL)

::Pošalji poruku(hGrid, WM_CLOSE, 0, 0);

// poziv funkcije ViewStringGridWnd iz dll

hGrid = ViewStringGridWnd(broj, Vrijednosti);

void CUsingImplicitLinkng_cdeclDlg::OnDestroy()

CDialog::OnDestroy();

// zatvorite prozor s komponentom StringGrid, ako je stvorena

if(hGrid != NULL)

::SendMessage(hGrid, WM_CLOSE, 0,0);

Glavna prednost implicitnog učitavanja dll je u tome što klijentska aplikacija ne koristi izričito dll. Drugim riječima, aplikacija pri pozivanju funkcija nema pojma da se one mogu nalaziti negdje u vanjskom modulu. Rezultat je pojednostavljenje programskog koda. Nedostaci uključuju činjenicu da dll ostaje u memoriji tijekom cijelog rada programa koji ga implicitno koristi. dll se učitava kada se aplikacija učitava - učitavač PE datoteke, gledajući svaki unos u tablici uvoza aplikacije, učitava dll koja odgovara ovom unosu. Posljedično, ako se koristi mnogo biblioteka, učitavanje glavnog programa može potrajati dugo. Ako implicitno korišteni dll nedostaje, aplikacija se uopće neće pokrenuti.

Konačni algoritam s implicitnim vezanjem za izvoz (uvoz) __cdecl funkcija sastoji se od sljedećeg slijeda radnji (vidi također Demo projekt):

1. Izvezene funkcije deklarirajte kao __cdecl.

2. Smjestite deklaracije funkcija u vanjski “C” blok, ali nemojte izvoziti klase i funkcije članove klasa.

3. Umetnite u datoteku zaglavlja za daljnju upotrebu na strani klijenta:

i dodajte makronaredbu _DECLARATOR_ svakoj deklaraciji funkcije, na primjer,

Ako je korišten trik #define, korak 7 treba preskočiti.

5. Kompajlirajte BCB dll.

6. Pomoću impdef.exe kreirajte .def datoteku s nazivima izvezenih funkcija.

7. Ako ste koristili pseudonime u koraku 4, uklonite nekorištena imena funkcija iz izvozne .def datoteke, ostavljajući samo pseudonime.

8. Kreirajte VC projekt klijenta.

9. Iz .def datoteke za izvoz biblioteke, pomoću uslužnog programa lib.exe, kreirajte objektnu .lib datoteku u COFF formatu i dodajte je u VC klijentsku aplikaciju.

10. Kopirajte BCB dll i njegovu datoteku zaglavlja u mapu s klijentskim VC projektom.

11. U klijentskoj aplikaciji povežite dll datoteku zaglavlja.

12. Pozovite potrebne funkcije u tijelu programa, ne razmišljajući o činjenici da se nalaze u vanjskom dll-u.

Implicitni algoritam vezivanja za izvoz (uvoz) __stdcall funkcija

Kao što je gore spomenuto, uslužni program lib.exe može stvoriti biblioteku za uvoz samo iz datoteke .def za izvoz, a lib.exe ni na koji način ne komunicira sa samom dll. Međutim, .def datoteka ne sadrži nikakve informacije o konvencijama poziva kojih se pridržavaju izvezene funkcije. Posljedično, lib.exe, koji radi isključivo s .def datotekom, neće moći prepoznati da se bavi funkcijama __stdcall i, kao rezultat toga, neće moći prikazati funkcije u .lib datoteci prema Microsoftu konvencija imenovanja za __stdcall- funkcije. Dakle, uzimajući u obzir iz prethodnog odjeljka da lib.exe generira potpuno funkcionalnu .lib datoteku za __cdecl funkcije, dolazimo do sljedećeg zaključka: uslužni program lib.exe nije sposoban generirati uvozne biblioteke za dll-ove koji izvoze __stdcall funkcije. Ovaj odjeljak je posvećen ljudima koji žele ili su prisiljeni (a nakon čitanja ovog odjeljka, mislim samo prisiljeni) koristiti BCB dll s __stdcall funkcijama u VC-u.

Izvorni kod BCB dll ostaje isti kao u prethodnom odjeljku (pogledajte popis 3), samo se ključna riječ __cdecl mora zamijeniti u cijelom ključna riječ __stdcall.

Poznato je da prilikom kreiranja VC dll zajedno s njim, okruženje generira .lib datoteku (biblioteka za uvoz), koja je prirodno predstavljena u COFF formatu koji nam je potreban, au kojoj će se __stdcall funkcije ispravno prikazati. Stoga, stvorimo (File -> New... -> Win32 Dynamic-Link Library -> OK -> Prazan DLL projekt -> Finish) lažni VC dll koji će izvesti isti skup funkcija kao BCB dll. Implementacija funkcija u lažnoj dll apsolutno nije važna, bitna su samo njihova imena. Osim istih naziva eksportiranih funkcija, lažna i izvorna knjižnica moraju imati ista imena budući da .lib datoteke sadrže imena dll-ova. Izvorni kod BCBdll možete koristiti tako da kopirate .h i .cpp datoteke u direktorij lažne dll, zatim ih dodate u projekt (Projekt -> Dodaj u projekt -> Datoteke...) i izbrišete tijela svih funkcije. Ako funkcija vrati vrijednost, ostavite naredbu return i vratite što god želite prema tipu (možete imati 0, NULL itd.). Budući da će tijela funkcija biti prazna, većina direktiva #include s uključenim datotekama zaglavlja također se može ukloniti. Kao rezultat toga, prema našem primjeru, dobivamo sljedeći kod za lažni dll:

Ispis 6 - Visual C++ 6.0 prevodilac

ImplicitLinking_stdcallDummy.h

#ifdef _DLLEXPORT_

#define _DECLARATOR_ __declspec(dllexport)

#define _DECLARATOR_ __declspec(dllimport)

int _DEKLARATOR_ __stdcall SumFunc(int a, int b);

HWND _DECLARATOR_ __stdcall ViewStringGridWnd(int Count, double* Vrijednosti);

ImplicitLinking_stdcallDummy.cpp

Redak s nazivom biblioteke (LIBRARY) u .def datoteci nije potreban, ali ako je prisutan, tada naziv naveden u njemu mora točno odgovarati nazivima lažne i izvorne dll. Dodamo .def datoteku VC projektu, ponovno je kompajliramo i dobijemo lažni dll i biblioteku za uvoz koja nam je potrebna, koja sadrži točan opis izvezenih __stdcall funkcija. Datoteka .lib naslijeđena od lažnog dll-a mora se dodati (povezati) svakom VC projektu koji će koristiti naš izvorni BCB dll.

Primjer VC aplikacije koja uvozi __stdcall funkcije je isti kao u prethodnom odjeljku (pogledajte ispis 5). Ne zaboravite uključiti (#include) potrebnu BCB dll datoteku zaglavlja u primjer i dodati je u projekt potrebna knjižnica uvoz.

Implicitni algoritam povezivanja za izvoz (uvoz) __stdcall funkcija (vidi također Demo projekt, ImplicitLinkingDll_stdcall.zip):

Deklarirajte izvezene funkcije kao __stdcall.

Postavite deklaracije funkcija u vanjski "C" blok. Ne izvozite klase i funkcije članova klase.

Kompajlirajte BCB dll.

Budući da nije moguće stvoriti ispravnu biblioteku za uvoz pomoću uslužnog programa lib.exe, stvorite lažni VC dll koji sadrži isti skup funkcija kao izvorni BCB dll.

Provjerite identitet imena lažne dll i originalne dll, imena se moraju podudarati.

Ako se izvorni kodovi BCB dll koriste za lažnu biblioteku, uklonite tijela funkcija ako se ne koriste, tada stvorite prazne funkcije s istim nazivima i potpisima kao u izvornom dll.

Kako biste spriječili promjene u nazivima funkcija tijekom izvoza, dodajte VC projektu lažnu knjižnicu .def datoteku s odjeljkom EXPORTS, koji jednostavno navodi izvorna imena svih izvezenih funkcija.

Kompajlirajte lažni dll i dobijte potrebnu .lib datoteku s ispravnim prikazom funkcija __stdcall.

Stvorite klijentski VC projekt i dodajte mu rezultirajuću .lib datoteku.

Kopirajte BCB dll i njegovu datoteku zaglavlja u mapu s klijentskim VC projektom.

Povežite datoteku zaglavlja u klijentskoj aplikaciji.

Pozovite potrebne funkcije u tekstu programa, ne razmišljajući o činjenici da se nalaze u vanjskom dll-u.

Kao što vidite, osiguravanje uspješne interakcije između BCB dll i VC klijentske aplikacije nije trivijalan zadatak. Međutim, takva interakcija postaje neophodna u slučajevima kada je korištenje VCL i C++ Builder-a pri razvoju pojedinačnih dijelova aplikacije poželjnije (na primjer, zbog troškova vremena). Koristeći algoritme opisane u članku, moći ćete stvoriti i uspješno koristiti BCB dll iz VC projekta.

Bibliografija

Za pripremu ovog rada korišteni su materijali sa stranice

Internet u životu tinejdžera: Za i protiv

Ispunila učenica 10. razreda. Bortsova E.


  • Saznajte utjecaj interneta na ljude.
  • Identificirati pozitivne i negativne aspekte računalne mreže.

„Internet je globalan računalna mreža, pružajući ogromnu slobodu korisnicima", jedna je od službenih formulacija.

Osoba koja prvi put “uđe” u mrežu obično ima dobar dojam o internetu. Ali je li to stvarno tako? To shvatiš tek s vremenom. Što ste dulje na internetu, to više uviđate ne samo njegove prednosti, već i nedostatke. No, nažalost, ne može svatko shvatiti i shvatiti kako internet ispunjava našu svijest. I više ne možemo razlikovati što je dobro, a što loše.


Internet nam daje mnogo toga

razne usluge, npr.

Zarada

Komunikacija

Dostupno mnogo informacija



ALI! Uz sve to, postoje mnogi nedostaci, koji su puno brojniji od prednosti:

  • izloženost elektromagnetskom zračenju
  • stres zbog gubitka informacija
  • ovisnost o virtualnom svijetu
  • javna dostupnost informacija
  • mentalni poremećaji

ovisnost o internetu

Mentalni poremećaj kod kojeg osoba ima opsesivnu želju da što više vremena provede na internetu, a ne može se odvojiti od njega i vratiti u stvarni svijet. Liječnici to uspoređuju s ovisnošću o drogama i alkoholu.


Komunicirajući na društvenim mrežama, tinejdžer se pridružuje raznim grupama, subkulturama i susreće sumnjive ljude. Sve to može dovesti do katastrofalnih posljedica za nestabilnu psihu, pa čak i život tinejdžera koji lako stječe povjerenje i podliježe utjecajima.

Druga negativna strana komunikacije tinejdžera na društvenim mrežama je ograničenost komunikacijskih mogućnosti u njima stvarni svijet, imaju problema s uspostavljanjem pravih veza. Uostalom, na internetu tinejdžer može izabrati bilo koju ulogu za sebe, učiniti se boljim, ljepšim, smisliti idealnog sebe, ali u životu sve nije tako jednostavno, jer vi ste ono što jeste.




Vrh