ネットにはいくつか見本が転がっていますが、PDFで文字が化けていたり、APIがまったく変わってしまったようなものもあります。素直に動くものが少ないので、いくつかの手本を元に作成しました。APIの定義をテキストで別に用意している例が多いのですが、カタログを使った例がまとまりが良いです。
/*
*++
* WinAPI(CopyFileA)を呼び出して、ファイルをコピー
*--
*/
filename winapi catalog 'WORK.Windows.WINAPI.SOURCE';
data _null_;
file winapi;
input;
put _infile_;
cards4;
routine CopyFileA
module=KERNEL32
minarg=3 maxarg=3 stackpop=called
returns=ushort
;
arg 1 input char format=$cstr200.; * FROM ;
arg 2 input char format=$cstr200.; * TO ;
arg 3 input num format=pib4. byvalue;
* 1=Do Not Overwrite Existing ;
* 0=Overwrite Existing File ;
;;;;
run;
filename winapi;
filename sascbtbl catalog 'WORK.Windows.WINAPI.SOURCE';
data _null_;
rc = modulen('*e', 'CopyFileA', 'c:\temp\foo.txt', 'c:\temp\foo_copy.txt', 0);
put _all_;
run;
filename sascbtbl clear;
0 件のコメント :
コメントを投稿