2007-01-01から1年間の記事一覧

[software] TCHARはcharかwchar_tか

よく知られているように、Windows CE環境はAPIがUnicodeしかサポートしていない。そのため、eVCで開発をする際、普通は_UNICODEが定義された状態であり、TCHARはwchar_tである。 また、Windows XP環境はANSIもUnicodeもサポートしており、デスクトップ上のWi…

[software]dlsym、GetProcAddressとname mangling

上でCとC++間での関数呼び出しの際にname manglingが壁になることを述べたが、C++で閉じている環境ではそんなことを普通は気にしなくていい。が、マイクロソフトの言う「明示的リンク]」というやつを使う場合は別だ。「明示的リンク」とはdlsymやGetProcAddr…

[software]extern "C"

overloadを可能にし、またリンク時の引数チェック(コンパイル時ではなく)も可能にするname manglingであるが、C++とCを混ぜて使う場合にはちょっとやっかいなことになる。何も捻らずまじめに考えるとCで記述されたコードからC++の関数を呼ぶためには、C側でn…

[software]C++でDLL (Windows CE)

過去経験したことで、いくつかC++でWindows CE向けのDLLを作成するに当たってはまったことがあったので、何日かに分けてそれを書いておこうと思う。 まずは、Windows CEに限った話ではないのだけど、C++ということでname manglingについてのお話。一般的に、…

automake & autoconf 続き

さて、例として簡単なQt/EmbeddedをリンクするDLLを作ってみることにする。組込み向けっぽくクロスコンパイルする。 ソース類はこんな感じ。 $ cat src/hoge.cpp #include #include "fuga.h"QPushButton * hoge() { QPushButton *button = new QPushButton("…

automake & autoconf

automake & autoconfは言わずとしれたUNIXプラットフォームでのソフトウェア開発支援ツールだ。 ざっくり言うと、 autoconf Makefile中の環境依存部分を半自動検出するconfigureスクリプトを生成するツール。 configureスクリプトはMakefile.inをMakefileの…

方針

方針 ソフトウェア開発でぶちあたったことなどを時々書き綴る備忘録