Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 30296|Odpowiedź: 1

[Źródło] Użyj JSC do wygenerowania dll w JavaScript dla wywołań C#

[Skopiuj link]
Opublikowano 2020-12-2 12:47:18 | | | |
Wymagania: Gdy symulujemy żądania HTTP, parametry żądań i treść żądań mogą zawierać jakieś algorytmy, algorytm można znaleźć w JavaScript, a jeśli przetłumaczymy algorytm js na używany przez nas język programowania (np. Java, C#), jest to trudniejsze, zwykle zawartość js jest kompresowana i mylona, więc jeśli bezpośrednio przetłumaczymy js na bibliotekę klas do wywołania, jest to bardzo dobre.

Wykorzystaj Jurassic do wykonywania funkcji js w .net
https://www.itsvse.com/thread-4303-1-1.html
Użyj JSC do wygenerowania programu exe w JavaScript

test1.js kod brzmi następująco:

Otwórz polecenie dewelopera VS 2019 i wpisz następujące dane:

Spróbuj uruchomić program main.exe, uruchamiamy program przez komendę cmd, klikamy dwukrotnie bezpośrednio, a program przejdzie obok w następujący sposób:



Użyj JSC do wygenerowania biblioteki dll JavaScript

test.js kod wygląda następująco:

Polecenie brzmi następująco:

Stwórz nowy projekt konsolowy .NET 4, który odwołuje się do biblioteki klas common.dll

Następnie instancjonuj obiekt i wywołaj jego metodę. Kod jest następujący:


Jak pokazano poniżej:



Możesz użyć narzędzia ILSpy, aby zobaczyć wygenerowany kod źródłowy dll, jak pokazano na poniższym rysunku:



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

Parametr:

Microsoft (R) JScript Compiler wersja 14.00.3752
for Microsoft (R) .NET Framework wersja 4.0.30319
Copyright (C) Microsoft Corporation. Wszelkie prawa zastrzeżone.

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

                         Opcje kompilatora JScript

                           - Plik wyjściowy -
  /out:<file> Określa nazwę pliku wyjściowego binarnego
  /t[arget]:exe Stwórz aplikację konsolową (domyślnie)
  /t[arget]: winexe do tworzenia aplikacji Windows
  /t[arget]: biblioteka tworzy asembl biblioteki
  /platform:<platform> Ogranicza platformy, na których ten kod może być uruchamiany; Musi to być x86, Itanium, x64 lub dowolny procesor (domyślna platforma)

                           - Plik wejściowy -
  /autoref[+|-] Automatyczne odwołanie do zespołów opartych na zaimportowanych przestrzeniach nazw i w pełni kwalifikowanych nazw (domyślnie włączonych)
  /lib:<path> Określa dodatkowy katalog, w którym chcesz wyszukiwać referencje
  /r[eference]:<lista plików> Odniesienia do metadanych z określonego pliku assembly
                           <lista plików>: <nazwa asemblera>[; <nazwa asemble>...]

                           - Źródło -
  /win32res:<file> Określa pliki zasobów Win32 (.res)
  /res[ource]:<info> Osadz określony zasób
                           <info>: <filename>[,<name>[,publiczne|prywatne]]
  /linkres[ource]:<info> Łączy określony zasób z tym zespołem
                           <info>: <filename>[,<name>[,publiczne|prywatne]]

                           - Generowanie kodu -
  /debug[+|-] do wydania komunikatu debugującego
  /fast[+|-] wyłącza funkcje językowe, aby poprawić generowanie kodu
  /warnaserror[+|-] traktuje ostrzeżenie jako błąd
  /w[arn]:<level> Ustaw poziom ostrzegawczy (0-4)

                           - Różne -
  @<filename> Aby uzyskać więcej opcji, proszę przeczytaj plik odpowiedzi
  /?                       Pokaż pomoc
  /help shows help
  /d[efine]:<symbols> Definiuje symbole kompilacji warunkowej
  /nologo nie wyświetla znaku praw autorskich kompilatora
  /print[+|-] dostarcza funkcję print()

                           - Zaawansowane -
  /codepage:<id> Otwórz plik źródłowy z podanym ID strony kodowej
  /lcid:<id> Używaj określonego LCID dla wiadomości i domyślnych stron kodowych
  /nostdlib[+|-] nie importuje standardowej biblioteki (mscorlib.dll) i zmienia domyślne automatyczne ustawienie na wyłączone
  /utf8output[+|-] generuje wyjście kompilatora w kodowaniu znaków UTF-8
  /versionsafe[+|-] określa domyślną wartość dla członków, którzy nie są oznaczoni jako "nadpisują" lub "ukryj"
(Koniec)




Poprzedni:ASP.NET Rdzeń (iii) Dynamicznie twórz instancje za pomocą ActivatorUtilities
Następny:Python używa http.server do otwarcia usługi http
Opublikowano 2022-8-16 16:58:13 |
Naucz się uczyć
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com