2010-05-29から1日間の記事一覧

カスタムビルドステップを使ってVC++のソリューションにflexによるソース生成処理を統合する

VC++でflexで生成したソースをコンパイルできることがわかったので、flexによるソース生成→ソリューションのビルドを一連の流れで実行できるように、カスタムビルドステップを定義してみた。まず、仮に"test++.l"というflexの入力ファイルがあるとして、それ…

CComSafeArrayを使って生成した配列を返すCOMのメソッド

CComSafeArrayクラスを使うと、以下のように簡単にSAFEARRAY構造体を簡単に扱うことができる。 STDMETHODIMP CHoge::get_Array(VARIANT* pVal) { VariantInit(pVal); pVal->vt = VT_ARRAY | VT_BSTR; CComSafeArray<BSTR> psa; psa.Add(ComBSTR("hoge")); psa.Add(</bstr>…

flexで生成したソースコードをVC++(VisualStudio2008)でビルドする方法

flexで生成したコード(lex.yy.cc)をVC++で普通にビルドしようとすると、"unistd.h"が無い ということで怒られる。コードを見ると、コンパイルオプションでその"unistd.h"のincludeを無効化できるっぽい。 #ifndef YY_NO_UNISTD_H /* Special case for "unist…