著作一覧 |
これから更新します。
うが、これはだめでしょ。
swincdlg.c(90) : error C2057: 定数式が必要です。
swincdlg.c(90) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
swincdlg.c(90) : error C2133: 'buf' : サイズが不明です。
swincdlg.c(94) : warning C4034: sizeof 演算子がサイズが 0 となったオペランドに適用されました。
NMAKE : fatal error U1077: 'cl' : リターン コード '0x2'
Stop.
見てみると、
static unsigned buffersize=8192;
...
char buf[buffersize];
buf[0]=0;
でも、雪見酒さんは、3/7にはコンパイルできてるようだし。VC6の問題? でもコンパイル時には確かにサイズは決まらないと思うんだけど。
char* buf = _alloca(buffersize);
*buf = 0;
...
てな感じに直して通しちゃいますが、よろしいですか?
と訊きながら、返事を待たずに、パッチ。
swincdlg_OpenFileName
といっしょにswincdlg_SaveFileName
も同じようなバッファアロケーションに変えました。
Class#getDeclaredMethodを使うとprivateメソッドも取得できる。
そっか、それは気づかなかった。
と思ったが、DTOへの自動設定の役には立たないからやっぱりだめか。
追記:public Method[] getDeclaredMethods()は、This includes public, protected, default (package) access, and private methods。ただし、継承したメソッドはダメという制限。だからgetSuperClass()を呼びながら順番にprivateなsetXXXXを拾っていけば継承ツリーを持ったDTOであっても外部から再構築可能。
ジェズイットを見習え |