ルートディレクトリにあるのがすごい気持ち悪かったので調べてみたら、どうやらバグの模様。 The Msdia80.dll file is installed in the root folder of the boot drive when you install the Visual C++ 2005 Redistributable Package by using the Vcredist_x64.exe file or the Vcredist_ia64.exe file そして手順取りに実行するも解決しない罠 orz というわけで色々調べてたら、どんぴしゃなページを発見。 Ultimate FIX to msdia80.dll problem: VC++, x64 Vista / W7 これ通りやったら綺麗さっぱり治りました。 ※) レジストリの手動変更を伴なう作業なので、最悪の場合
粗忽な性格の筆者の場合、Windows 上であるプログラムの 32 ビット版・64 ビット版のふたつを開発していると、ときどき「あれ、このバイナリはどっちだっけ??」という状態になることがあります。開発を行っているプラットフォームが 32 ビットであればクロスコンパイルした 64 ビットバイナリをそのまま実行することはできないためパッと判別できますが、64 ビット環境だとかしこい仮想機構 (WOW64: Windows 32bit On Windows 64bit) のおかげで 32ビットコードもすんなり実行できてしまうので逆にちょっと面倒です。 64 ビット環境の場合は所定のバイナリを実行してタスクマネージャで確認すれば、32 ビットプロセスならプロセスイメージ名の末尾に「*32」の符丁が表示されるためそれで見分けることもできますが、わざわざそのためにプロセスを起動するというのも何だか妙
The WCT API works its magic by looking at whether a thread is waiting in a blocking call. If the thread is on a blocking call, it looks up the object the thread is blocking on and determines, if appropriate, the name of the object and which thread or process owns that object. For example, if thread A is waiting on process B to complete execution and process B calls SendMessage to process A, you ha
NTOS | 23:31 | 例外ハンドリング64 ビット版で追加されたものを含めて、次の例外処理機構が存在します。 Structured Exception Handling (SEH) Vectored Exception Handling (VEH)このうち VEH は Windows XP 以降でのみ使用可能なもの、SEH はすべての Windows で使用可能なものです。このうち、SEH から解説します。 Structured Exception Handling (SEH) とその仕組み (32 ビット x86 版)SEH においては、特殊なメモリ領域へ書き込みを行うことでそのハンドリングを行います。これらのハンドリングは、原則としてスタックベースで行われます。(スタック以外の場所にハンドルポインタを置くこともできるが、これは意図的に行わない限り行われない。)Windows の
Windows における例外ハンドリング - @a4lg の準技術的日記 すごくまとまってました.個人的に印象深かったのはこの辺. 実は、x64 版 Windows 用のバイナリにおいては、fs:[0] に例外ハンドリング構造体へのポインタを設定するなどという行為は一切行いません。というより、コード上には、例外をハンドルする如何なる追加コードも存在しません。これは、例外ハンドリングを行わない場合のプログラムには一切オーバーヘッドが存在しないということを意味します。 Windows の細かい部分まで見てみると,64-bit プロセスのみ影響を受ける仕様というのがいくつかあって,今回のケースもそのひとつですかね.64-bit アプリケーションの場合,「従来から存在するバイナリ」というのが存在しないので,互換性に悩まされることなく 32-bit 時代の仕様をリセットできる,と. Windows
Windows 7 では,互換性に配慮した形で API の仕様を変更する仕組みが導入されました. <compatibility> という要素がマニフェストファイルのスキーマに追加され,Windows Vista 相当の動作と,Windows 7 で改良された動作のどちらを期待するかが選択できるようになっています.(ただし API ごとの動作選択はできず,あくまでどちらの OS でテストしたかという表明のような形になります) Windows 7/Server 2008 R2のプログラムだと宣言する - 新日々此何有哉 Application Manifest - MSDN Library たとえば,Windows 7 コンテキストを指定することで変わる API 動作のうち,DirectX に関係するものとしては,DirectDraw 経由での Front Buffer への描き込みが大きく制
はなおか じった 世界遺産の近くに住んでます。 Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011 x64 環境なのかどうかの判定をする方法。 OS のバージョンを見ても、x64 なのかどうかはわかりません。例えば、32ビット版 Windows XP のバージョンは 5.1 ですが、64ビット版の場合は 5.2 になります。しかし、Windows Server 2003 も、5.2 です。なので、別の方法で調べます。 MSDN を調べると、IsWow64Process 関数(英語)が見つかります。しかし、「64ビット OS 上で動く64ビット アプリケーションの場合は、この関数は FALSE を返す」のだそうです。一応、それなりに作り込めば、32ビット アプリケーションと64ビット アプリケーションは、同じコー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く