00202 00/12/01 05:43 RE 00198 RE 00191 VC++のnmake.exeを秀
投稿者 : KojiMatsui   コメントを投稿する

 K.Matsuiです。
ご回答誠に有難うございます。

Ms.きいろいまふらあ wrote in hidesoft.7:00199|.
> directory というのは、「今開いているファイルの格納されている
> ディレクトリ」を表す予約語です。
> c:\hogehoge\mogemoge.cppというファイルを開いているときには、
> directory は "c:\hogehoge" という文字列を返します。
分かりました。そうするとdirectoryのままでいいんですね。
で、"\\Makefile\""の箇所なんですが
Makefileはcppファイルと同フォルダに在るdspという拡張子のファイルを使用しま
す。
で、ファイル名は
mogemoge.cppと同名で
mogemoge.dsp
となっています。
このような場合、"\\Makefile\""の箇所は何と記述すればいいのでしょうか?


_____________________________________
Koji.Matsui@mb2.seikyou.ne.jp
_____________________________________


00203 00/12/01 11:53 RE:00202 RE 00198 RE 00191 VC++のnmake
投稿者 : ひろ   コメントを投稿する

 KojiMatsui さん今日は、ひろです。
> このような場合、"\\Makefile\""の箇所は何と記述すればいいのでしょうか?
"\\mogemoge.dsp\""
にすればよいと思います。


00204 00/12/01 13:34 RE:00203 RE 00198 RE 00191 VC++のnmake
投稿者 : きいろいまふらあ   コメントを投稿する

KojiMatsuiさん、ひろさんこんにちは。

>> このような場合、"\\Makefile\""の箇所は何と記述すればいいのでしょうか?
>"\\mogemoge.dsp\""
>にすればよいと思います。

*.cppの*の部分を取り出さなきゃいかん、て話ですね。

//ねんのためいま開いているファイルの拡張子を…
if(rightstr(basename,4)!=".cpp"){
  message "拡張子がcppでないので終了";
  endmacro;
}
//…とチェックした上で…
$mybasename = leftstr(basename,strlen(basename)-4) + ".dsp";
//…とdspファイルの名前を作って…
run "\"D:\\Prog(中略)\Bin\\nmake.exe\" \""
    + directory + "\\" + $mybasename + "\"";
//…としたらよいでしょう。

おためし下さい。

あと、directoryですが、ルートディレクトリの場合、
末尾に「\」がついてるらしいです。念のため。

c:\hoge\moge.txt の directory→「c:\hoge」
c:\moge.txt の directory→「c:\」


00205 00/12/01 19:50 RE 00203 RE 00198 RE 00191 VC++のnmake
投稿者 : KojiMatsui   コメントを投稿する

 K.Matsuiです。
ご回答ありがとうございます。

Mr.ひろ wrote in hidesoft.7:00203|.
>> このような場合、"\\Makefile\""の箇所は何と記述すればいいのでしょうか?
> "\\mogemoge.dsp\""
> にすればよいと思います。
でもこれだと各ファイルに対し、macファイルを毎回作成しないといけませんよね。

Ms.きいろいまふらあ wrote in hidesoft.7:00204|.
> *.cppの*の部分を取り出さなきゃいかん、て話ですね。
> file://ねんのためいま開いているファイルの拡張子を…
> if(rightstr(basename,4)!=".cpp"){
>   message "拡張子がcppでないので終了";
>   endmacro;
> }
> file://…とチェックした上で…
> $mybasename = leftstr(basename,strlen(basename)-4) + ".dsp";
> file://…とdspファイルの名前を作って…
> run "\"D:\\Prog(中略)\Bin\\nmake.exe\" \""
>     + directory + "\\" + $mybasename + "\"";
> file://…としたらよいでしょう。
> おためし下さい。
早速、D:\Program Files\Hidemaru\macros\VisualC.macに
if(rightstr(basename,4)!=".cpp"){
  message "拡張子がcppでないので終了";
  endmacro;
}
$mybasename = leftstr(basename,strlen(basename)-4) + ".dsp";
run "\"D:\\Prog(中略)\Bin\\nmake.exe\" \""
    + directory + "\\" + $mybasename + "\"";
とコーディングして
D:\Program File\MicrosoftVisual Studio\MyProjects\hogehoge\mogemoge.cppを開
いて
[F10]を押してみましたが(ちゃんとdspファイルもそのフォルダに有ります)
何の変化もありません。何うして反応が無いのでしょうか?


_____________________________________
Koji.Matsui@mb2.seikyou.ne.jp
_____________________________________


00206 00/12/01 23:21 RE:00205 RE 00198 RE 00191 VC++のnmake
投稿者 : きいろいまふらあ   コメントを投稿する

KojiMatsuiさんこんにちは。

確認1

>run "\"D:\\Prog(中略)\Bin\\nmake.exe\" \""

ここの「(中略)」は元にもどしました?
#勝手に中略しておいてこの言い草もないですが。(^^;

確認2

>[F10]を押してみましたが(ちゃんとdspファイルもそのフォルダに有ります)

[F10]を押すと、このマクロが走る様に設定されているのですか?

テスト用のマクロです。
実際にはnmake.exeは実行せず、かわりに、新しい秀丸を開いて、
runにわたすコマンドを表示します。
このマクロを走らせるとどうなるでしょう?

message "とりあえずマクロは走ってます";
if(rightstr(basename,4)!=".cpp"){
  message "拡張子がcppでないので終了";
  endmacro;
}
$dsp = leftstr(filename,strlen(filename)-4) + ".dsp";
if(!existfile($dsp)){
  message $dsp + "は存在しません";
  endmacro;
}
$exec = "D:\\Program Files\\Microsoft Visual Studio"
            + "\\VC98\Bin\\nmake.exe";
if(!existfile($exec)){
  message $exec + "は存在しません";
  endmacro;
}
$mycommand = "\"" + $exec + "\" \"" + $dsp + "\"";
newfile;
insert $mycommand;
endmacro;


新規に投稿する