問題タブ [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.

0 投票する
2 に答える
558 参照

c# - nativeGetUninitializedObjectは実際にはどこに存在しますか?

シリアル化に関するものに興味があったので、調べてみると、特定のタイプの初期化を(custructorを呼び出さずに)実際に処理するFormatterServicesというメソッドが見つかりました。このメソッドは、キーワードと次の属性nativeGetUninitializedObjectで装飾されています。extern[MethodImpl(MethodImplOptions.InternalCall), SecurityCritical]

私は疑問に思っています:このメソッドは実際にどこに存在しますか?(コンストラクターを呼び出さずに)指定された型を初期化するためにCLRはどのコードを呼び出しますか?

0 投票する
1 に答える
1216 参照

java - javaからアセンブリ言語コードで書かれた関数を呼び出す方法は?

こんにちは、アセンブリ言語コードを Java に組み込みたいと思います。アセンブリ言語は私にとって初めてなので、hello world のようなアイデアとサンプル プログラムを教えてください。

0 投票する
3 に答える
315 参照

java - jniスターターの質問


私はJNIを調べ始めましたが、ロードされたdllで問題が発生した場合、jvmはその場で終了する可能性があることを理解しています。
つまり、プロセスを保護することはできません。たとえば、例外をキャッチする場合などです。
したがって、私の理解が正しければ、私の質問は、jniを使用するときにこの状況に標準的なアプローチ/パターンがあるかどうかです。
言い換えると、jniを使用するプロセスは、これらの問題を回避するように設計されていますか?または、そのような問題は発生しないと予想されますか?

ありがとうございました。

0 投票する
4 に答える
1542 参照

java - 理論的には、openJDK JITを入手して、Javaコードをネイティブにコンパイルできますか?

どうすればjavajre依存関係を取り除き、ネイティブコードを生成して、コンパイルされたコードをアプリケーションとして配信できるのでしょうか。

それでそれは可能ですか?

PS私はgcjコンパイラについて知っていますが、それは何をしているのですか?

0 投票する
1 に答える
621 参照

windows-phone-7 - Windows Phone 7 のネイティブ C 用のサードパーティ コンパイラはありますか?

Microsoft が Windows Phone 7 の C/C++ のサポートを削除したこと、および Windows Phone 7 用のアプリケーションを開発できるのは C# だけであることは知っていますが、Windows Mobile 6.5 とスマートフォンをサポートするコンパイラ (Pelles C) については知っています。 1か月前にフォーラムに投稿しましたが、返信がありませんでした。

Windows Phone 7をサポートしているかどうか誰か知っていますか? または Windows Phone 7 のネイティブ開発をサポートする他のコンパイラはありますか? マイクロソフトである必要はありません。

追伸: 私は Windows Phone 7 の電話を持っていません。私は 6.5 を持っています。私の電話用にいくつかのアプリケーションをコーディングしたかどうかを知りたいのですが、それを Windows Phone 7 に移植できるかどうかを知りたいのです。

ありがとう。

0 投票する
2 に答える
3129 参照

java - JVM がホスト環境でネイティブ メソッドを呼び出す方法

最近、私は Java Native Interface について読んでいます。ところで、疑問があります。たとえば、Java プログラムで I/O 操作を行う必要がある場合、I/O 操作用の Java API を実行します。さらに、低レベルでは、OS レベルの I/O 処理にマップする必要があります。問題は、Java API がホスト オペレーティング システムのネイティブ I/O メソッドとどのように相互作用するかです。

一言で言えば、JDKのいくつかのメソッドがネイティブに実装されていると聞きました.それらのネイティブメソッドがJava APIによってどのように呼び出されるか.JNI(Java Native Interface)になると思います.

誰かが私の疑問を明確にしてくれませんか。

ありがとう

ヌワン・アランバージ

0 投票する
4 に答える
554 参照

security - メモリの安全性とセキュリティ - 任意のプログラムをサンドボックス化しますか?

一部の言語 (Java、安全でないコードのない C# など) では、メモリを破損することは不可能です (そうあるべきです)。手動のメモリ管理などは必要ありません。これにより、リソース (ファイルへのアクセス、ネットへのアクセス、最大メモリ) を制限できます。使用法、...) アプリケーションに非常に簡単に適用できます。たとえば、Java アプレット (Java Web Start) などです。サンドボックス化と呼ばれることもあります。

私の質問は: ネイティブ プログラム (たとえば、C、C++ のようなメモリが安全でない言語で書かれているが、ソース コードがない) で可能ですか? 単純なバイパス可能なサンドボックスやウイルス対策ソフトウェアのことではありません。

私は2つの可能性について考えています:

  • 別の OS ユーザーとしてアプリケーションを実行し、このユーザーに制限を設定します。不利な点 - 多くのユーザー、パラメータのすべての組み合わせ、アクセス権?
  • (どういうわけか) 呼び出すことができる制限 (OS API) 関数。バイパスの可能性なしで、(少なくとも理論的には) 完全な保護を許可する可能性があるかどうかはわかりません。

編集:理論にもっと興味があります-たとえば、一部のOSに文書化されていない機能があることや、特定のOSでアプリケーションをサンドボックス化する方法は気にしません。たとえば、アプリケーションをサンドボックス化し、コンソールから char を取得し、コンソールに char を配置するという 2 つの機能のみを許可します。バイパスの可能性がなく、どうすれば壊れないようにすることができますか?

言及された回答:

  • Google ネイティブ クライアント、x86 のサブセットを使用 - 開発中、(可能性はありますか?) PNaCl - ポータブル ネイティブ クライアント
  • 完全な VM - 明らかにやり過ぎです。数十のプログラムを想像してみてください...

言い換えれば、ネイティブ (安全でないメモリ アクセス) コードを、Web ブラウザなどの制限された環境内で、100% (少なくとも理論上は) セキュリティで使用できるでしょうか?

Edit2: Google Native Clientはまさに私が望むものです。安全かどうかに関係なく、ネイティブの速度で実行され、サンドボックスで、Web ブラウザーでも実行されます。ウェブでもデスクトップでも、誰もが好きな言語を使用しています。

0 投票する
3 に答える
23713 参照

android - Androidで音楽ファイル(MP3)のサンプリングレートと頻度を取得するにはどうすればよいですか?

私はアンドロイドでオーディオプレーヤーを開発しています。そのため、再生中の曲の詳細、つまりアーティスト名、継続時間、ビットレート、サンプリング周波数を追加したいと思います。を使用して、アーティスト名と音楽ファイルの長さを取得できますMediaStore.Audio.Media library。しかし、同じファイルのビットレートとサンプリング周波数を取得できません。では、どうすれば同じものを入手できますか?

私が知っているように、それはネイティブライブラリを使用して行うことができます。しかし、方法がわかりませんか?だから誰かがこれについて私を助けることができますか?

0 投票する
2 に答える
89249 参照

android - Android で addr2line を使用する方法

マルチスレッドであり、エラー SIGSEGV でクラッシュするため、デバッグできず、アプリに行き詰まっています。LogCat から多くの情報を取得します。これにより、ネイティブ ライブラリのアドレスが得られます。これらのアドレスを自分のコードに変換できれば助かります。

android-ndk で提供されている addr2line の使い方を知っている人はいますか?

0 投票する
2 に答える
1259 参照

c# - 64ビットOSのインプロセスwmiプロバイダー(32ビット)にネイティブdll(32ビット)を読み込んでいます

[DllImport]を使用してネイティブのサードパーティライブラリをロードするインプロセスのwmiプロバイダーに取り組んでいます。dllの場所はc:\mydllpathに固定されています。dllをロードする前に、プロバイダーのBind()メソッドで現在のディレクトリをdllの場所に設定しました。

Environment.CurrentDirectory = Environment.ExpandEnvironmentVariables( "%SystemDrive%")+ "\ mydllpath";

プロバイダーは「任意のCPU」用に構築され、gacutilおよびinstallexeを使用してインストールされます。

gacutil.exe / if myprovider.dll

installutil.exe myprovider.dll

すべての32ビットWindowsプラットフォームで正常に動作しています。しかし、64ビットプラットフォーム(Windows 7 64ビットで試してみました)では、WMICからテストすると機能しません。しかし、WMIコードクリエーターでテストしたところ、正常に機能していました。

デバッグした後、次のエラーがスローされていることがわかりました。

System.BadImageFormatException追加情報:誤った形式のプログラムを読み込もうとしました。(HRESULTからの例外:0x8007000B)

インターネットからヘルプを検索した後、x86のプロバイダーを構築することが提案されました。しかし、x86で構築されたプロバイダーは次のような別のエラーを出します...

エラー:コード=0x80041013説明=プロバイダーの読み込みエラー機能=WMI

また、/ linkrefコマンドラインスイッチを使用してネイティブdll(実際には2つのdllとsysファイル)を読み込もうとしましたが、/linkrefを使用してsysファイルを読み込めなかったため失敗しました。

テスト用のC#クライアントアプリケーションを作成し、すべてのファイルを同じパスに保持しましたが、正常に機能していました。64ビットインストール用のいくつかの構成が欠落していることを願っています。

どんな助けでも本当にありがたいです、そして前もって非常に感謝します!