Kezdőoldal » Számítástechnika » Programozás » Melyik a legjobb programozási...

Melyik a legjobb programozási nyelv erre?

Figyelt kérdés
Windows alá keresnék olyan programozási nyelvet,amivel viszonylag gyorsan el lehet érni közvetlenül vagy bármilyen gyors windowsos "trükkel" a hardware portokat,interruptokat,memóriát írásra és olvasásra összeségében ezeket,akár 32 bites és 64 bites rendszer környezetben is. Pl Com port, USB, Hálókártya, Videókártya, PIC, Arduino, egyéb periféria kezelésével és adatok kinyerésével és elérésével kapcsolatban. Első tippjeim VS-Vb?, vagy esetleg Radasm?, Van valami ezeknél jobb és könnyebb út? Persze lehet ezek sem megfelelőek. Találhatok esetleg erre megfelelő leírásokat, mintaporgramokat a neten és hol ha ez még belefér. SOS-ben kellene valami kézenfekvő és gyors megoldás,linkekkel leginkább,ha megoldható! Thx!!!!!

2019. okt. 30. 04:20
1 2 3
 21/28 A kérdező kommentje:

Figyú már, ennél egy kicsit jobbat szeretnék összehozni, hogy mindenki értse mi a lófiszfaxt szeretnék, mint itt delphiben,mert ez nem olvassa a legalsó memória szegmenseket, azaz a rom bios és dos megszakítási vektrokhoz tartozó memória szegmenseket. Hogy néz ki ez VB-ben és hogy elérje ezeket is. Van erre valami gyorsabb és jobb megoldás?


procedure TForm1.Button1Click(Sender: TObject);



type TByteArray = array[0..255] of Byte;

var CurrAddr,i,j : Longword;

s : String;

b : Byte;

ch : Char;

Ofs,Ofs0 : Longword;

LinearAddress :^TByteArray;

begin



PhysAddr:=strtoint64def(edit1.text,0);


if ActiveHW then

begin



LinearAddress:=tviclib.MapPhysToLinear(HW32,PhysAddr,$1000);//256);

CurrAddr:=PhysAddr;

Ofs:=0;

Ofs0:=0;

{ edit1.Clear;}



for j:=1 to 2048 do

begin

b:=LinearAddress^[Ofs0];

Inc(Ofs0);

if b>=$20 then ch:=Char(b) else ch:='.'; s:=s+ch;

end;

memo2.Text:=s;

CurrAddr:=CurrAddr+16;

end;


end;



procedure TForm1.Button2Click(Sender: TObject);

begin

HW32 := CloseTVicHW32(HW32);

ActiveHW := FALSE;


end;


procedure TForm1.FormCreate(Sender: TObject);

begin

HW32 := OpenTVicHW;

ActiveHW := GetActiveHW(HW32);


end;

2019. okt. 30. 19:57
 22/28 anonim ***** válasza:
"Ahhh varjatok ez mar kezd erdekes lenni mar kezdtem azt hinni hogy nem is tud programozni,csak a spanyolviaszt akarja feltalani" :D Vegre valami kod, igaz nem teljes mert a fo vezerlo unit hianyzik belole valami sys vagy dll fajl, vagy akarmi ami meg hozza tartozik ahhoz a Tvic-es orulethez. Nem tudnad az egesz pascalos kodot benyomatni ide elejetol a vegeig, hogy mi is marad le itt? :DD
2019. okt. 30. 20:12
Hasznos számodra ez a válasz?
 23/28 A kérdező kommentje:

DE!! necce, ha ez kielégít, de ez csak egy a sok közül megoldás és szeretném végre kicsit hanyagolni a delphizést. Arról nem is beszélve, hogy interruptok meghívására még továbbra sem sikerült találnom egy halovány szösszenetet sem. Radasm is tilt és minden más is kiugat, ahogy belenéztem. Valami okos kerülőút kellene a regiszterértékek kilistázására,de hogy mi VB-ben lövésem sincs hogyan:(


unit RenMemolvas;


interface


uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs,TVicLib, StdCtrls,HW_Types,comctrls,ExtCtrls,shellapi;


type

TForm1 = class(TForm)

Button1: TButton;

Memo2: TMemo;

Button2: TButton;

Edit1: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


const

MaxPorts = 4;



var

Form1: TForm1;



implementation


var

hw32:thandle;

ActiveHW : Boolean;

PhysAddr : Longword;



{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);



type TByteArray = array[0..255] of Byte;

var CurrAddr,i,j : Longword;

s : String;

b : Byte;

ch : Char;

Ofs,Ofs0 : Longword;

LinearAddress :^TByteArray;

begin



PhysAddr:=strtoint64def(edit1.text,0);


if ActiveHW then

begin



LinearAddress:=tviclib.MapPhysToLinear(HW32,PhysAddr,$1000);//256);

CurrAddr:=PhysAddr;

Ofs:=0;

Ofs0:=0;

{ edit1.Clear;}



for j:=1 to 2048 do

begin

b:=LinearAddress^[Ofs0];

Inc(Ofs0);

if b>=$20 then ch:=Char(b) else ch:='.'; s:=s+ch;

end;

memo2.Text:=s;

CurrAddr:=CurrAddr+16;

end;


end;



procedure TForm1.Button2Click(Sender: TObject);

begin

HW32 := CloseTVicHW32(HW32);

ActiveHW := FALSE;


end;


procedure TForm1.FormCreate(Sender: TObject);

begin

HW32 := OpenTVicHW;

ActiveHW := GetActiveHW(HW32);


end;


end.

2019. okt. 30. 20:17
 24/28 anonim ***** válasza:
Amúgy miért jó széllel szemben hugyozni?
2019. okt. 30. 20:47
Hasznos számodra ez a válasz?
 25/28 anonim ***** válasza:
Baski ilyen cool unitot meg eletemben nem lattam skacok. Te tok hulye vagy mar ne is haragudj kerdezo. Ezzel a TvichHw32-es packkal ugy szet tudod barmolni nemcsak delphi alatt es c es vb alatt is a gepet ahogy csak akarod, hanem siman megoldod vele az osszes keresett problemadat. Most komolyan szivatsz bennunket? Sokak alma volt egy ilyen pack foleg regen.Kilovod par okos koddal a evualtion-t es ugy barmolod vele szet a windows-t ahogy csak akarod ha tenyleg eleg ugyes vagy hozza. Ez mindent tud, ami neked kell!! Az eszem megall, masok a prog.hu-n ketezer eve kerestek ilyen konnyed unitokat,te meg a marhasaggal egybefuzott hosszas gondolatmeneteddel es szovegeles utan,bedontod a windows-t. Mert ezzel be lehet. De jo lesz ez majd az arduinos es pic-es arcoknak,felteve ha rabukkanak erre a topikra es tudnak a sorok mogott olvasni.Ezzel leprogramozod az osszes hardware bigyulaidat es meg romba dontod a windows keretrendszert es a directx videos cuccokat is.Beszaras ez a csavo!!! Hat ha te normalis vagy en egy aranyhal :DDDDD Honnan a francbol halasztad ezt elo? :DDDDD Kesz vagyok gyerekek. Bemeg ilyet ide talcan dobni, eldobom az agyam :))))))))))))))))
2019. okt. 30. 21:02
Hasznos számodra ez a válasz?
 26/28 anonim ***** válasza:

Na végre kezdem érteni mire is gondoltàl.

Alapvetöen az a probléma hogy windows blokkolja a kernel modban futo processzek memoria területét emiatt azokat közvetlenül nem tudod elérni csak valamilyen kernel modban futo alkalmazàs segitségével( pl. valamilyen driver). Ezt sajnos egy c-szerü nyelvben lehet megirni visual studio és Windows Driver kit segitségével. Az ezzel kommunikàlo alkalmazàst meg lehet irni akàr VB.NET-ben : azaz irsz egy dll-t ami kommunikàlni tud a driverrel és aztàn utobbit beimportàlod VB-be és ott megkapod a neked szükséges értékeket, a lényeg az hogy legyen egy kernel modban lévö processzed - egy drivered amivel valamilyen modon kommunikàlni tudj. Sajnàlatos modon ez elég komplikàltà lett téve - de jo okkkal. Ha el lehet érni a hardveres megszakitàsokat közvetlenül akkor egy Windows jelszo kiolvasàsa/modositàsa elég gyorsan menne és ez mondanom se kell elég kellemetlen dolog lenne. Ehhez mindenképpen kell a Windows Driver Kit hogy meg tudd irni a drivert. Utàna a driver elérése mehetne VB-böl is akàr vagy bàrmilyen màs nyelvböl. Sajnos nem egyszerü a dolog csak akkor ha valahonnan sikerülne egy API-t nyilt forràskodban talàlnod amiben van egy kész DLL -SYS fàjl pàros és el tudod inditani azt.

Màsik megoldàs egy pl. virtualbox-ban futo Windows inditàsa debug modban majd a virtuàlis gépre csatlakozni Windbg segitségével és assambly-ben illetve hexaban minden regisztert el tudsz érni és akàr lehetséges plugint is irni hozzà akàr VB-ben is bàr ilyet nem talàltam de pythonban igen. Szerintem utobbi megfelelö lenne szàmodra:

[link]

Ezzel garantàltan el tudsz érni minden függvényt és megszakitàst de elég nehéz feladat lesz nagyon bonyolultnak tünik a windows kernel müködése.

Itt pedig a leggyakoribb pluginokat talàlhatod hozzà:

[link]

2019. okt. 30. 21:09
Hasznos számodra ez a válasz?
 27/28 A kérdező kommentje:
Nos hát örülök, hogy legalább egy valakinek örömet okoztam. Az előző segítőkész arc leírását is köszönöm.Sajna viszont hozzá kell hogy tegyem, bonyolultsággal tele van a padlás és ez nem túl jó megközelítés ahhoz amit leírtam. Mindvégig tudtam ezeket és mindent ezzel kapcsolatban, csak arra vártam hátha valaki ezt is azóta felülmúlta valami mégnagyobb okossággal.De úgy látszik nem röpül és fejlődik mégsem olyan ütemben a programozási technika és maga a windows API programozás utáni érdeklődés, hogy még egyszerűbb legyen előállítani ezeket a sorokat. Memóriára valóban jók a pointeres megoldások is de csak 32 bites rendszeren, az alsó szegmenscímeket csak pl ezzel de lazán el lehet érni. Lódítottam,hogy nem, várva arra hátha valaki mégnagyobb frászba hoz. Erre várhattam sajna. Használjátok egészséggel srácok!!! Előre is kellemes időtöltést és pihenést kívánok a hosszú hétvégére és ne felejtsetek el gondolni a nagyszüleitekre, akik már nincsenek közöttünk és a régi öreg számteches szakikra, (Kandó Kálmán, Neumann János, Kalmár László, Steve Jobs, hogy külföldit is írjak nektek...) akik voltak olyan kedvesek és okosak, hogy az eltelt hosszú évtizedek során,tálcán kínálták fel nekünk azt a sok gyönyörű "paradicsomi" megoldáshoz vezető útat, amiből most sok százezezren a világon megtudnak élni és eltudják tartani belőle akár az egész családjukat is. Hosszú út vezetett idáig de mindenképpen megérte. Érezzétek jól magatokat és további jó programozást és tanulást kívánok mindenkinek!!!!
2019. okt. 30. 21:47
 28/28 anonim ***** válasza:

Neked semmi közöd nincs a programozáshoz, csak eljátszod, mintha lenne.


Szegmenseket emlegetsz, holott, védett módban nincsenek ilyenek. Kutyulsz minden fogalmat, a kérdésed pedig totál fals.

2019. nov. 16. 10:33
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!