- ある開発者の覚書 - ソフトウェア開発者が情報処理に関する雑多な話題をジャンルを問わずに書き留めています.未来の私、私と同類のgeekたちへ

2009-04-15

GDI+ DrawStringとAddStringでの文字描画サイズの違い

GDI+で縁取りつきの文字を書くときにはAddStringを使用することがありますが、DrawStringと文字サイズの指定方法が異なります。ご注意を

2009-04-10

VMWare 仮想ディスクのリサイズ方法 - gparted



VMWare仮想ディスクは作成後にサイズを拡大することが可能です。しかしディスク内のパーティションのサイズを変更することはできません。そのためにはPartition Magic等のパーティション操作ユーティリティを使用する必要があります。この類のGPLソフトウェアでgpartedというものがあります。CD-ROMブート可能なISOイメージでも配布されています。新しいVMWareゲストOSを作成してこのISOイメージとパーティション操作を行いたい仮想ディスクとをマウントして起動すると仮想ディスク内のパーティション操作を行うことができます。スクリーンショットはWindowsVISTAの起動ディスクをサイズ変更しようとしているところです。注意していただきたいのはディスクの先頭に1MBほどの空き領域が見える点。詳しくは調査していませんが、どうもWindowsVISTAの起動に必要なもののようです。この領域までパーティションを拡大させたりするとWindowsが起動しなくなります。「Round to cylinders」をONにしていると意図せずつぶしてしまう場合がありますのでご注意を

2009-04-09

iKnow!

ながらくサボっていたiKnow!での英語学習を再開しました。久しぶりに来てみると、かなりインターフェイスもコンテンツも充実していて驚きました。
iKnowの学習システムで非常によく出来てると思うところは短期記憶から長期記憶への特性をとらえたアルゴリズムです。出題順序が最初はランダム、次に少し忘れた頃に再び出題して正誤に応じて次の出題時期を決定しているようです。

2009-04-03

休止状態のショートカット作成方法

ノートパソコン等はほとんど電源は落とさず休止状態を使用することが多いでしょう。電源ボタンを押して休止状態に移行するように設定しておく方法もありますがユーザ権限がないと設定変更できません。そういうときはデスクトップなどに休止状態のショートカットを作成しておけば手軽に移行できて便利です。

rundll32.exe PowrProf.dll,SetSuspendState

2009-03-29

boost::tokenizer はコンテナのコピーを作成しない

一時オブジェクトを渡すと後でイテレータアクセスの際にアクセスバイオレーションになります。ご注意を

#include "stdafx.h"
#include <iostream>
#include <boost/tokenizer.hpp>

std::string funcReturnsString()
{
std::string ret = "hogege,gehoho";
return ret;
}

int _tmain(int argc, _TCHAR* argv[])
{
boost::char_separator<char> sep(",");
typedef boost::tokenizer< boost::char_separator<char> > CommaTokenizer;

//NG
CommaTokenizer tokens(funcReturnsString(), sep);
for(CommaTokenizer::const_iterator it = tokens.begin(); it != tokens.end(); it++){
std::cout<<*it<<std::endl;
}

//OK
std::string str = funcReturnsString();
CommaTokenizer tokens(str, sep);
for(CommaTokenizer::const_iterator it = tokens.begin(); it != tokens.end(); it++){
std::cout<<*it<<std::endl;
}

return 0;
}

2009-03-25

Windows Vista アクティベーション時のエラー 0x8007232B DNS 名がありません。

プロダクトキーが間違っていたのが原因とのこと。毎度のことですがWindowsのエラーメッセージはなぜこうもユーザに不親切なのか。ネットワーク設定まわりを疑って子一時間悩んでしまったよ、、、ダイアログ表示しないのなら、せめてイベントログに詳細なエラー内容を表示するぐらいやるべきでしょう。

2009-03-24

Visual C++ プリプロセッサ出力の確認方法

マクロのデバッグ時に展開結果を確認したい等、一時的に出力結果を取得したい場合はソースファイルのプロパティから

Configuration Properties → C/C++ → Command Line → Additional options:

に「/EP」を追加するのが手軽です。Output Viewに出力されるのでコピー&ペーストで好みのエディタに張り付けるとよいでしょう。

その他の参照サイト
http://members.ozemail.com.au/~geoffch@ozemail.com.au/samples/programming/msvc/cl/options/ep.htm
http://homepage1.nifty.com/yt-works/javaapp/newdoja.html

ブログ アーカイブ