問題タブ [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 - 32 ビット コンピューターで VS 2005 を使用して 64 ビット DLL をクロスコンパイルするにはどうすればよいですか?
Visual Studio 2005 を使用して、Windows API を使用して UDP データグラムを送信し、サードパーティ プログラムにフックする単純な DLL を C で作成しました。この場合、サードパーティのコードは 64 ビット用にコンパイルされているため、64 ビット マシンではまったく機能しません。そのため、同じ DLL の 2 つのバージョンを出荷する必要があります。1 つは 32 ビット用、もう 1 つは 64 ビット用です。
ただし、Visual Studio (32 ビット マシンで実行中) から 32 ビット バージョンと同一ではない DLL を吐き出すことができませんでした。プロジェクト プロパティの「マシン」設定が単純に無視されているようです。同僚から、VS 2008 はこのシナリオでのクロスコンパイルを単に拒否すると言われました。これは本当にまったく不可能ですか?
java - コードを書くには、マシンのアーキテクチャを知っている必要がありますか?
単純な問題のためにJava、Python、またはC ++でプログラミングしているとしましょう。これは、TCP/UDPエコーサーバーの構築または階乗の計算である可能性があります。アーキテクチャの詳細、つまり32ビットか64ビットかを気にする必要がありますか?
私見ですが、かなり低レベルのものをプログラミングしているのでない限り、32ビットか64ビットかを気にする必要はありません。どこが間違っているのですか?または私は正しいですか?
c - このビット並べ替えコードのビット操作はどのように機能しますか?
Jon Bentley は、著書「プログラミング パール」のコラム 1 で、ビット ベクトルを使用してゼロ以外の正の整数のシーケンスをソートする手法を紹介しています。
ここからプログラム bitsort.c を取得し、以下に貼り付けました。
関数 clr、set、および test が何をしているかを理解し、以下で説明します: (ここで間違っている場合は修正してください)。
- clr は i 番目のビットをクリアします
- set は i ビットを設定します
- テストは i 番目のビットの値を返します
さて、関数がどのように機能するのかわかりません。これら 3 つの関数で発生しているすべてのビット操作を把握することはできません。
memory - 32 ビット Intel プロセッサでのメモリ アラインメント
Pentium などの Intel の 32 ビット プロセッサには 64 ビット幅のデータ バスがあるため、1 回のアクセスで 8 バイトがフェッチされます。これに基づいて、これらのプロセッサがアドレス バスで発行する物理アドレスは常に 8 の倍数であると想定しています。
まず、この結論は正しいですか?
次に、それが正しければ、データ構造メンバーを 8 バイト境界に揃える必要があります。しかし、これらのプロセッサでは、代わりに 4 バイト アラインメントを使用している人を見てきました。
そうすることをどのように正当化できますか?
java - 32 ビット プロセスを 64 ビット システムで実行する場合、より多くのメモリが必要ですか?
私はかなりメモリを消費するJavaアプリケーションを持っています。Windows XP Professional を搭載した私の 32 ビット システムでは、アプリケーションを指定すると問題なく動作します-Xmx1280m
。以下のすべてがjava.lang.OutOfMemoryError: Java heap space
例外になります。
-Xms1400m
同じアプリケーションを 64 ビットの Windows XP Professional で実行すると (他はまったく同じ) 、OutOfMemory 状態を防ぐ必要があります。
私の理解では、C プログラムがあり、それを 32 ビット用にコンパイルし、64 ビット用にコンパイルすると、64 ビット バージョンではポインタがより広くなるため、より多くのメモリが必要になります。ただし、私の Java の例では、仮想マシン (Sun) は同じで、バイトコードも同じです。
64 ビット マシンでより多くのメモリが必要なのはなぜですか?
c# - .net コンソール アプリ 32 ビットと 64 ビット
64 ビット OS を搭載したマシンを最大限に活用するには、.NET のアプリケーションを 64 ビットでビルドする必要がありますか、それとも 32 ビット ビルドと同様にそれを利用しますか。基本的に、メモリ不足の例外に関する問題があり、問題を解決する「可能性がある」64 ビット ボックスでコンソール アプリを実行することをお勧めします。問題は、64 ボックスをスピンアップして現在のアプリをその上に投入できるか、それとも 64 ビットの方法でアプリを再構築する必要があるかということです。
.net - MSBuild を強制的に 32 ビット モードでコンパイルするにはどうすればよいですか?
MSBuild ( NAnt経由) を使用して、一連のVB.NETアセンブリをコンパイルしています。これらのアセンブリは COM Interop に依存しているため、64 ビット OS 上で 32 ビット モードで動作することを保証する必要があります。Visual Studio でプロジェクトを変更することにより、実行可能アセンブリを 32 ビットにコンパイルできますが、ビルド サーバーですべての実行可能ファイルを強制的に 32 ビット モードにコンパイルできるようにしたいと考えています。
MSBuild に対していくつかのコマンド ライン パラメーターを試してみましたが、うまくいきませんでした。
- /p:プラットフォーム=win32
- /p:プラットフォーム=x86
- /p:プロセッサ アーキテクチャ=x86
私は何を間違っていますか?VB プロジェクトをコンパイルするときに MSBuild が使用するプロパティへの参照はありますか?
python - win32inet.WinHttpGetProxyForUrl を使用する正しい方法は何ですか?
Win32com の開発者によって公開された Microsoft WinHttp ライブラリの機能を使用しようとしています。残念ながら、ほとんどのライブラリは文書化されていないようで、win32com ライブラリを介して win32inet 機能を使用する正しい方法の例はありません。
これは私がこれまでに持っているものです:
ご覧のとおり、私がやろうとしているのは、win32inet 機能を使用して、特定の URL (彼の場合は foo.com) に使用する適切なプロキシを見つけることだけです。
最後の行の構文を修正するのを手伝ってもらえますか? MSN には、ラップされている関数に関する優れたドキュメントがありますが、引数が python ライブラリの引数に完全にマップされていないようです。
このスクリプトの修正版は、次のようにする必要があります。
特定の URL に使用するプロキシを検索できます。
常に Internet Explorer とまったく同じように動作する必要があります (つまり、同じプロキシを使用します)。
これは、有効な Windows XP セットアップで有効である必要があります。つまり、明示的に構成されたプロキシで動作し、プロキシがまったくなくても動作するはずです。
Python 2.4.4 を使用する Windows XP 32 ビットでのみ動作する必要があります。win32com の公式にリリースされたバージョンを使用できます。
Windows XP の Win32Com で Python2.4.4 を使用しています。
更新 0:
または... cTypes での代替実装を教えてもらえますか? それを機能させることができる限り、私は幸せです!
assembly - 32ビットのものの64ビットアセンブリの命令
私は、C で書かれたプログラムを移植し始めており、ljmpのような 32 ビット マシン用の命令を使用してアセンブリで記述されたいくつかのコードを 64 ビット マシンに移植しています。
アセンブリで、32 ビット マシンと 64 ビット マシンの対応する手順を含む場所/ドキュメントはありますか? そうでない場合、32 ビット マシンと 64 ビット マシンのすべての手順をリストしたドキュメントはどこにありますか?
それはかなり明白であるため、私はこの状況の初心者です。いくつかの点を明確にしましょう。
私は非常に初期の OS を移植しています。x86 マシンを念頭に置いて作成されました。今、x86_64で実行したいです。
これは、UNIX を念頭に置いた Linux ボックスで書かれています。元の作者が Intel マシンで書いていることはほぼ確実です。私も Intel を使用していますが、AMD でも OS を実行したいと考えています。
使用するコンパイラは gcc です。
.net - 32 ビット システムと 64 ビット システムの .NET の違いは何ですか?
COM コンポーネントも PInvoke も使用しない純粋な .NET アプリケーションを想像してみてください。ターゲット システムが 32 ビットか 64 ビットかは重要ですか?