RE:VC++ の nmakeNo.01630
ひろ さん 00/12/14 14:15
 
 皆さん今日は、ひろです。
 MES/7/229 へのレスです。
> D:…\MyProjects\fooフォルダ内のhoge.cppを(秀丸で開いて)編集し、
> 編集し終わったらその時点でhoge.cppファイルでマクロを実行して
> このfooフォルダに在るhoe.dspファイルで(.cppファイルやフォルダといつも同名と
> は限らない)
> D:…\MyProjects\foo>"D:…\MSDEV.exe" hoe.dsp /MAKE "foo - Win32.Release"
> 若しくは
> D:…\MyProjects\foo>"D:…\MSDEV.exe" hoe.dsp /MAKE "foo - Win32.Debug"
> をキーをそれぞれに割当ててマクロで実行出来るようにしたいのですが
> それぞれのマクロはどのように書けばいいのでしょうか?
 以下の要領でいかがでしょう? ただし VC が無いので、test していません(^^;。
//------------------- sample -----------------------------------------------
call get_base_name filename;
$$dsp = $$return + ".dsp";
while(1){
  if(!existfile($$dsp)){
    $$dsp = input("dsp file が見つかりません。\n" +
      "terget を full path で入力してください。",$$dsp);
    if(!result)endmacro;
  }
  else break;
}
call get_base_name $$dsp;
runsync2 "\"D:\\Vc\\MSDEV.exe\" \"" + $$dsp + "\" /MAKE\" " +
  $$return + " - Win32.Release\"";
endmacro;

get_extension://拡張子を取得
  ##extension=strstr($$1,".");
  if(##extension==-1)return ".";
  else if(##extension==0)return "";
  while(1){
    ##extension=strlen($$1)-##extension-1;
    $$1=rightstr($$1,##extension);
    ##extension=strstr($$1,".");
    if(##extension==-1)break;
  }return $$1;

get_base_name://file name から拡張子を除いたものを取得する
  call get_extension $$1;
  if($$return!="."&&$$return!="")$$1=
    leftstr($$1,strlen($$1)-strlen($$return)-1);
  return $$1;

[ ]