読者です 読者をやめる 読者になる 読者になる

metal-modeを書いた

長い間, EmacsでmacOS, iOS用にMetalのshaderを書くのにc++-modeを使っていたけれど, 主にキーワードがハイライトされないのにイラっとしたので, カッとなってmetal-modeを書いた. github.com

Mavericksにしたら/usr/includeが消失していた件

表題の通り。ハマった。 xcode-select --install これで入る。 ついでに、antなどもなくなっており、結構被害が大きいかもしれない……。

Lua5.2でluaの函数内にてエラった時にtracebackを取得するには

Luaを自分のプログラムに組み込んでなんやらしている時に、 local function g() prin("hoge") -- 本当はprint("hoge")と書きたかった. end local function f() g() end f() というコードがあるとして、これを実行するために、 int error_code = lua_pcall(L,…

ゲーム開発とSTL

コンシューマ向けゲーム開発に携わって結構な年数が経過しました。 これまでは恵まれていたのか、STLを使える環境にいた*1ので特に気にしていなかったのですが、どうやら場所によってはSTLはゲーム開発向きではないらしく使用を禁止される事もあるようです。…

#importを使わずにExcel Automation

タイトルについて、実装例を書こうかと思ったけれど、面倒臭くなったのでマイクロソフトのサポートサイトへのリンクをぽつんと貼っておきます。 MFC または #import を使用せずに C++ から Excel を自動化する方法 実装する上での注意点として、CLSIDFromPro…

(Free)GLUTのWindow Procedureをこっそり入れかえる

GLUTはライブラリ内でWindowのあれこれを隠蔽しているため、そのままだとメニューを入れたり、別途コントロールを突っ込んだりすることがそのままでは難しいです。 ですが、あらゆるWindow Handleを奪いとる事ができるWindowsでは、EnumWindowsというAPIを使…

WinMain函数をエントリーにしない方法

各プラットフォームで互換性のあるプログラムを書こうとする場合にどうしても邪魔になるのが、WinMain函数。他のプラットフォームは大概main函数をエントリーとして使っているのに、Windowsだけ、WinMain函数を使わなければなりません。 これがとても鬱陶し…

続・Alignment

この前の続き。隣のプログラマが原因と解決策を突き止めた。 これは、"__declspec"というキーワードの仕様と、STLのコンテナ類のテンプレートパラメータをインスタンス化する時に起きるVCコンパイラの仕様が悲しいほど残念である事から生じる問題であった模…

Alignment

structやclassにアラインメントを適用したい場合に色々ハマった。というかハマっている。 gccの場合、structやclassにアラインメントを適用したい場合は以下のようになる。 struct __attribute__((aligned(16))) THoge { char FHoge[8]; }; struct TFoo { ch…

爆弾付けちゃダメなんだからねっ

さてさてさて。 先日、"Visual C++"ではBOM付きのUTF-8を使わないとWARNINGが出るという話をしましたが、このBOM付きUTF-8で記述されたソースコードをMinGW(というかgcc)でビルドしようとするとどうなるでしょーか。 $ make main.cpp:1: error: stray '\239'…

爆弾付けないとダメなんだからねっ

"Visual C++"(以下VC++)と"WTL"でWindowsのプログラミングを組んでいた時の事。VC++はビルド+デバッグ用でコーディングはEmacsを使っているのだけれども、EmacsでC++のコードを書く時のデフォルトの文字コードがUTF-8。 さて、この状態でビルドすると、緩く…

MinGWにおけるWINVER

MinGWを使ってプログラムを構築中に、getaddrinfo()が見つからないというエラーにでくわした。なんやかんやで色々調べた結果、windef.hに定義されているWINVERマクロの数値が0x400になっているのが原因である事が判明。ちなみにOSはWindowsXP SP3。0x400なわ…

MinGW gccでDLLをbuild

GUIツールを作る時、自分はDelphiを使った方が圧倒的に効率がいいので常にそうしているのだけれど、保守する事を考えた時に自分以外の人が使えない言語っていうのもまずいかなと思い始めたわけだが、かといってDelphiを使わないようにすると圧倒的に効率が下…