問題タブ [win64]
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.
manifest - msvcp90.dll は間違った msvcr90.dll に依存していますか?
VS2008 (amd64) でビルドされた dll プロジェクトがあります。dllのマニフェストは言う
dll を DependencyWalker にロードすると、winsxs-directory が参照されます。
どうすればそれが起こりますか?このマニフェスト全体は、すべての dll/exe にどのバージョンでビルドされているか、したがって依存する CRT バージョンの情報を与えることで、そのような状況を回避するためのものではありませんか?
2 つ目は、msvcp90.dllがmsvcr90.dllに依存しているにもかかわらず、msvcr90.dll が見つからないということです!?! ねえ、それは msvcm90.dll と msvcp90.dll と一緒に同じ winsxs ディレクトリにあります! 私のdllと同じディレクトリに正しいmsvcr90.dllをコピーすると、動作します! (しかし、繰り返しになりますが、これは DllHell 時代の状況ではありませんか? そして、マニフェストがあるので、msvc*.dll のコピーは終了するべきではありませんか???)
誰かが私に説明をしてくれたら、本当に感謝しています!
visual-c++ - Visual C++ 仮想カメラ アプリケーションが 64 ビット Windows で動作しない
64 ビット Windows 用の Visual C++ で仮想カメラ アプリケーションを実装しようとしています。DirectShow フィルターを使用してビデオ キャプチャ デバイスをエミュレートする tmhare.mvps.org/downloads/vcam.zip のコードから始めました。32 ビットの Windows では問題なく動作しますが、64 ビットの Windows では動作しません。Visual C++ プロジェクトを次のように変更しました。
dll は正常に登録され、regedit は仮想カメラの 3 つのキーを表示します
ただし、Skype も Windows Live Messenger も、64 ビット Windows ではカメラを認識しません。
私は何を間違っていますか?Win64 には 64 ビット アプリケーション用の HKEY_LOCAL_MACHINE\Software\Classes\CLSID{guid} と 32 ビット アプリケーション用の HKEY_LOCAL_MACHINE\Software\Wow6432Node があることは理解していますが、コードを 64 ビット アプリケーションとしてコンパイルしているため、そのキーがレジストリの右側の部分に配置されていること。サンプルとして使用できる 64 ビット ウィンドウ用の DirectShow 仮想カメラ フィルターの実装はありますか (32 ビット ウィンドウ用のものしか見つかりませんでした)。
win64 - 別のマシンの win 64 でアプリケーションを実行できない
MS VC++ 2008 でアプリを作成しています。
win32 では、私のアプリケーションは VC++ のないマシンでは正常に動作しますが、64 ビットとしてコンパイルされたバージョンは動作しません。
このエラーが発生しています:
リリースとしてコンパイルしています。ターゲット プラットフォームは x64 で、ランタイム ライブラリはマルチスレッド (/MT) として選択されています。
ユーザーに追加の VC Redist をインストールしてほしくありません。必要なすべてのライブラリをアプリに静的にリンクしたいだけです。
多分 VC のある種のバグ?(VC SP1 を取得)
windows - Delphi コードの 64 ビットへの移植 - コンパイラの警告が表示されないのはなぜですか?
64 ビットに移植したい大きな Delphi XE コードベースがあります。
Delphi XE2 ライセンスを所有していますが、64 ビット プラットフォームでデータ損失につながる有効な 32 ビット構造を検出するのに役立つ警告やヒントが見つかりません。たとえば、32 ビット コンパイラで完全に有効だったTHandleからCardinalへの割り当ては、Win64 用にコンパイルするときに警告を発しません。
Delphi 2009 で Unicode に移行したとき、疑わしいコードを追跡して修正するのに役立つ大量の警告がありました。XE2 では、何も見つかりません。すべてのコードを手動でレビューすることを避けるために、コンパイラ レベルで統合されたものは何もないとは思えません。
私は何かが恋しいですか?試した場合、どのようにプロジェクトを 64 ビットに移植しましたか?
ありがとう !
delphi - Delphi XE2: Win64 プラットフォーム用に ASM メソッドを変換する
Win64 プラットフォーム用のパスカル ユニットをコンパイルしようとすると、エラーが発生します。メソッドには ASM ブロックが含まれています。Win64 プラットフォームで動作させる方法がわかりません:
方法 1:
方法 2:
open-source - 64 ビット Windows 用の pthread のソース
Win32/Win64/Linux/MacOSX でビルドする必要があるオープンソース プロジェクトがあります。
マルチスレッド パラダイムをサポートするために pthread を使用したいと考えていますが、私のプロジェクトはオープンソースであるため、すべてをソースからビルドする必要があります。そのため、Win64 でコンパイルされるバージョンの pthreads のソース コード ファイルが必要です。
上記のファイルを見つけることができる場所を知っている人はいますか?
windows - Windows メッセージをトラップするにはどうすればよいですか?
Pwn16というプログラムを作っています。Intel 8086/Pentium プロセッサと DOS/Win3.x/Win98 システムをエミュレートすることにより、16 ビット アプリケーションを 64 ビット システムで実行できます。Pwn16 は、Windows が「16 ビット互換ではない」メッセージ (CMD からのメッセージを含む) を表示したことを検出する小さなローダー プログラムを使用し、そのメッセージが呼び出されたことに気付くと、それを閉じて、代わりに自動的に Pwn16 を起動します。これらのメッセージを「キャプチャ」して、エラーの代わりに別のことを実行できるライブラリはありますか? 私はこれのほとんどを VB6 で作成しているので、これを実行できるコードも役に立ちます。エミュレーションと GUI を停止しました。あとはこのローダーを完成させるだけです。キャプチャする必要があるメッセージ:
「このファイルのバージョンは、実行中の Windows のバージョンと互換性がありません。コンピューターのシステム情報をチェックして、プログラムの x86 (32 ビット) または x64 (64 ビット) バージョンが必要かどうかを確認してから、ソフトウェアの発行元に連絡してください。」
「サポートされていない 16 ビット アプリケーション: 64 ビット バージョンの Windows との互換性がないため、プログラムまたは機能 '(ファイル)' を開始または実行できません。64 ビット Windows 互換バージョンが利用可能かどうかについては、ソフトウェア ベンダーにお問い合わせください。」
「これは有効な Win32 アプリケーションではありません。」
「(ファイル) アプリケーションは Win32 モードでは実行できません。」
ありがとう。
ipc - メモリ マップされたファイルが常に RAM にあることを確認する方法
コンテンツが常にRAMに保持され、ページファイルにフラッシュされないことを保証して、プロセス間通信用のメモリマップファイルを作成することは可能ですか?
私は現在、オーダーメイドの OLAP アプリに取り組んでいます。コアとなるアイデアは、すべてのデータを含むメモリ バンクのような 1 つのプロセスと、実際に計算を行う複数のワーカー プロセスを持つことです。通常、すべてが非常にスムーズに機能しますが、ワーカーがしばらく使用されていないファイルの一部にビューを作成しようとすると、パフォーマンスが低下することがあります-したがって、私の質問です。
RAM の量は問題ではありません (Windows/64 ビット)。システムがページ ファイルを使用するのを停止できるかどうかはわかりません。
python - OS が Python で 16 ビット exe をサポートしているかどうかを検出するにはどうすればよいですか?
これは基本的に、64 ビット バージョンの Windows で実行していることを検出する方法を尋ねるのと同じです。
os.name
win7 64 と winXP 32 の両方で「nt」が表示されます (使用可能な 2 台のテスト コンピューター)。
sys.platform
これらの場合の両方で「win32」を返します。
これまでに見つけた唯一の方法は、レジストリ キーを確認することでHKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier
あり、「x86」が表示されない場合は、64 ビット ウィンドウを意味すると想定します。それは信頼できますか?
(python プロセスは python 2.7 32 ビットで実行する必要があります)
c++ - 静的libのアセンブラプロシージャを外部DLLのdllexportとしてどのように公開しますか?
インラインアセンブラは64ビットVC++(2010)でサポートされていないため、最近、インライン関数の70ページの静的C++ライブラリをストレート64ビットアセンブラ静的ライブラリに変換しました。静的ライブラリを含む64ビットDLLは、エラーなしでビルドされ、asm関数に正しくリンクされます。ただし、EXEをDLLにリンクしても、asm関数は表示されず、参照されるすべての一意のシンボルに対してLNK2001:未解決の外部シンボルエラーが発生します。
静的ライブラリアセンブラコードは次のようになります。
静的ライブラリを含むDLLは次のように宣言します。
DLLにリンクするEXEは次のように宣言します。
私は全体で_cdeclを使用し、どこでもC++コードとしてコンパイルしています。試すことが不足していますが、ここで何が欠けていますか?可能であれば、これに.DEFファイルを追加することは避けたいと思います。