2007-01-01から1年間の記事一覧
よく知られているように、Windows CE環境はAPIがUnicodeしかサポートしていない。そのため、eVCで開発をする際、普通は_UNICODEが定義された状態であり、TCHARはwchar_tである。 また、Windows XP環境はANSIもUnicodeもサポートしており、デスクトップ上のWi…
上でCとC++間での関数呼び出しの際にname manglingが壁になることを述べたが、C++で閉じている環境ではそんなことを普通は気にしなくていい。が、マイクロソフトの言う「明示的リンク]」というやつを使う場合は別だ。「明示的リンク」とはdlsymやGetProcAddr…
overloadを可能にし、またリンク時の引数チェック(コンパイル時ではなく)も可能にするname manglingであるが、C++とCを混ぜて使う場合にはちょっとやっかいなことになる。何も捻らずまじめに考えるとCで記述されたコードからC++の関数を呼ぶためには、C側でn…
過去経験したことで、いくつかC++でWindows CE向けのDLLを作成するに当たってはまったことがあったので、何日かに分けてそれを書いておこうと思う。 まずは、Windows CEに限った話ではないのだけど、C++ということでname manglingについてのお話。一般的に、…
さて、例として簡単なQt/EmbeddedをリンクするDLLを作ってみることにする。組込み向けっぽくクロスコンパイルする。 ソース類はこんな感じ。 $ cat src/hoge.cpp #include #include "fuga.h"QPushButton * hoge() { QPushButton *button = new QPushButton("…
automake & autoconfは言わずとしれたUNIXプラットフォームでのソフトウェア開発支援ツールだ。 ざっくり言うと、 autoconf Makefile中の環境依存部分を半自動検出するconfigureスクリプトを生成するツール。 configureスクリプトはMakefile.inをMakefileの…
方針 ソフトウェア開発でぶちあたったことなどを時々書き綴る備忘録