問題タブ [x86-64]
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.
c# - 実行時に 32 ビット/64 ビット ライブラリをレイト バインドする方法
ここで説明したものと似ていますが、微妙に異なる問題があります(アセンブリとその依存関係の読み込み)。
顧客に販売する 3D レンダリング用の C++ DLL があります。.NET ユーザーの場合は、CLR ラッパーを使用します。C++ DLL は 32 ビット バージョンと 64 ビット バージョンの両方でビルドできますが、これは、CLR が特定の DLL にバインドされるため、2 つの CLR ラッパーが必要であることを意味すると思いますか?
ここで、顧客が 32 ビットまたは 64 ビットの .NET アプリを持っていて、それが純粋な .NET アプリであるため、単一のアセンブリ セットからそれを解決するために CLR を離れるとします。問題は、アプリ コードが実行時に 32 ビットと 64 ビットの CLR/DLL の組み合わせを動的に選択するにはどうすればよいかということです。
さらに具体的には、前述の質問に対する提案された回答はここでも適用できますか (つまり、ResolveEvent ハンドラーを作成します)?
.net - 同じソリューション/プロジェクトでVisualStudioを使用して32ビットと64ビットの両方をターゲットにする
マルチターゲティング用にVisualStudioビルドをセットアップする方法について少しジレンマがあります。
背景:サードパーティの32ビットDLLへのp /invokingを備えたc#.NET v2.0、セットアッププロジェクトを備えたSQL Compactv3.5SP1。現在、プラットフォームターゲットはx86に設定されているため、Windowsx64で実行できます。
サードパーティの会社がDLLの64ビットバージョンをリリースしたばかりで、専用の64ビットプログラムを作成したいと思います。
これは私がまだ答えを得ていないいくつかの質問を提起します。まったく同じコードベースが欲しい。32ビットのDLLセットまたは64ビットのDLLのいずれかを参照してビルドする必要があります。(サードパーティとSQL Server Compactの両方)
これは、2つの新しい構成セット(Debug64とRelease64)で解決できますか?
2つの別々のセットアッププロジェクト(標準のビジュアルスタジオプロジェクト、Wixやその他のユーティリティなし)を作成する必要がありますか、それとも同じ.msi内で解決できますか?
任意のアイデアや推奨事項を歓迎します。
.net - 再コンパイルせずに「x86」として実行するように WinForms アプリを構成できますか?
「任意の CPU」用にコンパイルされた WinForms アプリを、アプリを再コンパイルせずに 64 ビット サーバー上で「x86」として実行するように構成できますか? 具体的には、この目的を達成するための app.config 設定またはコントロール パネル アプレットを探しています。お客様のクライアントはすべて x86 ですが、サーバーは x64 です。管理者がシステムを構成および監視できるように、サーバーに WinForms アプリをインストールしたいと考えています。サーバーのためだけに再コンパイルしたくはありません。
.net - Windowsの64ビットプロセスに32ビットDLLをロードできますか?
最近、ac#Windowsサービスを64ビットの.netプロセスとして実行するようにアップグレードしました。通常、これは簡単なことですが、システムはC++で記述された32ビットDLLを使用します。このDLLを64ビットに変換するオプションはないため、DLLを別の32ビット.netプロセスでラップし、リモート処理を介して.netインターフェイスを公開しました。
これは非常に信頼できるソリューションですが、システムを単一のプロセスとして実行することをお勧めします。32ビットDLLを64ビットプロセスにロードして直接アクセスする方法はありますか(おそらく、ある種のサンクレイヤーを介して)?
.net - .NET アセンブリが x86 または x64 用にビルドされたかどうかを確認するにはどうすればよいですか?
.NET アセンブリの任意のリストを取得しました。
各 DLL が (x64 または任意の CPU ではなく) x86 用にビルドされているかどうかをプログラムで確認する必要があります。これは可能ですか?
python - Python ctypes と関数呼び出し
私の友人は、x86 で動作する小さな概念実証アセンブラーを作成しました。x86_64 にも移植することにしましたが、すぐに問題が発生しました。
私は C で小さなプログラムを書き、そのコードをコンパイルして objdump しました。その後、それを Python スクリプトに挿入したため、x86_64 コードは正しいです。
では、このスクリプトを実行するたびにセグメンテーション違反が発生し続けるのはなぜですか?
mprotect と実行フラグがないことについてまだ質問があります。バッファ オーバーランなどのほとんどの基本的なセキュリティ エクスプロイトから保護すると言われています。しかし、それが使用されている本当の理由は何ですか? .text に到達するまで書き続けてから、素敵な PROT_EXEC エリアに命令を挿入することができます。もちろん、.text で書き込み保護を使用しない限り
しかし、なぜその PROT_EXEC がいたるところにあるのでしょうか。.text セクションが書き込み保護されていると、非常に役立ちませんか?
gcc - gcc を使用して x64 コンピューターで x86 アセンブリ コードをコンパイルするにはどうすればよいですか?
学校の課題では、x86 アセンブリ コードを作成する必要がありますが、私のコンピューターは x64 マシンであり、gcc は x86 コードのみを想定しているため、gcc を使用してコンパイルすることはできません。gccにx86アセンブリコードを受け入れさせるコマンドはありますか? ありがとう
PS x86マシンで問題なくコンパイルされるため、コードが有効であることはわかっています。
.net - System.BadImageFormatException: ファイルまたはアセンブリを読み込めませんでした (installutil.exe から)
InstallUtil.exe を使用して Windows サービスをインストールしようとしていますが、エラー メッセージが表示されます
{xxx.exe}
System.BadImageFormatException: ファイルまたはアセンブリ ' ' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
何を与える?
編集:(OPによるものではありません)dupから抽出された完全なメッセージは、より多くのヒットを取得しています[Googleability用]:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe C:\xxx.exe Microsoft (R) .NET Framework インストール ユーティリティ バージョン 4.0.30319.1 Copyright (c) Microsoft Corporation. 全著作権所有。
インストールの初期化中に例外が発生しました: System.BadImageFormatException: ファイルまたはアセンブリ 'file:///C:\xxx.exe' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました..
msbuild - msbuildで32ビットの「プログラムファイル」ディレクトリを使用する
64ビットバージョンのWindowsでは、32ビットソフトウェアが「c:\ programfiles(x86)」にインストールされます。これは、$(programfiles)を使用して(32ビット)ソフトウェアへのパスを取得できないことを意味します。したがって、MSBuildプロジェクトでこれを克服するには、$(ProgramFiles32)が必要です。実行しているOSに応じてプロジェクトを変更したくありません。
投稿する解決策がありますが、もっと簡単で良い方法があるかもしれません。
open-source - x86 用のオープン ソース リアルタイム オペレーティング システムはありますか?
オープンソースのリアルタイム オペレーティング システムはありますか? リアルタイム Linux のことは聞いたことがありますが、ほとんどの実装は、Linux をプロセスとして実行するプロプライエタリな RTOS (有料) のようです。これは、Ardence の RTX リアルタイム システムが Windows で動作するのとほぼ同じです。
編集: マルチコア x86 ファミリー CPU で動作する RTOS を探していることを明確にする必要があります。