問題タブ [32-bit]
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++ - 64 ビット Windows で 32 ビット アプリが Windows\System32 で提供される 64 ビット アプリを実行できるようにする方法
ユーザーが system32 ディレクトリを参照してプログラムを実行できるようにするアプリがあるとします (telnet など)。
XP以降をクライアントとしてサポートし、2k以降をサーバーとしてサポートする必要がある場合、これをサポートするための最良の方法は何ですか?
これをすべて書いたので、エクスプローラーからコピーするだけで、これを行うためのブラウズを提供するのは時間と労力が多すぎるのではないかと思います。まだ起動する能力が必要です。
Nynaeveに関するいくつかの議論を見つけました。
これまでのところ、次のオプションがあるようです
- Windows で sysnative フォルダーを作成し、64 ビットを参照/実行できるようにします。問題は次のとおりです。
- Vista/Longhorn でのみ利用可能なため、XP 64 はサポートされていません
- 複数のバージョンで同じパスを使用することはできません。
- アプリだけでなく、ウィンドウ全体でアクティブになります
- アプリのインストール時に行うのは適切ではない可能性があります (おそらく適切ではありません)
- 32 ビット バージョンと 64 ビット バージョンがある場合、起動するアプリのバージョンのみをパスを介して明示的に指定できます。
- Windows API を使用して、ファイル リストを表示するとき、またはユーザーがコマンドを実行するときにリダイレクトを一時的に無効にします。問題は次のとおりです。
- 64 ビットでのみ利用可能 - GetProcAddress をいじる必要があります
- 特定のサービス パックでのみ使用可能
- これを実装する必要があるすべての場所を個別に特定する必要があります
- ユーザーは、これが 64 ビット アプリか 32 ビット アプリかについて、個別の情報を提供する必要があります。
XP/Vista 用にネイティブに表示され、64 ビット system32 ディレクトリの表示を可能にする Windows OpenFile ダイアログ (MFC CFileDialog を使用するなど) を表示するサンプル コードがあれば、それは素晴らしいことです。
名前付きアプリを起動する例があれば、それも素晴らしいでしょう!
編集:
現在、アプリの起動に CreateProcess を使用しています (これは失敗しています)。
c++ - 同じマシン上の libstdc++ 64 ビットおよび 32 ビット バージョン
ソフトウェアのバージョンを 64 ビット プラットフォーム用にクロス コンパイルしようとしています。Linux のインストールが壊れる心配をせずに、32 ビット版と 64 ビット版の libstdc++ を同じマシンにインストールできますか。Osは32ビットのubuntuです。
以前にクロスコンパイルしたことがなく、CFLAGS と LDFLAGS を適切な CPU に設定した場合、正しいバージョンの libstdc++ がインストールされていれば問題ないことを確認したかっただけです。
ubuntu の 64 ビット バージョンを確認しましたが、これにはシンボリック リンクがあります
lib64 -> lib
これが 32 ビット マシンに当てはまる場合、これはかなり混乱します。これを並べ替える方法を知っている人はいますか?
現在、次のエラーが発生しています
などなど
これは、libstdc ++の64ビットバージョンを持っていないことが原因のようです
c - 32 ビット DB2 と 64 ビット DB2 に同時に接続する C / C++ プログラム
32 ビットと 64 ビットの両方の DB2 実装で同時に動作する *IX オペレーティング システムで C / C++ プログラムを正常に作成できますか?
正確な要件は、32 ビット DB2 データベースから読み取り、64 ビット DB2 データベースに書き込むことです。
.net - プラットフォームにとらわれない .NET ビット数 - OS または呼び出し側アプリケーションから?
プラットフォームにとらわれない .NET アプリケーションは、オペレーティング システムのビット数に合わせて "浮き上がる" ことを知っています。しかし、実行可能ファイルではなくライブラリである .NET アセンブリが、.NET 以外のアプリケーションから呼び出される場合はどうでしょうか。
SQL Server 2005 用の CLR 拡張ストアド プロシージャである .NET DLL があります。現在、これはプラットフォームに依存しません。拡張ストアド プロシージャが、64 ビット Windows で実行されている 32 ビット SQL Server インスタンスから呼び出されるとどうなりますか?
java - Java 64 ビットのパフォーマンスは 32 ビット バージョンよりも優れていますか?
Sunが 64 ビット バージョンの Java を提供していることに気付きました。32 ビット版よりもパフォーマンスが優れていますか?
gcc - i386 用の crti.o のビルド
x86_64 がホストで i386 がターゲットのクロスコンパイラを構築しようとしています。(すべて共通) crti.o: No such file エラーが表示されます。ディストリビューションから既にビルドされた crti.o と crtn.o を取得する代わりに、これらのファイルを glibc (または gcc) ソースから明示的にビルドするにはどうすればよいですか?
参考までに、x86_64 コンパイラの -m32 オプションについてはよく知っています。32ビットのみのコンパイラ環境があればいいのにと思います。また、膨大な数の既にビルドされている i386 コンパイラを使用したくない理由は、テストのニーズに応じて glibc/binutils/gcc のバージョンを混在させて一致させることを計画しているためです。
ありがとう、チェンツ
64-bit - 32 ビット プログラムで 64 ビット ドライバを使用する。ウィンドウズ
これは中途半端なプログラミングの質問です。まず、PCI-Express カードと 32/64 ビット ドライバを用意しました。ターゲット オペレーティング システムは、Windows 64 ビット システムである必要があります。Vista64 では、すべてのドライバーが認定された 64 ビット ドライバーでなければならないことを読みました。これは 64 ビット オペレーティング システムでの一般的な制限ですか? これは "XP 64" または任意の Linux システムにも適用されますか?
簡単にするために、Vista64 で PCIe カードに 64 ビット ドライバを使用し、カードの機能を使用するための 64 ビット DLL がたくさんあるとします。反対側には、PCIe デバイスを使用する必要がある大規模なレガシー 32 ビット exe プログラムがあります。プログラムを 64 ビットに変換するのは、本当に大変な作業です。
では、その 32 ビット プログラムと 64 ビット ドライバーを組み合わせるにはどうすればよいでしょうか? 32/64 ビット バイナリと DLL を混在させることはまったく不可能であると読みましたが、これは私には信じがたいことです。32ビットアプリ内からVista64でドキュメントを印刷できると確信しており、Windowsはこれを何らかの形で64ビットプリンタードライバーにラップします。
64-bit - Windows での 64/32 ビット標準ドライバーの変換
質問は基本的にこのスレッドのフォローアップです: 32 ビット プログラムで 64 ビット ドライバーを使用する。ウィンドウズ
64 ビット DLL のセットで使用される 64 ビット ドライバーを使用しているときに学んだように、32 ビット プロセスで DLL を呼び出すことはできません。これを回避するために、いくつかの面白いインターポーズ通信を使用します。
グラフィックス カードのような「標準デバイス」を使用している場合に、64 ビットから 32 ビットへの自動変換がどのように行われるかは不明です。Windows 64 ビット OS の 32 ビット アプリケーションは、プリンター ドライバーを使用したり、いくつかの Windows DLL を使用して GDI で何かを描画したりできるはずです。Microsoft は、グラフィックス カードまたはプリンタ用に 32 ビットから 64 ビット ハードウェア ドライバに変換する必要がありました。WoW64 がレジストリとファイル システムへのアクセスを行うことは知っていますが、標準ドライバーにも変換されますか?
具体的な質問は、ハードウェア用の 64 ビット WDM ドライバーがある場合、Windows が 64<->32 の変換を行うことで、これを 32 ビット アプリケーションで簡単に使用できるかということです。
asp.net - 64 ビット オペレーティング システムで Microsoft Chart Control を使用できない
64 ビット マシンでチャート コントロールを実行すると問題が発生します。次のエラーが表示されます...
ファイルまたはアセンブリ 'AspnetChart' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。
これを実行しているマシンは、Windows Server 2003 Enterprise x64 Edition SP2 Intel(R) Xeon(R) CPU E5405 @ 2.00 GHz w/ 4.00 GB RAM です。
チャート コントロールは、32 ビット Windows XP Professional SP3 および Windows Server 2003 Standard Edition SP2 マシンでは正常に動作しますが、64 ビット マシンに展開すると動作しません。
プラットフォーム ターゲットを x86 に変更しようとしましたが、うまくいきませんでした。また、dll に署名して GAC に入れてみましたが、役に立ちませんでした。
ご意見、ご提案はありますか?