2010年12月29日水曜日

Eclipse:C/C++開発ツールCDTのインストール

WindowsでOpenCVを使っての開発をVC++でやっていましたが、Eclipseでも出来るようにEclipse(Helios)をダウンロードしてみました。いろいろ後で追加したいのでここからClassic版をダウンロードしました。その後、C/C++の開発環境であるCDTをインストールします。Eclipseを立ち上げて、software updateでここに書いてある

http://download.eclipse.org/tools/cdt/releases/helios

を指定してCDTをインストールします。CDT自身にはCコンパイラなどが入っていませんので、Windows環境で使えるコンパイラを入れます。僕はminGWにあるg++を使うので、ここからダウンロードします。以前はMsys(lsやpsなどのUnixコマンドをWindowsコマンドツールプロンプトで利用するためのツール)とminGW(Unixでのgccなどの開発ツール群をWindowsで利用するためのツール)は別々にインストールしないといけなかったはずですが、今回ここからダウンロードした mingw-get-inst-20101030.exe を使ってインストールするとMsysのインストーラも中に含まれているようで、Msysのインストールも出来ました(^^V

2010年12月27日月曜日

OpenOffice:差し込み印刷

またまた年賀状の季節がやってきました(すでに遅い(^^;!)

で、毎年やり方を忘れる差し込み印刷機能についてまとめておきます。
以前はMS Excel→Word 連携だったのですが、昨年からOpenOffice(さらにLibreOfficeへ変更)に変えました。OpenOfficeでの差し込み印刷はMS連携に比べて少し煩雑です。次のようにします。

Calcでアドレス帳を作る。
Calcのメニューから ファイル→新規作成→データベース として、データベースを作成。(詳細はここ参照(データ範囲の指定とかしなくて直接DatabaseでCalcのアドレス帳を読み込んでデータベースを作ればよいようだ。))
データベースウィザードが立ち上がるので、下記のように「既存のデータベースに接続」をチェック(ラジオボタンをクリック)し、


下の図のように表計算ドキュメント(ExcelとかCalcのファイルのことですね。)を選び、「次へ」ボタンを押します。


下のような画面が出てくるので、「ブラウズ」ボタンを押して、先に作ったCalc(やExcel)のファイルを選択します。で、「完了」。


すると次の画面が出てくるので、適当なファイル名(画面ではaddress.odb)をつけて、「保存」ボタンを押します。


差し込みフィールドを設定したはがき表書き用ファイルをWriterで開きます。
編集→データベースの交換 で先ほど作ったデータベースをを選択。
表示→データソースで先ほど作ったデータベースを選択し、それのテーブル→Sheetを選択。


ツールバーの標準フィルタ(下の図の黄色矢印で指しているアイコン)を選択し、フィルタを設定する。

フィルタの設定は例えば次のようにします。ここでは「敬称」というフィールド(Calcで指定したフィールド)で「様」以外の値を持つデータを選択するようなフィルタになっています。

またフィルタ用にflagなどの欄を設けておき、喪中の人をはずしたければ、flag→同じでない→”喪中”のような設定をすることも出来ます。(下の例のようにflagに喪中と設定している場合)
印刷を実行すると、次のようなダイヤログが出てくるので、「はい」とする。

ここで先ほどフィルタを設定したテーブルを選ぶ。件数を調べて(下図参照)フィルタが正しく働いているか確認する。



下図の出力欄で、「ファイルとして」を選択すると件数分のページをもつ、宛名の書かれたファイルができるので、そのファイルをWriterで編集することができる。ただし、なぜか1枚毎に空白ページが入るので、印刷するときに ファイル→プリンタの設定で、


「オプション」ボタンを押し、次の画面で、


その他のところにある「自動的に挿入された空白ページを印刷(A)」のチェックボックスを外す(チェックが入っていない状態)。

直接印刷する場合は、「プリンタへ」を選ぶ。この場合にも空白ページが入るかもしれないので、同様にプリンタの設定をしておく。

2010年12月18日土曜日

VC++:プロジェクトのコピー

VC++のプロジェクトをフォルダ毎コピーして別のフォルダを作り、新たなプロジェクトとして使おうとしてリンクすると、

(プロジェクト名).exp : warning LNK4070: .EXP 内の /OUT:(古いプロジェクト名).DLL ディレクティブの指定が出力ファイル名 "Debug/(プロジェクト名).dll" と異なっています; ディレクティブは無視されます。

となってしまいます。

ここにあるように (プロジェクト名).defファイル中の
 LIBRARY "****"

 LIBRARY "(プロジェクト名)"
とする必要があるようです。

Eclipseだとリファクタリングとかいうメニューがあって自動的に変更できたような気がするのですが、そういう機能はないのですかね。

OpenCV:VisualStudioの設定

Visual StuidoでOpenCVを使うにはここここにあるようにライブラリの設定を ツール→オプション→VC++ディレクトリ で行っているにも関わらず、さらにプロジェクトプロパティでの 構成プロパティ→リンカ→入力 で 追加の依存ファイル にlibを追加しないといけません。なぜなんでしょう?

さて、この追加で、
cv.lib, highgui.lib, cxcore.lib
とカンマ付きで入れると','が余分でエラーになります。

cv.lib highgui.lib cxcore.lib
のように','無しで入れる必要があります。

2010年12月12日日曜日

Firefox:ツールバーの表示・非表示

Firefoxを使っていて出来るだけ有効面積を広く使いたい時に 表示→ツールバー でメニューバーやブックマークツールバーなどのチェックを外して非表示にします。が、全部のツールバーを消してしまうとメニューバーもないので戻せない(^^; で、ここで調べるとAltキーを押すと一時的にメニューバーが出るとのこと。これでメニューバーを出し、表示→ツールバーで必要なツールバーを復帰すればいいようです。ちょっと焦りました(^^;

2010年12月11日土曜日

Notepad++:HEX Editor plugin

バイナリエディタがほしいなと思っていましたが、notepad++のプラグインにHex editorという名前であることが分かりました。インストールはnotepad++をインストールしたフォルダの下にあるpluginsというフォルダの中にHex editorからダウンロードしたHexEditor.dllを入れればおしまいです。dllを入れてから立ち上げればメニューのPluginsにHEX-Editorという項目が追加されます。

使い方は、次のようにします。たとえばtest.bmpというビットマップファイルをnotepad++で開くとこのようになります。



ここでメニューからPlugins→HEX-Editor→View in HEX を次のように選びます。


すると、下のようにバイナリ(HEX)での編集が可能となります(^^V

2010年12月8日水曜日

C++:ifstreamを使ったファイルの読み込み

C++でファイルを読み込もうと思ってifstreamを使ってみました。
 ここここに簡単に使えるように書いてあったのでそのつもりで取りかかったのですが、はまってしまっていました(^^; 結局下記のようにちゃんとファイルをオープン出来ていなかったことが判明。どこかに規則が書いてあるのでしょうか?
       ifstream ifs("C:\\abc\\def.txt", ios::in);
        ifstream ifs("C:/abc/def.txt", ios::in);
上のように'\\'で区切ると読めず、'/'で区切ると読めた。
ただし、出力の時には、
        ofstream ofs("C:\\abc\\ghi.txt", ios::out | ios::app);
        ofstream ofs("C:/abc/ghi.txt", ios::out | ios::app);
どちらでもOK

2010年12月2日木曜日

Google Scholar:Google Toolbarとの組み合わせ検索

Google Scholarという文献検索システムがGoogleにありますが、Google Toolbarと組み合わせた便利な使い方。調べたい文献名(例えばこのページの A tutorial on support vector machines for pattern recognition)をマウスなどで選択状態とします。その状態でGoogle ToolbarのGoogle Scholarボタンを押すと、直接Google Scholarで検索してくれるようです。

はっと気づいて適当な単語を選択し、Google Toolbarの 英辞郎ボタンやWikipediaボタンを押したら、なんとそのまま検索できるではありませんか(^^; 今日のタイトルはGoogle Toolbarとすべきでしたね(^^;