Internet: argumente pro și contra (Eseuri școlare). Curs de rețele sociale în viața elevilor de liceu Mesaj pe tema internetului pro și contra

Din 2010, linia de asistență pentru copii din toată Rusia 8-800-2000-122 Au fost primite peste 8 milioane de cereri.
În prezent, 222 de servicii din 83 de regiuni ale țării noastre sunt conectate la un singur număr. Copiii, adolescenții și părinții lor pot primi ajutor psihologic în situații dificile de viață. Apelul este gratuit și anonim.
În special, site-ul web al liniei de asistență enumeră principalele semne și 10 forme de hărțuire cibernetică.


Copiii și adolescenții moderni, care sunt numiți „cetățeni digitali”, stăpânesc ușor computerul, dispozitive mobileși folosește-le cu pricepere. Cu toate acestea, abilitățile de siguranță online ale copiilor sunt în urmă față de capacitatea lor de a învăța noi aplicații și dispozitive.

Principalele pericole de pe internet pentru copii și adolescenți sunt următoarele:

1. Cyberbullying (bullying pe internet).

2. Folosirea Internetului pentru manipularea conștiinței copiilor și adolescenților (propaganda de comportament extremist, antisocial, sinucidere, implicare în jocuri periculoase).

4. Frauda cibernetică.

5. Securitatea accesului la Internet și furtul datelor cu caracter personal prin mijloace tehnice.

6. Colectarea ilegală a datelor cu caracter personal ale minorilor și (sau) difuzarea în domeniul public.

7. Navigarea pe site-uri pentru adulți.

Fiecare generație este mai mult sau mai puțin diferită de cea anterioară. Dar tocmai copiii care s-au născut la începutul mileniului trei și pe care îi numim generația Z, care în acest sens sunt absolut unici, deoarece dezvoltarea lor a fost influențată încă din primii ani influențat de un instrument atât de puternic precum realitatea digitală.

Internetul este un mediu nou și o sursă de dezvoltare a copilului. Desigur, această situație afectează formarea personalității copiilor, relațiile acestora cu lumea exterioară și practicile lor culturale.


Președintele asociației creative „Unpress”, doctorul în științe pedagogice, Serghei Tsymbalenko, a spus într-unul dintre interviurile sale: „Copii de pe internet, acesta este un fapt, nu puteți scăpa de el. Societatea a trecut la un dialog constant, continuu comunicarea este o tranziție decisivă la inteligența colectivă, sau copiii au fost primii care au pășit în această nouă stare a societății”.

Potrivit Departamentului de Psihologia Personalității al Universității de Stat din Moscova, numărul copiilor care folosesc zilnic internetul a crescut la 95%. În același timp, 32% dintre copii navighează pe internet în fiecare zi timp de 8 ore, deși în urmă cu trei ani cifra lor era de doar 14%. În fața ochilor noștri, se formează o nouă generație „digitală”, care se confruntă inevitabil cu riscuri atunci când folosește World Wide Web.


Unul dintre „Marile Proiecte” din zona domeniului.COPII este proiectul Sputnik.Children, în care au fost selectate peste 5.000 de site-uri: cu desene animate, jocuri, cărți, cântece și multe altele. Fiecare resursă este testată de evaluatorii motoarelor de căutare și de un sistem de securitate.

Google oferă părinților 10 reguli pentru păstrarea copiilor în siguranță pe internet. Prima regulă este să vorbești cu copilul tău despre siguranța pe Internet Cel mai important, convinge-ți copilul că în orice situație neclară sau înfricoșătoare, ar trebui să-și contacteze părinții pentru a găsi o soluție sigură.

Utilizarea internetului de către adolescenți

Un articol interesant a fost publicat pe 03.09.2017 pe site Satul, cu povești de la cinci adolescenți ruși cu vârsta cuprinsă între 11 și 16 ani, despre cum folosesc și ce importanță are Internetul pentru ei, care sunt site-urile lor preferate și social media, părerea lor despre siguranța online și controlul parental.

În multe privințe, atitudinile acestor adolescenți față de Internet reflectă rezultatele studiului de mai jos. Cu excepția părerii lor generale: internetul are „contra” și pericole.


În 2013, a fost realizat primul (și până acum singurul) studiu științific integral rusesc al competenței digitale a adolescenților și părinților copiilor adolescenți. Studiul a fost realizat de Fundația pentru Dezvoltare a Internetului și Facultatea de Psihologie a Universității de Stat din Moscova, numită după M.V. Lomonosov cu sprijinul Google.

În Rusia, 89% dintre adolescenții cu vârsta cuprinsă între 12 și 17 ani folosesc internetul zilnic. În zilele lucrătoare, 37% dintre ei petrec între 3 și 8 ore pe internet, în weekend - 47%. Internet mobil De două ori mai popular la copii decât la părinți.

Majoritatea adolescenților folosesc internetul pentru a căuta informatii interesante. Pe locul doi în popularitate se află căutarea de informații pentru studiu.

După cum s-a dovedit, aproape o treime dintre copiii chestionați cred că Internetul este lipsit de orice dezavantaje și fiecare zecime a avut dificultăți cu întrebarea despre „dezavantajele” internetului.

Concluzia principală a studiului este că nivelul de competență digitală atât al părinților, cât și al adolescenților înșiși este de aproximativ o treime din maximul posibil în Rusia (31% pentru părinți și 34% pentru adolescenți).

În ianuarie 2019, VTsIOM a realizat un sondaj la adulți și adolescenți (14-17 ani) pe probleme legate de influența rețelelor sociale asupra comportamentului lor.

Este semnificativ faptul că respondenții de toate vârstele remarcă faptul că interesul adolescenților pentru grupurile „rele” de pe rețelele de socializare este format nu de rețelele în sine, ci de problemele reale ale școlarilor: 49% dintre adolescenți cred că acest interes este cauzat de realitatea. probleme psihologice, 31% – conflicte cu semenii și 29% – lipsa controlului parental.


Potrivit sondajului Fundației " Opinie publică”, realizat în decembrie 2015, doar 10% dintre copiii de peste 6 ani nu folosesc rețelele de socializare. Întrebarea a fost adresată respondenților care au copii de peste 6 ani care locuiesc cu ei.

Influența internetului asupra adolescenților

Psihologii de la Centrul Perekrestok pentru Adaptarea și Dezvoltarea Socială și Psihologică a Adolescenților consideră că una dintre principalele probleme este dezvoltarea dependenței de computer.

Psihologii britanici cred că adolescenții sunt dependenți de Facebook, Twitter și jocuri pe calculator un fenomen pozitiv. În opinia lor, scăderea consumului de alcool și droguri de către adolescenți din Europa și SUA este asociată cu popularitatea tot mai mare a rețelelor de socializare, a jocurilor pe calculator și a răspândirii rețelelor sociale în rândul tinerilor.

Adolescenții ruși, ca și colegii lor occidentali, petrec o parte semnificativă din timpul liber pe internet. Cu toate acestea, acest lucru nu afectează nivelul consumului de droguri.

Dependența de internet și violența adolescenților

Dependența de internet este ciuma secolului XXI. Din păcate, copiii nu sunt capabili să facă față ei înșiși. Părinții nu trebuie să intre în conflict cu copiii lor, să nu-i abandoneze, ci să-i accepte așa cum sunt. Pentru că părinții cu siguranță au o parte în faptul că copilul lor a devenit așa. Aici este important să-ți recunoști greșelile, dar acesta este cel mai dificil lucru - părinții se consideră întotdeauna drept.

Pe Internet, adolescenții au ocazia să fie un fel de ființă asexuată care ucide pe toată lumea și totul, simțindu-se puternice și cool. Dacă acest lucru este complet absorbit de un copil, atunci el va deveni pur și simplu un criminal. La un moment dat va crede că viata reala totul este de asemenea permis. Unul dintre acești bărbați de jocuri de noroc a răspuns la întrebarea: „La ce te gândeai atunci?” - a răspuns: „Am avut două dorințe - fie să ucid pe cineva, fie să fiu ucis.”

Paradoxul alfabetizării tehnologice a copiilor

Copiii din ziua de azi pot fi mari consumatori de tehnologie, dar sunt rareori cunoștințe de tehnologie, spune Gavin Patterson, directorul executiv al BT Group (British Telecommunications plc).

Pot arăta ca nativi digitali pricepuți, dar cunoștințele lor sunt limitate de adâncimea ecranului. Sunt utilizatori pasivi, nu creatori activi. Și cei mai mulți dintre ei, de fapt, sunt puțin interesați de modul în care funcționează de fapt tehnologia de care depind. Consider că acesta este paradoxul alfabetizării tehnologice.

Școlari ruși: confidențialitate și securitate pe internet

Acest raport a fost realizat de Galina Vladimirovna Soldatova, profesor al Departamentului de Psihologia Personalității, Facultatea de Psihologie, Universitatea de Stat din Moscova, numită după M.V. Lomonosov, la cea de-a 6-a Conferință internațională „Protecția datelor cu caracter personal” desfășurată pe 10 noiembrie 2015 la Moscova.

76% dintre școlari ruși petrec în medie 3 ore pe zi pe internet. Fiecare al șaptelea adolescent cu vârsta cuprinsă între 12 și 17 ani își petrece aproape o treime din viață pe internet (8 ore pe zi). Scolarii moderni percep internetul nu ca pe un set de tehnologii, ci ca pe un mediu de viata.

Aproape fiecare al doilea adolescent nu respectă principiul confidențialității în ceea ce privește parolele lor de pe rețelele de socializare. În același timp, există încă copii care sunt gata să-și împărtășească parola cu străinii.

Mai mult de o treime dintre adolescenți sunt încă pregătiți să spună unui străin online informații personale: numele și prenumele, vârsta exactă și, de asemenea, să trimită o fotografie. O șaseme dintre copii vor împărți numărul telefon mobil, aproape aceeași sumă va fi raportată de numărul școlii.

Influența computerului și a internetului asupra performanței școlare

Autorii studiului, realizat în școlile din Irlanda de Nord, nu au găsit o legătură directă între timpul petrecut de copii pe rețelele sociale și notele lor. Jocurile video, pe de altă parte, pot afecta rezultatele GCSE.

Investițiile la scară largă în tehnologia informației școlare „nu au reușit să producă îmbunătățiri măsurabile” în rezultatele testelor Programului pentru Evaluare Internațională, potrivit unui raport al Organizației pentru Cooperare și Dezvoltare Economică (OCDE). realizările educaționale studenți la lectură, matematică și științe.

După cum a spus directorul despre asta programe educaționale OECD Andreas Schleicher, informatizarea și introducerea internetului în școli „au dat naștere la prea multe speranțe nerealiste”.

Efectul Google sau modul în care Internetul ne schimbă creierul

Astăzi aproape orice informație poate fi găsită folosind motoarele de căutare. Este posibil, spun psihologii Daniel Wegner și Adrian Ward de la Universitatea Harvard, ca Internetul să înlocuiască nu numai alți oameni care stochează informații, ci și propriile noastre procese cognitive. Internetul nu poate doar să ne scutească de nevoia de a face schimb de informații „în direct”, dar și să ne slăbească dorința de a ne aminti informații importante. Psihologii numesc acest lucru efectul Google.

„Până la vârsta de 15 ani, studenții tind să aibă o percepție naivă asupra surselor de informații. De multe ori nu simt nevoia să verifice informațiile pe care le primesc și tind să le ia așa cum sunt, concentrându-se pe ceea ce se spune”, spune omul de știință francez Jean-François Rouet, care evaluează impactul mediului digital asupra lecturii și informației. căutând.

Problema siguranței copiilor pe internet în alte țări

Europenii sunt cel mai preocupați de hărțuirea cibernetică (bullying) pe rețelele de socializare și de consecințele acesteia, atunci când, din cauza batjocurii de la semeni, un adolescent poate deveni deprimat sau se poate gândi la sinucidere.

Facebook pe dvs

Internet: argumente pro și contra.

Internetul este o platformă uriașă pentru oportunitatea de a vă realiza, de a găsi ceva care vă place și de a merge unde nu ați fost niciodată. Cu toate acestea, nu toată lumea profită de această oportunitate...

Deci, să ne uităm la avantajele și dezavantajele acestui web. Să începem cu lucrurile bune.

În primul rând, există posibilități nelimitate de auto-realizare. Există multe cursuri pe Internet pentru a vă învăța orice: chiar și cum să piratați pagini. Aici nu trebuie să mergeți nicăieri - stați acasă, beți ceai și studiați.

De exemplu, vrei să înveți o limbă străină? Tutori prin Skype, toate resursele posibile vă vor ajuta. Trebuie doar să găsești ceva care să fie mai aproape de sufletul tău, iar acum poți studia în orice moment convenabil (un alt plus).

Nu ai nevoie de studii? Ai cunoștințe extinse despre ceva? Distribuiți, învățați pe cineva, creați un site web, atrageți un public, beneficiați cuiva.

Încă o oportunitate de întâlnire. Găsirea de prieteni cu interese similare și poate din alte țări nu va prezenta probleme în secolul XXI.

Si multe altele...

Dar, pe lângă avantaje, există și contra.

Primul dezavantaj: nu numai oamenii normali folosesc internetul.

Deoarece este imposibil să vezi persoana care stă de cealaltă parte a monitorului, pentru a afla ce se întâmplă în capul lui, acest lucru reprezintă un pericol imediat dacă cazi sub influența unor astfel de persoane, poți pierde bani sau chiar să fie ucis (au existat astfel de cazuri).

De aici vin hackerii.

Virușii sunt flagelul secolului XXI. Și ce computere nu stochează, câte secrete știu. Și, după ce ați dobândit astfel de informații, puteți încadra o persoană, o dezonorați și, în cele din urmă, să o șantajați, ceea ce nu și-ar dori o persoană normală.

Al doilea minus: degradarea oamenilor.

După cum am spus, nu toată lumea folosește Internetul corect. Căzând sub influența Internetului, oamenii nu își dau seama cât timp pierd.

De exemplu. Imaginează-ți o bancă care îți oferă 86.000 USD în fiecare zi, pe care trebuie să-i cheltuiești, iar banca își ia restul pentru ea însăși. Și așa în fiecare zi.

Desigur, te-ai strădui să cheltuiești fiecare dolar. Deci 86.400 USD este timpul tău. Fiecare nouă zi vă oferă 86400 de secunde, eliminând restul.

Cifre înfricoșătoare. Și mulți oameni își petrec cea mai mare parte a timpului uitându-se la postări stupide de pe rețelele sociale. rețele, selfie-uri și editare, iar apoi tremură și din cauza like-urilor...

Al treilea minus: grosolănie.

Există o părere că nimeni nu ne vede pe internet, nu ne urmărește etc. Dar degeaba. Toate vizitele sunt urmărite. Ai observat că atunci când intri pe un site cu rochii la modă, ți se vor oferi apoi reclame cu oferte de cumpărare de rochii etc. Ceas. Uneori e amuzant)

Este foarte ușor să fii nepoliticos și nepoliticos pe Internet, pentru că nu vezi persoana, ești în siguranță și apoi devine normal, devine un obicei și, după cum se spune, „Obișnuința este a doua natură”.

Din păcate, nu folosim toate oportunitățile pe care ni le oferă internetul. La urma urmei, pentru succes, pentru profit de pe internet, ai nevoie de răbdare, muncă, voință, dar, din păcate, oamenilor nu le place să depună efort. Toată lumea își dorește ceva ușor, dar pe lumea asta nimic nu vine gratis... Așa trăim.

Dificultatea de a utiliza un dll creat folosind Borland C++ Builder (denumit în continuare BCB) în proiecte dezvoltate în medii Microsoft se datorează a trei probleme principale. În primul rând, Borland și Microsoft au convenții de denumire diferite pentru funcțiile din dll-uri. În funcție de modul în care este declarată funcția exportată, numele acesteia poate fi adăugat cu anumite simboluri de către compilator. Astfel, când se utilizează o convenție de apelare precum __cdecl, BCB adaugă un caracter de subliniere înaintea numelui funcției. Visual C++ (denumit în continuare VC), la rândul său, la exportul unei funcții ca __stdcall, va adăuga la numele acesteia, pe lângă liniuța de subliniere, și informații despre lista de argumente (simbolul @ plus dimensiunea listei de argumente din octeți).

Tabelul 1 arată opțiuni posibile nume pentru funcția exportată MyFunction, declarată după cum urmează:

Tabelul 1. Numele funcțiilor în funcție de convenția de apelare și de compilator.

În al doilea rând, binarele obiect (.obj și .lib) produse de BCB sunt incompatibile cu fișierele obiect VC și, prin urmare, nu pot fi legate la un proiect VC. Aceasta înseamnă că, dacă doriți să utilizați legătura implicită cu un dll, trebuie să creați cumva un fișier .lib (bibliotecă de import) în formatul la care aderă Microsoft.

În al treilea rând, clasele și funcțiile metodei de clasă exportate din dll-ul BCB nu pot fi utilizate într-un proiect VC. Motivul pentru aceasta este că compilatoarele stric numele atât ale funcțiilor obișnuite, cât și ale funcțiilor metodei de clasă (a nu se confunda cu diferite convenții de denumire). Distorsiunea este introdusă pentru a susține polimorfismul, adică pentru a face distincția între funcțiile cu același nume, dar seturi diferite de parametri care le sunt transmise. Dacă pentru funcțiile obișnuite distorsiunea poate fi evitată utilizând directiva extern „C” înainte de a defini funcția (dar în acest caz, în primul rând, prima problemă iese în prim-plan - convenții diferite pentru denumirea funcțiilor în dll-uri și, în al doilea rând, de la două sau mai multe funcții cu același nume, directiva extern „C” poate fi folosită doar pentru una dintre ele, altfel vor apărea erori de compilare), apoi pentru funcțiile metodei de clasă, distorsiunile de nume sunt inevitabile. Compilatoarele Borland și Microsoft, așa cum probabil ați ghicit, folosesc diferite scheme de distorsiune. Ca rezultat, aplicațiile VC pur și simplu nu văd clasele și metodele de clasă exportate de bibliotecile compilate în BCB.

Aceste trei probleme fac dificilă utilizarea dll-ului BCB din aplicațiile construite pe VC, dar este încă posibil. Mai jos sunt trei moduri de a crea un dll compatibil cu VC și apoi de a utiliza cu succes acest dll.

Algoritmi pentru crearea unui dll compatibil cu VC și utilizarea acestuia

Doi dintre algoritmii descriși în această secțiune folosesc legarea dll implicită, unul folosește încărcarea dll explicită. Să descriem mai întâi cea mai simplă metodă - folosind dll-ul BCB din proiectul VC, încărcându-l în mod explicit în timpul execuției programului.

Algoritm cu încărcare dll explicită

Folosind această tehnică, nu va trebui să creăm biblioteci de import compatibile cu VC (.libs). În schimb, vor fi adăugate o serie de acțiuni pentru a încărca și descărca dll-ul în aplicația care îl folosește.

Să creăm un dll BCB (New -> DLL Wizard -> C++ -> Use VCL -> OK), care exportă doar două funcții pentru simplitate. Una dintre funcții va calcula suma a două numere și nu va folosi clase VCL, iar cealaltă va crea o fereastră și va afișa în componenta TStringGrid VCL elementele matricei transmise ca unul dintre argumente.

Lista 1 - Compilatorul Borland C++ Builder 5

#ifndef _EXPLICITDLL_

#define _EXPLICITDLL_

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

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

Cuvântul cheie __declspec cu atributul dllexport marchează funcția ca exportabilă, numele funcției este adăugat la tabelul de export dll. Tabelul de export al oricărui fișier PE (.exe sau .dll) constă din trei matrice: o matrice de nume de funcții (mai precis, o matrice de pointeri către linii care conțin nume de funcții), o matrice de numere de secvență a funcției și o matrice de adresele virtuale relative (RVA) ale funcțiilor. Matricea de nume de funcții este sortată alfabetic și există o matrice corespunzătoare de numere de funcție. Numărul de secvență, după unele transformări, se transformă în indexul unui element dintr-un tablou de adrese virtuale relative ale funcțiilor. La exportul unei funcții după nume are loc următoarea succesiune de acțiuni: folosind numele cunoscut al funcției, se determină indicele acesteia în tabloul de nume de funcții, apoi, folosind indexul rezultat din tabloul de numere ordinale, numărul ordinal al funcției este determinat, apoi din numărul ordinal, ținând cont de numărul ordinal de bază al exporturilor de funcție pentru un fișier PE dat, se calculează indicele prin care se extrage RVA necesar al funcției din șirul de adrese. Pe lângă exportul după nume, este posibil să exportați funcții după numerele lor ordinale. În acest caz, succesiunea de acțiuni pentru obținerea indexului unui element dintr-o matrice de adrese virtuale relative se reduce doar la conversia numărului secvenței funcției. Pentru a exporta funcții după număr, utilizați un fișier .def cu o secțiune EXPORTARE, unde fiecărei funcție i se va atribui un număr de serie. În același timp, în textul dll-ului în sine, funcțiile nu sunt marcate ca exportate. Mai multe informații despre tabelul de export pot fi găsite în articolul de la #"7248.files/image002.gif">ImplicitLinkingAliases.def

Astfel, în tabelul de export dll sunt adăugate funcții alias, ale căror nume corespund funcțiilor declarate în fișierul antet al bibliotecii noastre. Pentru o conformitate completă (deși acest lucru poate să nu fie necesar), vom elimina din ImplicitLinking_cdecl.def referințele la toate funcțiile care sunt străine aplicației client, deoarece fișierul antet conține declarații de doar două funcții. Ca rezultat, obținem un fișier .def pregătit pentru a genera un fișier .lib obiect din acesta:

ImplicitLinking_cdecl.def

bibliotecă IMPLICITLINKING_CDECL.DLL

SumFunc @4 ;

SumFunc

ViewStringGridWnd @5 ; ViewStringGridWnd

NOTA

În singurul articol pe care l-am putut găsi pe această temă (pe site-ul bcbdev.com), s-a recomandat, pe lângă eliminarea funcțiilor străine din fișierul .def, să înlocuiască numele secțiunii EXPORTURI cu IMPORTURI. Acest lucru nu ar trebui făcut din simplul motiv că utilitarul lib.exe (cel puțin furnizat cu Visual Studio 6 și 7) nu acceptă secțiunea IMPORTĂRI, prin urmare ignoră toate descrierile de funcții ulterioare și creează un fișier .lib gol. Utilitarul lib.exe se află în directorul $(VC)\Bin, dar, de obicei, nu reușește să-l ruleze prima dată, deoarece necesită ca biblioteca mspdb60.dll să funcționeze (pentru lib.exe furnizat cu Visual Studio 7, mspdb70. dll). mspdb60.dll se află în folderul $(Microsoft Visual Studio)\Common\MSDev98\Bin, iar mspdb70.dll se află în folderul $(Microsoft Visual Studio .NET)\Common7\IDE.

Folosind utilitarul lib.exe, vom crea fișierul .lib în format COFF necesar pentru a face acest lucru, tastați în linia de comandă;

lib.exe /def:ImplicitLinking_cdecl.def

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

Vom adăuga fișierul .lib rezultat la proiectul client VC (Proiect -> Adăugare la proiect -> Fișiere...).

Acum să ne uităm la o modalitate de a obține aceleași nume de funcții în fișierele antet și obiect (.lib) folosind directiva #define. Să rescriem fișierul antet al bibliotecii noastre BCB după cum urmează:

Lista 4 - Compilatorul Borland C++ Builder 5

ImplicitLinking_cdecl.h La compilarea unei aplicații client VC în antetul conectat la proiect(ImplicitLinking_cdecl.h) se adaugă o liniuță de subliniere la numele fiecărei funcții folosind directivele #define (macrosoftul _MSC_VER este definit implicit de compilatorul VC). Deoarece funcțiile __cdecl sunt exportate din BCB dll în același mod, adică cu adăugarea unui caracter de subliniere, se stabilește o corespondență între numele funcțiilor exportate și declarate. Macro-urile #define își extind influența asupra întregului cod al aplicației ulterioare, ceea ce permite textului programului să folosească numele inițial atunci când apelează o funcție importată, care va fi suplimentată cu liniuța magică necesară în timpul compilării. Astfel, urmăm exemplul lui Borland și în aplicația client folosim în mod ascuns nume modificate de compilatorul BCB pentru a apela funcții din dll-ul nostru. Este necesitatea de a folosi nume schimbate (deși nu în mod deschis datorită trucului define), în opinia mea, acesta este un dezavantaj semnificativ al acestei metode, deoarece, de exemplu, dacă doriți să faceți în mod explicit (consultați secțiunea „Algoritm cu explicit încărcarea dll"), va trebui să utilizați dll operate cu nume de funcții modificate. Fără a dezvolta acest subiect în continuare, voi spune că, dacă dll-ul BCB este creat cu intenția clară de a-l folosi în aplicații VC, atunci este mai bine să adăugați un fișier .def de bibliotecă la proiect cu nume de alias de funcție ușor de utilizat.

La avantaje această metodă(define-trick) poate fi atribuită simplității sale și, oricât de mult contrazice ceea ce s-a spus în paragraful anterior, absența necesității de a adăuga aliasuri de funcție la tabelul de export DLL. În ciuda tuturor confortului utilizării alias-urilor, tabelul de export (și, prin urmare, dll-ul în sine) crește în dimensiune. Da, și crearea unui fișier .def de aliasuri când cantitati mari funcțiile nu adaugă emoții plăcute.

După compilarea dll-ului folosind impdef.exe, obținem un fișier de export .def, din care folosim utilitarul lib.exe pentru a crea un fișier .lib obiect și îl adăugam la proiectul client VC.

Lista aplicației client, al cărei cod în acest caz nu depinde de metoda de rezolvare a problemei nepotrivirii numelor de funcții din antetul și fișierele obiect ale bibliotecii, este prezentată mai jos. Ca și în secțiunea anterioară, aceasta este o casetă de dialog cu două butoane. Codul care ne interesează este concentrat în manipulatorii de evenimente pe butonul de dialog.

Lista 5 - Visual C++ 6.0 Compiler

FolosindImplicitLinking_cdeclDlg.cpp

// mânerul ferestrei cu componenta VCL StringGrid

HWND hGrid = NULL;

// include fișierul antet al bibliotecii

#include „ImplicitLinking_cdecl.h”

// cod generat de mediul de dezvoltare

void CUsingImplicitLinkng_cdeclDlg::OnSumFunc()

// apelați funcția SumFunc din dll

int res = SumFunc(5, 9);

// afișează rezultatul în titlul casetei de dialog

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

void CUsingImplicitLinkng_cdeclDlg::OnViewStringGridWnd()

// inițializați argumentele

const int count = 5;

Valori duble = (2,14, 3,56, 6,8, 8, 5,6564);

// închide fereastra creată anterior, astfel încât acestea să nu se „înmulțească”

if(hGrid != NULL)

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

// apelați funcția ViewStringGridWnd din dll

hGrid = ViewStringGridWnd(număr, Valori);

void CUsingImplicitLinkng_cdeclDlg::OnDestroy()

CDialog::OnDestroy();

// închide fereastra cu componenta StringGrid, dacă a fost creată

if(hGrid != NULL)

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

Principalul avantaj al încărcării dll implicite este că dll-ul nu este utilizat în mod explicit de aplicația client. Cu alte cuvinte, aplicația, atunci când apelează funcții, habar nu are că acestea pot fi amplasate undeva într-un modul extern. Rezultatul este o simplificare a codului programului. Dezavantajele includ faptul că dll-ul rămâne în memorie pe toată durata funcționării programului care îl folosește implicit. DLL-ul este încărcat atunci când aplicația este încărcată - încărcătorul de fișiere PE, uitându-se la fiecare intrare din tabelul de import al aplicației, încarcă dll-ul corespunzător acestei intrări. În consecință, dacă sunt multe biblioteci utilizate, încărcarea programului principal poate dura mult timp. Dacă dll-ul folosit implicit lipsește, aplicația nu va porni deloc.

Algoritmul final cu legare implicită pentru exportul (importul) funcțiilor __cdecl constă din următoarea secvență de acțiuni (vezi și Proiectul Demo):

1. Declarați funcțiile exportate ca __cdecl.

2. Plasați declarațiile de funcție în blocul extern „C”, fără a exporta clase și funcții de membru al clasei.

3. În fișierul antet pentru a-l putea folosi în continuare pe partea clientului, introduceți:

și adăugați o macrocomandă _DECLARATOR_ la fiecare declarație de funcție, de exemplu,

Dacă a fost folosit trucul #define, atunci pasul 7 va trebui sărit.

5. Compilați dll BCB.

6. Folosind impdef.exe, creați un fișier .def cu numele funcțiilor exportate.

7. Dacă ați folosit aliasuri la pasul 4, eliminați numele de funcții neutilizate din fișierul de export .def, lăsând doar aliasuri.

8. Creați un proiect VC client.

9. Din bibliotecă exportați fișierul .def, folosind utilitarul lib.exe, creați un fișier obiect .lib în format COFF și adăugați-l la aplicația client VC.

10. Copiați dll-ul BCB și fișierul său antet în folderul cu proiectul client VC.

11. În aplicația client, conectați fișierul antet dll.

12. Apelați funcțiile necesare în corpul programului, fără să vă gândiți la faptul că acestea se află într-un dll extern.

Algoritm de legare implicită pentru exportul (importul) funcțiilor __stdcall

După cum am menționat mai sus, utilitarul lib.exe poate crea o bibliotecă de import numai din fișierul de export .def, iar lib.exe nu interacționează în niciun fel cu dll-ul în sine. Cu toate acestea, fișierul .def nu conține nicio informație cu privire la convențiile de apelare la care aderă funcțiile exportate. În consecință, lib.exe, care lucrează exclusiv cu fișierul .def, nu va putea recunoaște că are de-a face cu funcții __stdcall și, ca urmare, nu va putea afișa funcții în fișierul .lib conform Microsoft. convenția de denumire pentru funcțiile __stdcall-. Astfel, ținând cont din secțiunea anterioară că lib.exe generează un fișier .lib complet funcțional pentru funcțiile __cdecl, ajungem la următoarea concluzie: utilitarul lib.exe nu este capabil să genereze biblioteci de import pentru dll-urile care exportă funcții __stdcall. Această secțiune este dedicată persoanelor care doresc sau sunt forțate (și după ce au citit această secțiune, cred că doar forțate) să folosească BCB dll cu funcții __stdcall în VC.

Codul sursă dll BCB rămâne același ca în secțiunea anterioară (vezi Lista 3), doar cuvântul cheie __cdecl trebuie înlocuit pe tot parcursul cuvânt cheie __stdcall.

Se știe că la crearea unui dll VC împreună cu acesta, mediul generează un fișier .lib (bibliotecă de import), care este prezentat în mod natural în formatul COFF de care avem nevoie și în care funcțiile __stdcall vor fi afișate corect. Prin urmare, să creăm (Fișier -> Nou... -> Biblioteca Win32 Dynamic-Link -> OK -> Un proiect DLL gol -> Finish) un dll VC inactiv care va exporta același set de funcții ca și dll-ul BCB. Implementarea funcțiilor într-un dll fals nu este absolut importantă, doar numele lor sunt importante. Pe lângă aceleași nume ale funcțiilor exportate, bibliotecile false și sursă trebuie să aibă aceleași nume, deoarece fișierele .lib conțin numele dll-urilor. Puteți utiliza codul sursă BCBdll prin copierea fișierelor .h și .cpp în directorul dll-ului fals, apoi adăugându-le la proiect (Proiect -> Adăugați la proiect -> Fișiere...) și ștergând corpurile tuturor funcții. Dacă funcția returnează o valoare, atunci lăsați instrucțiunea return și returnați orice doriți în funcție de tip (se poate folosi 0, NULL etc.). Deoarece corpurile de funcții vor fi goale, majoritatea directivelor #include cu fișierele de antet incluse pot fi, de asemenea, eliminate. Ca rezultat, conform exemplului nostru, obținem următorul cod pentru un dll fals:

Lista 6 - Compilator Visual C++ 6.0

ImplicitLinking_stdcallDummy.h

#ifdef _DLLEXPORT_

#define _DECLARATOR_ __declspec(dllexport)

#define _DECLARATOR_ __declspec(dllimport)

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

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

ImplicitLinking_stdcallDummy.cpp

Linia cu numele bibliotecii (LIBRARY) din fișierul .def nu este necesară, dar dacă este prezentă, atunci numele specificat în ea trebuie să se potrivească exact cu numele dll-ului fals și sursă. Adăugăm un fișier .def în proiectul VC, îl recompilăm și obținem un dll fals și biblioteca de import de care avem nevoie, care conține descrierea corectă a funcțiilor __stdcall exportate. Fișierul .lib moștenit de la dll-ul fals trebuie adăugat (legat) la orice proiect VC care va folosi dll-ul nostru original BCB.

Exemplul de aplicație VC care importă funcții __stdcall este același ca în secțiunea anterioară (vezi Lista 5). Nu uitați să includeți (#include) fișierul antet dll BCB necesar în exemplu și să îl adăugați în proiect biblioteca necesară import.

Algoritm de conectare implicită pentru exportul (importul) funcțiilor __stdcall (vezi și Proiectul Demo, ImplicitLinkingDll_stdcall.zip):

Declarați funcțiile exportate ca __stdcall.

Plasați declarațiile de funcție în blocul extern „C”. Nu exportați clase și funcții de membru al clasei.

Compilați dll BCB.

Deoarece nu este posibil să creați o bibliotecă de import corectă folosind utilitarul lib.exe, creați un dll VC fals care conține același set de funcții ca și dll-ul BCB original.

Verificați identitatea numelor dll-ului fals și dll-ului original, numele trebuie să se potrivească.

Dacă codurile sursă ale dll-ului BCB sunt folosite pentru biblioteca falsă, atunci eliminați corpurile funcției, dacă nu sunt utilizate, atunci creați funcții goale cu aceleași nume și semnături ca și în dll-ul sursă.

Pentru a preveni modificările numelor de funcții în timpul exportului, adăugați la proiectul VC un fișier .def de bibliotecă fals cu o secțiune EXPORTARE, care listează pur și simplu numele originale ale tuturor funcțiilor exportate.

Compilați un dll fals și obțineți fișierul .lib necesar cu afișarea corectă a funcțiilor __stdcall.

Creați un proiect client VC și adăugați fișierul .lib rezultat la el.

Copiați dll-ul BCB și fișierul său antet în folderul cu proiectul client VC.

Conectați fișierul antet în aplicația client.

Apelați funcțiile necesare în textul programului, fără să vă gândiți la faptul că acestea se află într-un dll extern.

După cum puteți vedea, asigurarea unei interacțiuni de succes între dll-ul BCB și aplicația client VC este o sarcină non-trivială. Cu toate acestea, o astfel de interacțiune devine necesară în cazurile în care utilizarea VCL și C++ Builder la dezvoltarea părților individuale ale aplicației este mai de preferat (de exemplu, din cauza costurilor de timp). Folosind algoritmii descriși în articol, veți putea crea și utiliza cu succes dll BCB dintr-un proiect VC.

Referințe

Pentru pregătirea acestei lucrări s-au folosit materiale de pe șantier

Internetul în viața unui adolescent: ARGUMENTE PRO ŞI CONTRA

Completat de un elev de clasa a X-a. Bortsova E.


  • Aflați influența Internetului asupra oamenilor.
  • Identificați aspectele pozitive și negative ale unei rețele de calculatoare.

„Internetul este global retea de calculatoare, oferind o libertate enormă utilizatorilor” este una dintre formulările oficiale.

O persoană care „intră” în rețea pentru prima dată rămâne de obicei impresie buna despre Internet. Dar este chiar așa? Înțelegi asta doar cu timpul. Cu cât stai mai mult pe internet, cu atât îi vezi nu numai avantajele, ci și dezavantajele. Dar, din păcate, nu toată lumea poate înțelege și realiza cum internetul ne umple conștiința. Și nu mai putem distinge între ce este bine și ce este rău.


Internetul ne oferă multe

diverse servicii, de exemplu:

Câștiguri

Comunicare

O mulțime de informații disponibile



DAR! Cu toate acestea, există multe dezavantaje, care sunt mult mai numeroase decât avantajele:

  • expunerea la radiații electromagnetice
  • stres din cauza pierderii de informații
  • dependență de lumea virtuală
  • disponibilitatea publică a informațiilor
  • tulburări psihice

Dependența de internet

O tulburare mintală în care o persoană are o dorință obsesivă de a petrece cât mai mult timp posibil pe internet și nu se poate deconecta de la acesta și se întoarce în lumea reală. Medicii o compară cu dependența de droguri și alcool.


Comunicând pe rețelele sociale, un adolescent se alătură diferitelor grupuri, subculturi și întâlnește oameni dubiși. Toate acestea pot duce la consecințe dezastruoase pentru psihicul instabil și chiar pentru viața unui adolescent care câștigă cu ușurință încredere și este influențat.

O altă latură negativă a comunicării adolescenților pe rețelele sociale este limitarea oportunităților de comunicare în lumea reală, au probleme în a face conexiuni reale. La urma urmei, pe internet, un adolescent poate alege orice rol pentru sine, se poate face mai bun, mai frumos, poate veni cu un sine ideal, dar în viață totul nu este atât de simplu, pentru că ești cine ești.




Top