架构师_程序员_码农网

ユーザー名 パスワード取得
会員登録

QQ登录

ワンステップ

検索
閲覧:16729|返信: 1
打印 上一主题 下一主题

[ソース】jscを使ってjavascriptからc#呼び出し用のdllを生成する

[コピーリンク]
要件: httpリクエストをシミュレートするとき、リクエストパラメータ、リクエストコンテンツは、いくつかのアルゴリズムコンテンツを含むかもしれません、アルゴリズムは、javascriptで見つけることができます、jsアルゴリズムは、私たちが使用するプログラミング言語(例えば:Javaやc#)に翻訳されている場合、難易度が大きくなります、通常、jsコンテンツは、圧縮され、難読化されているので、jsが直接クラスライブラリに翻訳されている場合、私たちは、クラスライブラリを呼び出すことができます。そこで、jsを直接ライブラリに翻訳して呼び出すことができれば最高だ。

.NETの下でjs関数を実行するためにJurassicを使う
https://www.itsvse.com/thread-4303-1-1.html
jscを使ってjavascriptをexeプログラムに生成する

test1.jsのコードは以下の通り:

vs 2019 developerコマンドを開き、以下を入力する:

main.exeプログラムを実行してみる。cmdコマンドでプログラムを実行し、それをダブルクリックするだけで、プログラムは以下のように点滅する:



jscを使ってjavascriptからdllライブラリを生成します。

test.jsのコードは以下の通りです:

コマンドは以下の通り:

common.dllクラス・ライブラリを参照する新しい.NET 4コンソール・プロジェクトを作成する。

次に、オブジェクトをインスタンス化し、そのメソッドを呼び出します。コードは以下の通り:


以下はそのイメージです:



生成されたdllのソースコードは、以下のようにILSpyツールで見ることができます:



jsc program file path: C:◆WindowsMicrosoft.NET ◆Framework ◆v4.0.30319 ◆jsc.exe

Parameters:

パラメータ:Microsoft (R) JScript Compiler version 14.00.3752
for Microsoft (R) .NET Frameworkバージョン4.0.30319
著作権 (C) Microsoft Corporation.無断複写・転載を禁じます。

jsc [オプション] <ソース> [[オプション] <ソース>...] ]。

JScript コンパイラのオプション

- 出力ファイル
/バイナリ出力ファイル名を指定します。
/t[arget]:exe コンソールアプリケーションを作成します。
/t[arget]:winexe Windowsアプリケーションを作成します。
/t[arget]:library ライブラリアセンブリを作成します。
/platform:<platform> コードを実行できるプラットフォームを制限します; x86、Itanium、x64、またはAny CPU (デフォルト)でなければなりません。

- ファイルを入力します。
/autoref[+|-] インポートされたネームスペースと完全修飾名に基づいてアセンブリを自動的に参照します(デフォルトではオン)。
/lib:<path> 参照を検索する追加のディレクトリを指定します。
/r[eference]:<file list> 指定されたアセンブリファイルのメタデータを参照します。
<ファイルリスト>: <アセンブリ名>[;<アセンブリ名>...]] を指定する。

- リソース
/win32res:<ファイル> Win32リソースファイル(.res)を指定します。
/res[ource]:<info> 指定されたリソースを埋め込む
<info>: <filename>[,<name>[,public|private]]を指定します。
/linkres[ource]:<info> 指定されたリソースをこのアセンブリにリンクする
<info>: <filename>[,<name>[,public|private]] のように指定します。

- コード生成
/debug[+|-] デバッグ情報を送信する。
/fast[+|-]より良いコード生成のために言語関数を無効にします。
/warnaserror[+|-] 警告をエラーとして扱う。
/w[arn]:<level> 警告レベルを設定する (0-4)

- その他
<ファイル名> その他のオプションについては、レスポンス・ファイルをお読みください。
/?ヘルプを表示
/ヘルプを表示する
/d[efine]:<symbols> 条件付きコンパイル記号を定義する。
/nologo コンパイラのコピーライト・シンボルを表示しない。
/print[+|-]はprint()関数を提供します。

- 上級者向け
/codepage:<id> 指定されたコードページ ID のソース・ファイルを開きます。
/lcid:<id> 指定された LCID をメッセージとデフォルトのコードページに使用します。
/nostdlib[+|-] 標準ライブラリ (mscorlib.dll) をインポートせず、autoref のデフォルトを off に変更します。
/utf8output[+|-] コンパイラの出力を UTF-8 文字エンコーディングで出力する。
/override" または "hide" としてマークされていないメンバーのデフォルト値を指定する。override" または "hide" としてマークされていないメンバーのデフォルト値を指定します。
(終了)




前へ:ActivatorUtilitiesを使ったASP.NET Core (III) インスタンスの動的生成
次へ:http.serverを使ってPythonでhttpサービスを起動する
Coder.comは、唯一の練習の過程で公開され、技術的な困難に遭遇し、他の人を誤解させないでください。
hz2022
发表于2022-8-16 16:58:13只看该作者
I'm not sure if I'm going to be able to do that.
コード農家ネットワーク、唯一の練習の過程で公開、技術的な困難に遭遇した、他の人を誤解させないでください。
投稿するにはログインが必要です ログイン会員登録

このバージョンのインテグラルルール


免責事項:Code Farmerによって公開されたすべてのソフトウェア、プログラミング教材や記事は、学習と研究の目的のみに使用するために制限されています。上記のコンテンツは、商業的または違法な目的のために使用してはならない、そうでなければ、すべての結果は、ユーザー自身が負担するものとします。本サイトはネットワークからの情報であり、著作権紛争は本サイトとは関係ありません。上記のコンテンツはダウンロード後24時間以内にコンピュータから完全に削除する必要があります。もしあなたがこのプログラムを気に入ったなら、正規のソフトウェアをサポートし、登録を購入し、より良い正規のサービスを受けてください。もし著作権侵害があれば、メールでご連絡ください。

メール To:help@itsvse.com

QQ|( 鲁ICP备14021824 号-2)|サイトマップ

GMT+8, 2024-9-19 00:08

クイック返信トップに戻る一覧に戻る