問題タブ [native-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - V8 で JavaScript をネイティブ コードにコンパイルする
Google の V8 エンジンを使用して JavaScript をネイティブ コードにコンパイルし、それをバイナリ ファイルとして保存し、任意のマシンでソフトウェア環境を介して必要なときに実行することは本当に可能ですか?
java - Java をネイティブ コードにコンパイルできますか?
JVM を必要とせずに Java からスタンドアロン (またはライブラリ) マシン コードにコンパイルする方法はありますか?
.net - 不明なバージョンの.Netを使用するコンピューターにC#アプリを配布するにはどうすればよいですか?
700台以上のコンピューターに配布する必要のある小さなアプリを作成しました。問題は、すべてのOC3からのインターネット接続がインストールされた任意のバージョンの.Net Frameworkを使用して、任意のバージョンのWindows(おそらくXP以上)をコンピューターで実行できることです。ダイヤルアップします。
.Netをアプリケーションにバンドルすることを検討しましたが、.netインストーラーは少なくとも39 MBであり、ダイヤルアップを使用している人にとっては文字通り数時間かかります。
では、アプリケーションが必要とする特定のDLLをバンドルする方法、またはすべてをネイティブコードに変換する方法はありますか?
ありがとう-マイク
c# - C# で CIL コードをネイティブ コードに変更する
C# アプリケーションをコンパイルすると、CIL コードにコンパイルされ、実行時にフレームワークによって解釈されますが、アプリケーションのネイティブ x86 EXE ファイル スタブを生成できるかどうか疑問に思っています。
この方法では、アプリケーションを逆コンパイラで直接開くことはできません。
PS難読化ツールは何にも使用できません。
c# - Salamander .NET Linker - どのように機能しますか?
サラマンダーがどのように機能するかを順を追って説明したいと思いますか? 特に気になった点をいくつか紹介します
-
リンクオンデマンド
リンカはエントリ メソッド (構成可能) から開始し、コール グラフを再帰的にウォークして、MSIL コードの必要なビットのみをリンクします。未使用のコードは、最終的なアセンブリにリンクされません。したがって、コードがより効率的になり、ファイル サイズが小さくなります。
-
フレームワーク API へのリンク
リンカーは非常に強力であるため、System.Windows.Forms.dll などの Microsoft .NET Framework アセンブリでさえ、独自の .NET アセンブリにリンクできます。オンデマンドでリンクするので、必要な部分だけがリンクされます。これは、コードの保護、簡単なアプリケーションの展開、およびフレームワーク コード自体へのデバッグによるトラブルシューティングに非常に役立ちます。
-
ネイティブ コンパイル
ネイティブ コンパイラは、システム アセンブリを含むすべてのマネージ アセンブリを x86 ネイティブ コードに変換します。MSIL 命令は配布されず、実行時に JIT コンパイルは行われません。これにより、逆アセンブルと逆コンパイルに対する最高の保護が提供され、パフォーマンスと起動時間も改善されます。
-
Microsoft .NET Framework を完全にインストールしなくても簡単かつ迅速に展開
ミニ デプロイ ツールは、CLR ランタイム ファイルと依存アセンブリの最小限のセットをまとめて、ターゲット コンピューター上の 1 つのフォルダーに簡単にコピーできるようにします。アプリケーションは、フレームワーク全体がインストールされているかのように実行されます。インストールは 1 つのフォルダーに分離されるため、将来の .NET インストールと競合することはありません。依存アセンブリにリンクを使用すると、ファイル サイズがさらに小さくなります。
-
コード保護 現在の難読化ツールでは解決できない問題が 1 つあります。それは、難読化がどれほど優れていても、システム ライブラリの呼び出しやその他の外部参照がコード内に散らばっているということです (下図の赤を参照)。これらの呼び出しは外部参照であるため、難読化ツールはそれらを変更せずに残す必要があります。ただし、これらの参照は、十分に文書化されたパブリック API であるため、逆コンパイルされたコードを理解するのに大いに役立ちます。リンカーは、フレームワーク API を独自のコードにリンクすることで、このようなパブリック API を削除または削減します。したがって、難読化後のコードの逆コンパイルがはるかに困難になります。以下に、リンカーを使用する前後のサンプル MSIL コードを示します。
before: (以下のコードは外部のパブリック API であるため、難読化ツールは名前を変更できません)
後: (Windows.Forms API が使用されているという手がかりはまったくありません。ハッカーがこのがらくたを理解するのは非常に困難です)
これらのことのいくつかは私を困惑させ、他の誰かがそれがどのように機能するか知っているかどうか疑問に思っていました.
.net - CLR によって生成されたネイティブ コードを確認するにはどうすればよいですか?
CLR によって生成されたネイティブ コードを表示する方法はありますか?
Java には、JIT によってコンパイルされたネイティブ コードを表示するオプション「 -XX:+PrintOptoAssembly 」があります。CLRに似たようなものはありますか?
java - MSILをJavaネイティブコードに変換できますか?
DotnetCLRは言語コードをMSILに変換します。Javaコードは、プラットフォームに依存しないネイティブコードに変換されます。このMSILをネイティブコードに変換できますか?したがって、Dotnetは自動的にプラットフォームに依存しなくなります。
xml - C++ は CLR を使用せずに XML を読み書きします
私はこれが非常にばかげた質問であることを知っており、私は C++ に非常に慣れていません。
Starcraft AI を開発していますが、これは DLL ファイルです。XML を使用してボットにデータを収集しようとしていますが、/clr オプションを使用して DLL をビルドするときはいつでも。ボットが正しく読み込まれません。私の質問は、CLR とは何か、/clr ビルド オプションを使用せずに XML を読み書きする方法はありますかということです。
本当にありがとう。
android - Androidでのサウンド分析/編集
アンドロイドで音を分析して編集するのがどれほど難しいか知りたいのですが。私のプロジェクトは一種のDJアプリケーションになります。
AudioTrackが最も適切なライブラリだと思いますよね?いくつかのAndroidDJアプリは、サウンドのスペクトルを表示したり、エフェクトを適用したり、速度を変更したり、ミックスしたりするためにどのように機能しますか?より強力な外部サウンドライブラリを使用していますか?
パフォーマンスの問題については、Javaは十分に高速ですか(または遅延のリスクがありますか)?
そして最後の質問:KorgはどのようにそのsythをIpadに移植し、Wormuxはandroidに移植され、AngryBirdは現在iPhoneとandroidで動作します...これらのアプリはすべて、書き直されることなく任意のプラットフォームに移植されているようです...彼らはどうしますか?「ネイティブコード」で書かれているからですか?他のサウンドライブラリを使用できるように、このオプションを検討する必要がありますか?
ありがとう。
windows-mobile - Windows Mobile で PInvoke DLL が見つからない
私はWindows Mobileアプリケーションに取り組んでいます。
ネイティブ コードのラッパーを (DllImport を使用して) 使用しているサンプルをダウンロードすると、常に「PInvoke DLL が見つかりません」というエラーが表示されます。
64 ビット Windows 7 OS で C# を使用して VS 2005 を使用しています。
stackoverflow や他のサイトで多くの解決策を確認しましたが、問題の解決策はありません。
64 ビット OS に問題がある場合、その dll を 64 ビット用にコンパイルするにはどうすればよいですか? Configuration Manager を使用してプラットフォームを x64 に変更しようとしましたが、機能しません。