Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 30296|Yanıt: 1

[Kaynak] JSC kullanarak C# çağrıları için JavaScript'te bir dll oluşturun

[Bağlantıyı kopyala]
2020-12-2 tarihinde yayınlandı 12:47:18 | | | |
Gereksinimler: HTTP isteklerini simüle ettiğimizde, istek parametreleri ve istek içeriği bazı algoritma içeriğini içerebilir, algoritma JavaScript'ten bulunabilir, js algoritmasını kullandığımız programlama diline (örneğin Java, C#) çevirirsek, bu daha zordur, genellikle js içeriği sıkıştırılmış ve karışıktır, bu yüzden js'yi doğrudan çağırmak için bir sınıf kütüphanesine çevirirsek, çok iyi olur.

.net altında js fonksiyonlarını çalıştırmak için Jurassic'i kullanın
https://www.itsvse.com/thread-4303-1-1.html
JavaScript'te exe programı oluşturmak için JSC kullanın

test1.js kodu şöyledir:

VS 2019 geliştirici komutunu açın ve aşağıdakileri girin:

main.exe programını çalıştırmaya çalışın, programı cmd komutuyla çalıştırırız, doğrudan çift tıklayalım ve program aşağıdaki gibi yanıp sönür:



JSC kullanarak JavaScript'in dll kütüphanesini oluşturabilirsiniz

test.js kodu şöyledir:

Komut şöyledir:

common.dll sınıf kütüphanesine referans veren yeni bir .NET 4 konsol projesi oluşturun

Sonra nesneyi örnekle oluşturun ve yöntemini çağırın. Kod şöyledir:


Aşağıda gösterildiği gibi:



Aşağıdaki şekilde gösterildiği gibi, oluşturulan dll kaynak kodunu görüntülemek için ILSpy aracını kullanabilirsiniz:



jsc program dosya yolu: C:\Windows\Microsoft.NET\Framework\v4.0.30319\jsc.exe

Parametre:

Microsoft (R) JScript Compiler sürüm 14.00.3752
for Microsoft (R) .NET Framework sürüm 4.0.30319
Telif Hakkı (C) Microsoft Corporation. Tüm haklar saklıdır.

JSC [seçenekler] <源文件> [[seçenekler] <源文件>...]

                         JScript derleyici seçenekleri

                           - Çıkış Dosyası -
  /out:<file> İkili çıkış dosyasının adını belirtir
  /t[arget]:exe Create console application (default)
  /t[arget]: Windows uygulaması oluşturmak için winexe
  /t[arget]: kütüphane bir kütüphane assembly oluşturur
  /platform:<platform> Bu kodun çalıştırılabileceği platformları sınırlar; x86, Itanium, x64 veya herhangi bir CPU (varsayılan platform) olmalı.

                           - Giriş Dosyası -
  /autoref[+|-] İçe aktarılan isim alanlarına ve tam nitelikli isimlere dayalı otomatik referans montajları (varsayılan olarak açık)
  /lib:<path> Referans aramak istediğiniz ek dizini belirtir
  /r[eference]:<file list> Belirlenen assembly dosyasından meta verilere referanslar
                           <dosya listesi>: <meclis adı>[; <meclis adı>...]

                           - Kaynak -
  /win32res:<file> Win32 kaynak dosyalarını (.res) belirtir
  /res[ource]:<info> Belirtilen kaynağı gömle
                           <info>: <filename>[,<name>[,public|private]]
  /linkres[ource]:<info> Belirtilen kaynağı bu montaja bağlar
                           <info>: <filename>[,<name>[,public|private]]

                           - Kod üretimi -
  /debug[+|-] hata hata mesajı vermek için
  /fast[+|-] kod daha iyi bir üretim yapmak için dil özelliklerini devre dışı bırakır
  /warnaserror[+|-] uyarıyı hata olarak ele alır
  /w[arn]:<level> Uyarı seviyesini ayarlayın (0-4)

                           - Çeşitli -
  @<filename> Daha fazla seçenek için lütfen yanıt dosyasını okuyun
  /?                       Yardım göster
  /help show help
  /d[efine]:<symbols> Koşullu derleme sembollerini tanımlar
  /nologo derleyici telif hakkı markasını göstermiyor
  /print[+|-] print() fonksiyonunu sağlar

                           - İleri -
  /codepage:<id> Belirtilen kod sayfası kimliğiyle kaynak dosyayı açın
  /lcid:<id> Mesajlar ve varsayılan kod sayfaları için belirtilen LCID kullanın
  /nostdlib[+|-] standart kütüphaneyi (mscorlib.dll) içe aktarmaz ve otomatik referans varsayılan olarak kapalı olur
  /utf8output[+|-] derleyici çıktısını UTF-8 karakter kodlamasında yayar
  /versionsafe[+|-] "geçersiz kılma" veya "gizle" olarak işaretlenmemiş üyeler için varsayılan bir değer belirtir
(Son)




Önceki:ASP.NET Core (iii) ActivatorUtilities kullanarak dinamik örnekler oluşturun
Önümüzdeki:Python, http.server kullanarak bir http servisi açıyor
2022-8-16 tarihinde yayınlandı 16:58:13 |
Öğrenmeyi öğren
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com