2012-11

プログラミング

Releaseビルドでの挙動違い

C++の話になりますが、VisualStudioを使っていて、Releaseビルドしているのに挙動が変わる、ということに何度か出遭ったことがあります。 その挙動が変わるというのが、デバッガ接続している状態でReleaseビルド実行体を実行しているときには正常に動くのに、実行体を単体で実行させたときには不正アクセス等で異常終了する、という感じです。Releas...
プログラミング

VisualStudio2012で古い関数を使う(SDLチェック)

VisualStudio 2012を使っていて、従来でも警告はされていた古い関数群を使用すると、デフォルト設定ではエラーとなることに気付きました。例えば次のような関数です。 strcat strcpy fopen C関数の古くからある物で、Microsoftが末尾 _s が付く関数が用意されているものがその対象となっているように見えます。 これは、プロジェク...
PC環境設定

QNAPのNASでHDD交換

QNAPのNASでHDD交換しようとしてとても焦ったのでメモとして残しておきます。 出遭った現象としては、新規にHDDを挿入しても認識はするもののリビルドが走らない、というものです。 そのときのログメッセージとしては、"Add drive 1 to the volume failed" と記録されていました。 そもそも新規に購入してきたディスクではないのでデ...
OpenGL

GL_INTEL_map_texture 拡張

久々にIntelがOpenGL拡張を出していました。 それは、GL_INTEL_map_texture というもので、内容を読むと GPUが読んでいるメモリ領域を直接CPUからアクセス可能にする拡張のようです。 確かに最近のIntel CPUはGPU統合してしまっており、グラフィックスメモリはすなわちメインメモリなわけで、CPUから直接扱うことが出来るように...
OpenGL

NVIDIA GeForce GTX 650 TiのOpenGL 4.3

Geforce GTX650Tiを装着して現行のドライバを入れて発覚したのですが、公式ドライバ 306.97では OpenGL 4.3 はまだ使えないようです! glGetString( GL_VERSION ) で取得してバージョン表示では、 4.2 となっていました。 カタログ上は以下のように OpenGL 4.3 へ対応をうたっているのですが、もうしば...
DirectX

透明ウィンドウ(半透明ウィンドウ)の話 その3

透明なウィンドウということで、このシリーズも第3回。今回が最後となりそうです。 ようやく Windows7,Windows8両方ともで動かせるやり方が発見できました。 なお、Windows7のAeroGlassOFF状態でも動くので、注意して実装すればWindowsXPでもこの方法でいけるのではないかと思います。 その方法は、レイヤードウィンドウを使う方法で...
PC環境設定

Windows8でG41ドライバがない?

G41のWindows8用ドライバがない 実験機にWindows8をインストールしたのですが、OpenGL動くかな?と思って試してみたところ、GDI Generic状態になっていました。これはまともに動いていない!ということで、デバイスはG41だったのでそれにあわせてWindows7用のドライバを入れようとしました。しかしながら、これが失敗。最低条件を満たし...
未分類

Windows8のブートローダー

Windows8を既に複数のOSが入ったディスクにインストールしてみたら、ブートローダーがさらに変わってた! 以前のようなコンソールの味気ない物に比べると、かなり見栄えがよくなったように思います。 ちなみにこの写真は、自分の動作検証用PCに入れてみたときのものです。検証用なのでいくつものOSを入れてます。 Windows7以降のVHDブートは便利ですね。でき...
プログラミング

VisualStudio2012を入れての不具合?

VisualStudio を過去のバージョンをいくつかインストールしている人は自分だけでは無いと思います。 今回VisualStudio 2012をインストールした後で、過去のVisualStudioがエラーを吐くような状態になってしまい、ちょっと困っていた&解決策を見つけたので、メモがてら書いてみようと思います。 その今回困ったという現象が、VisualS...
プログラミング

透明ウィンドウの話 その2.1

昨日からわかったことが1つ。 どうやら HBITMAPに直接OpenGLから描画する方法は目的からずれることになりそう。 というのも、メモリDCのHBITMAPを対象とした描画だと OpenGLがソフトウェアエミュレーション状態になっているようでした。これじゃシェーダーを使ったものが扱えない。 おおよそ OpenGL 1.2とかその辺のレベルしか機能使えない...