Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 30296|Svar: 1

[Källa] Använd JSC för att generera en dll i JavaScript för C#-anrop

[Kopiera länk]
Publicerad 2020-12-2 12:47:18 | | | |
Krav: När vi simulerar HTTP-förfrågningar kan förfrågningsparametrarna och förfrågningsinnehållet involvera viss algoritminnehåll, algoritmen kan hittas från JavaScript, om vi översätter js-algoritmen till det programmeringsspråk vi använder (t.ex. Java, C#) är det svårare, vanligtvis är js-innehållet komprimerat och förvirrat, så om vi direkt översätter js till ett klassbibliotek för oss att anropa är det mycket bra.

Använd Jurassic för att köra js-funktioner under .net
https://www.itsvse.com/thread-4303-1-1.html
Använd JSC för att generera exe-programmet i JavaScript

test1.js kod är följande:

Öppna utvecklarkommandot VS 2019 och ange följande:

Försök att köra main.exe program, vi kör programmet genom cmd-kommandot, dubbelklickar direkt, och programmet blinkar förbi, enligt följande:



Använd JSC för att generera ett dll-bibliotek med JavaScript

test.js kod är följande:

Kommandot är följande:

Skapa ett nytt .NET 4-konsolprojekt som refererar till common.dll klassbiblioteket

Instansier sedan objektet och anropar dess metod. Koden är följande:


Som visas nedan:



Du kan använda ILSpy-verktyget för att se den genererade dll-källkoden, som visas i figuren nedan:



jsc program file path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe

Parameter:

Microsoft (R) JScript Compiler version 14.00.3752
för Microsoft (R) .NET Framework version 4.0.30319
Upphovsrätt (C) Microsoft Corporation. Alla rättigheter förbehållna.

JSC [alternativ] <源文件> [[alternativ] <源文件>...]

                         JScript-kompilatoralternativ

                           - Utdatafil -
  /out:<file> Specificerar namnet på den binära utdatafilen
  /t[arget]:exe Skapa konsolapplikation (standard)
  /t[arget]: winexe för att skapa en Windows-applikation
  /t[arget]: bibliotek skapar en biblioteksassembler
  /plattform:<platform> Begränsar vilka plattformar som denna kod kan köras på; Måste vara x86, Itanium, x64 eller vilken CPU som helst (standardplattform).

                           - Inmatningsfil -
  /autoref[+|-] Autoreferens-assemblies baserade på importerade namnrymder och fullt kvalificerade namn (på som standard)
  /lib:<path> Specificerar den extra katalog där du vill söka efter referenser
  /r[eference]:<fillista> Refererar till metadata från den angivna assemblerfilen
                           <fillista>: <sammansättningsnamn>[; <församlingens namn>...]

                           - Källa -
  /win32res:<file> Specificerar Win32-resursfiler (.res)
  /res[ource]:<info> Bädda in den angivna resursen
                           : <info><filename>[,<name>[,offentlig|privat]]
  /linkres[ource]:<info> Länkar den angivna resursen till denna assembler
                           : <info><filename>[,<name>[,offentlig|privat]]

                           - Kodgenerering -
  /debug[+|-] för att skicka ett felsökningsmeddelande
  /fast[+|-] inaktiverar språkfunktioner för att göra kodgenereringen bättre
  /warnaserror[+|-] behandlar varningen som ett fel
  /w[arn]:<level> Ställ in varningsnivån (0-4)

                           - Övrigt -
  @<filename> För fler alternativ, vänligen läs svarsfilen
  /?                       Hjälp med programmet
  /hjälp visar hjälp
  /d[efine]:<symbols> Definierar villkorliga kompileringssymboler
  /nologo visar inte kompilatorns upphovsrättsmärke
  /print[+|-] tillhandahåller print()-funktionen

                           - Avancerad -
  /codepage:<id> Öppna källfilen med angivet kodsid-ID
  /lcid:<id> Använd det angivna LCID för meddelanden och standardkodsidor
  /nostdlib[+|-] importerar inte standardbiblioteket (mscorlib.dll) och ändrar autof-standarden till avstängd
  /utf8output[+|-] sänder kompilatorutgång i UTF-8-teckenkodning
  /versionsafe[+|-] specificerar ett standardvärde för medlemmar som inte är markerade som "override" eller "hide"
(Slut)




Föregående:ASP.NET Core (iii) Skapa instanser dynamiskt med hjälp av ActivatorUtilities
Nästa:Python använder http.server för att öppna en http-tjänst
Publicerad den 2022-8-16 16:58:13 |
Lär dig att lära dig
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com