□□□VC 初心者質問スレ 2□□□

このエントリーをはてなブックマークに追加
シェルの作成についての課題なのですが、

MyshellはCshellと違って、Cで実行できていたコマンドや機能のうち
働かないものがある。これらを調べ、どのような機能が実行できないか、
なぜできないか、どのような機能を追加すればいいか?

例えば次のが実行できない

エイリアス、ヒストリー、ワイルドカード、ファイルへのリダイレクト、
shellプログラミング、ディレクトリー操作(popd、pushdなど)

これらから4つほど(エイリアス、ヒストリーは必須)をmyshellに追加せよ。

という課題です。助けてください、お願いします。できればソースを、、。


959958:02/05/05 23:34
myshellです

#include<stdio.h>
#define MAXARGS 10 /* 許されるコマンドの引数の最大の数 */
#define LINELENGTH 80 /* コマンドラインの最大文字数 */
#define CONTINUE 1
#define EXITCOM 0

main(int argc,char* argv[])
{
char linebuf[LINELENGTH];
int hist;

for(hist=1; ;hist++){
printf("myshell[%d] ",hist);

    gets(linebuf);
  
if(exec_one_command(linebuf)==EXITCOM) break;
}
}
char *skipspace(char* s)
{
while(*s==' ') s++;

return s;
}

960958:02/05/05 23:35
続きです

int getcl(char* line,char* argmv[])
{
int argnum=0;

do{
line=skipspace(line);
if(*line=='\0'){
argmv[argnum]=NULL;
return argnum;
}
argmv[argnum++]=line;
while(*line!='\0' && *line!=' ') line++;
if(*line=='\0'){
argmv[argnum]=NULL; return argnum;
}
*line='\0'; line++;
}while(1);
}

int exec_one_command(char linebuf[])
{
int argnum, status;
char *argmv[MAXARGS];

argnum=getcl(linebuf,argmv);
if(argnum==0) return CONTINUE;

if(strcmp(argmv[0],"exit")==0){
return EXITCOM;
}
if(fork()==0){
execvp(argmv[0],argmv);
printf("Error at execvp\n");
exit();
}
wait(&status);
return CONTINUE;
}



961958:02/05/06 00:11
ageます。よろしくお願いします
>>958
課題ってのは?
学校のレポートのこと?
963950:02/05/06 03:37
>>951
まさにその通りでした
ありがとうございます

もう一度確認してみたらSelectObject(memdc, hbm);実行する前に
TextOutしてました
そりゃ、テキスト描画されないわな・・・
>>958
おまえ別スレにも投稿しただろ?
死ね
967デフォルトの名無しさん:02/05/08 21:49
コンボボックスを無効にしたり、有効にしたりしたいんだけど、メッソッドで
やればいいんでしょうか??
EnableWindowだっけ?
そっだっよ
970967:02/05/08 22:01
はやっ。
やってみます。
産休。
971967:02/05/08 22:54
続きです。
有効/無効はできたのですが、グループ化してあるオブジェクトの場合には
最初のコントロールIDのメンバのオブジェクトが有効/無効になりますよね?
グループの後ろのほうのオブジェクトを有効/無効にしたいのですが、どうすれば
いいんでしょうか?
メンバ変数に登録するコントロールIDはメッセージマップのオブジェクトIDすべて
でてこないのはなぜなんでしょう?

初心者ですいません。
コントロールのIDからCWndを得れば?
973967:02/05/08 22:56
それをやるには?(_o_)
974967:02/05/08 23:10
もしかして、DoDataExchangeでDDX_Controlを直接手書きで作るってことですかね?
やってみます。
975967:02/05/08 23:21
目的どおりに動きました。
産休っ
976デフォルトの名無しさん:02/05/10 03:37
ActiveXのオブジェクトには、ボリュームで使われるような左右につまんでまわすボタンってないんでしょうか?
977デフォルトの名無しさん:02/05/10 03:39
VC辛いぽ(ToT)
978976:02/05/10 23:26
まじすか。ないすか。
誰か作んないすか?みんなどうしてるすか?
イメージリストの使い方わかんねぇ
980デフォルトの名無しさん:02/05/11 19:28
スライダーのハンドルに、BN_CLICKEDが欲しいのだけど、Class Wizzardで
でてきません。どうして?
Vc++ V.5だから??
>>979
それはおかしい
982980:02/05/11 19:32
>>981
980ですよね?
MM_OUTOFMEMORYしか表示されないんですよ。
なんでだろう〜♪
983980:02/05/11 19:43
コントロールウィンドウのものではなく、ActiveXのSlider ControlV6を
使用してできそうなことがわかりました。
984デフォルトの名無しさん:02/05/11 20:12
SDIで新規作成したときにできるテキスト欄?はリッチエディット何ですか?
文字表示したり弄ったりするのに何をキーワードに検索すりゃいいっすか。
985980:02/05/11 21:27
スライダーって、下が0、上がMAXとかってできますか?
>>984
まるで違う。
ただグラフィックとして文字などを表示することができるだけ。
>>985 できる