Page009

OPENFILE構造体の class 化

ここでの source 類はfilemyapp10.tgzとしてある。

CMyOfn class

Windows での「ファイルを開く」user interface は OPENFILE構造体を設定して、GetOpenFileName() 関数を呼び出すのが標準的である。またこの構造体は GetSaveFileName() 関数にも用いられ、「名前を付けて保存」の標準 user interface としても使われる。

そこで、OPENFILE構造体を隠蔽する clsss、CMyOfn classs を導入する。上記理由から、この class は member function として GetOpenFileName と GetSaveFileName を持つ。

// myofn.h

#ifndef MYOFN_H_INCLUDED
#define MYOFN_H_INCLUDED

#include <windows.h>
#include <tchar.h>

namespace mylib
{

class CMyOfn
{
public:
	CMyOfn();
	virtual ~CMyOfn();
	BOOL GetOpenFileName();
	BOOL GetSaveFileName();
	const TCHAR* FileName() const;

private:
	static const int MAX_FILENAME = 1024;

protected:
	OPENFILENAME m_ofn;
	TCHAR m_szFileName[(MAX_FILENAME + 1)];
	TCHAR* m_strFilter;
};

}	// namespace mylib

#endif	// MYOFN_H_INCLUDED

jpeg library の分離

前節まで、jpeg library を一緒に梱包していたが、この節からは別途systemに用意してあるものとして扱う。

MingW/MSYS で、jpeg library を導入すると、jmorecfg.h の boolean と rpcndr.h の boolean と conflict を起こす。HAVE_BOOLEAN を定義することで、compile 時の error は防げるが library と不整合を起こす。jmorecfg.h の boolean を rpcndr.h の boolean に一致するようにすべきである。筆者の環境では

typedef unsigned char boolean;

とした。

上記変更を行った後、MSYS 環境で

./configure --prefix=/mingw --disable-shared

を行い、

make
make install
make install-lib

で導入が完了する。


添付ファイル: filemyapp10.tgz 13590件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-08-27 (月) 10:15:22 (64d)