Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 30296|Atsakyti: 1

[Šaltinis] Naudokite JSC, kad sugeneruotumėte dll JavaScript C# skambučiams

[Kopijuoti nuorodą]
Publikuota: 2020-12-2 12:47:18 | | | |
Reikalavimai: Kai imituojame HTTP užklausas, užklausos parametrai ir užklausos turinys gali apimti tam tikrą algoritmo turinį, algoritmą galima rasti iš JavaScript, jei išverčiame js algoritmą į naudojamą programavimo kalbą (pvz., Java, C#), tai yra sunkiau, paprastai js turinys yra suspaustas ir supainiotas, todėl jei mes tiesiogiai verčiame js į klasės biblioteką, kad galėtume iškviesti, tai yra labai gerai.

Naudokite "Jurassic", kad vykdytumėte js funkcijas .net
https://www.itsvse.com/thread-4303-1-1.html
Naudokite JSC generuoti exe programą JavaScript

test1.js kodas yra toks:

Atidarykite komandą VS 2019 kūrėjas ir įveskite:

Pabandykite paleisti main.exe programą, mes paleidžiame programą per komandą cmd, dukart spustelėkite tiesiogiai ir programa mirksės taip:



Naudokite JSC generuoti dll biblioteką JavaScript

test.js kodas yra toks:

Komanda yra tokia:

Naujo .NET 4 konsolės projekto, nurodančio common.dll klasės biblioteką, kūrimas

Tada sukurkite objektą ir paskambinkite jo metodui. Kodas yra toks:


Kaip parodyta žemiau:



Galite naudoti ILSpy įrankį, kad peržiūrėtumėte sugeneruotą dll šaltinio kodą, kaip parodyta paveikslėlyje žemiau:



UAB programos failo kelias: C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe

Parametras:

Microsoft (R) JScript kompiliatoriaus versija 14.00.3752
Microsoft (R) .NET Framework 4.0.30319 versijai
Autorių teisės (C) "Microsoft Corporation". Visos teisės saugomos.

UAB [parinktys] <源文件> [[parinktys] <源文件>...]

                         JScript kompiliatoriaus parinktys

                           - Išvesties failas -
  /out:<file> nurodo dvejetainio išvesties failo pavadinimą
  /t[arget]:exe Kurti konsolės programą (numatytasis)
  /t[arget]: winexe Windows programai sukurti
  /t[arget]: biblioteka sukuria bibliotekos rinkinį
  /platforma:<platform> apriboja platformas, kuriose galima paleisti šį kodą; Turi būti x86, Itanium, x64 arba Bet koks procesorius (numatytoji platforma)

                           - Įvesties failas -
  /autoref[+|-] Automatinių nuorodų rinkiniai pagal importuotas vardų sritis ir pilnai apibrėžtus pavadinimus (įjungta pagal numatytuosius nustatymus)
  /lib:<path> nurodo papildomą katalogą, kuriame norite ieškoti nuorodų
  /r[eference]:<failų sąrašas> nurodo metaduomenis iš nurodyto rinkinio failo
                           <failų sąrašas>: <rinkinio pavadinimas>[; <rinkinio pavadinimas>...]

                           - Šaltinis -
  /win32res:<file> nurodo Win32 išteklių failus (.res)
  /res[ource]:<info> Įdėkite nurodytą šaltinį
                           <info>: <filename>[,<name>[,viešas|privatus]]
  /linkres[ource]:<info> susieja nurodytą šaltinį su šiuo rinkiniu
                           <info>: <filename>[,<name>[,viešas|privatus]]

                           - Kodo generavimas -
  /debug[+|-], kad išduotumėte derinimo pranešimą
  /fast[+|-] išjungia kalbos funkcijas, kad kodas būtų geriau generuojamas
  /warnaserror[+|-] įspėjimą traktuoja kaip klaidą
  /w[arn]:<level> Nustatykite įspėjimo lygį (0-4)

                           - Įvairūs -
  @<filename> Norėdami gauti daugiau parinkčių, perskaitykite atsakymo failą
  /?                       Rodyti pagalbą
  /help rodo žinyną
  /d[efine]:<symbols> apibrėžia sąlyginio kompiliavimo simbolius
  /nologo nerodo kompiliatoriaus autorių teisių ženklo
  /print[+|-] suteikia print() funkciją

                           - Pažengęs -
  /codepage:<id> atidarykite šaltinio failą su nurodytu kodų puslapio ID
  /lcid:<id> naudoti nurodytą LCID pranešimams ir numatytiesiems kodų puslapiams
  /nostdlib[+|-] neimportuoja standartinės bibliotekos (mscorlib.dll) ir pakeičia numatytąją automatinę nuorodą į išjungtą
  /utf8output[+|-] skleidžia kompiliatoriaus išvestį UTF-8 simbolių kodavimu
  /versionsafe[+|-] nurodo numatytąją reikšmę nariams, kurie nėra pažymėti kaip "perrašyti" arba "slėpti"
(Pabaiga)




Ankstesnis:ASP.NET Core (iii) Dinamiškai kurkite egzempliorius naudodami "ActivatorUtilities"
Kitą:Python naudoja http.server, kad atidarytų http paslaugą
Publikuota: 2022-8-16 16:58:13 |
Išmokite mokytis
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com