■統合板@厨房本拠地に戻る■  最後のレスまで飛ぶ  レスを全部見る  最新レス100件を見る
ナマエモナーをスパーハカーに改造するスレッド
1  XYZ  2001/10/09(Tue) 20:06
千里の道も百歩から。
2  XYZ  2001/10/09(Tue) 20:07
言い忘れたけど、ハンドル変えてみたぞ。
3  XYZ  2001/10/09(Tue) 21:21
課題2
(1)http://www.tamasoft.co.jp/lasm/index.htmlに行ってlasm体験版をダウソロード。
(2)c:\lasmというディレクトリを作る。
(3)c:\lasmの中に、体験版を展開する。
4  XYZ  2001/10/09(Tue) 21:24
;これ↓を打ち込み、beep.asmと言う名前でc:\lasmに保存。
assume cs:cseg
cseg segment
org 100h

mov dx,61h ;
in ax,dx ;61h番地を読み込む。
or ax,03h ;bit0とbit1を1にセット
out dx,ax ;61h番地に書きこむ
ret ;dosに戻る

cseg ends
end

5  XYZ  2001/10/09(Tue) 21:25
dosプロンプトで

cd c:\lasm
lasm beep.asm
lil beep /c

を実行する。
6  XYZ  2001/10/09(Tue) 21:27
後は、完成したbeep.comを他人のパソコンのスタートア(以下略

#素直に実行しても良い。
7  XYZ  2001/10/09(Tue) 21:30
<今日の参考文献>
ttp://member.nifty.ne.jp/endou/tips/01/tips9.htm
8  XYZ  2001/10/09(Tue) 21:30
<今日の参考文献>
ttp://member.nifty.ne.jp/endou/tips/01/tips9.htm
9  XYZ  2001/10/09(Tue) 21:31
ありゃ、二重かきこスマソ。
10  ナマエモナー  2001/10/10(Wed) 05:20
スパーハカーわーいヽ(´ー`)ノ
11  ナマエモナー  2001/10/10(Wed) 05:46
lasm???
12  ナマエモナー  2001/10/10(Wed) 06:58
落としてみました
13  XYZ  2001/10/10(Wed) 06:58
>>11
 x86系CPU用のアセンブラ。
 体験版は100行までしかアセンブルできないけど、簡単なことしかやらない
予定なのでこれで十分。
 とりあえず、アセンブラを触ってみるのが目的だし。
14  XYZ  2001/10/10(Wed) 07:06
そうそう、掲示板ではtabが見えないけど、
csegから始まる行とコメント行以外は行頭にtabを入れるように。
15  ナマエモナー  2001/10/10(Wed) 07:34
時間がない
帰ってきてから起動させます
16  ナマエモナー  2001/10/10(Wed) 07:36
>>13
あ、サンクス

17  ナマエモナー  2001/10/10(Wed) 08:09
ぎえー〜
では逝ってかいます
18  ナマエモナー  2001/10/10(Wed) 16:18
帰還
19  ナマエモナー  2001/10/10(Wed) 16:37
んでは早速ためしてみます落ち
20  XYZ  2001/10/10(Wed) 19:07
とりあえず実行するには、c:\lasmで
beep
って打ち込むだけだよ。
21  XYZ  2001/10/10(Wed) 19:08
ちょっと質問。
1.2進数と16進数は理解できるのか
2.AND,OR,NOT演算は理解しているのか
22  ナマエモナー  2001/10/11(Thu) 05:13
気づけばこんな時間に。。

23  ナマエモナー  2001/10/11(Thu) 05:16
>>20
なんか
ビーーーーーーーーッ
と音が鳴るんですが。。
これ正解ですね?
24  ナマエモナー  2001/10/11(Thu) 05:19
なんか違うようなきが(^_^;)
25  ナマエモナー  2001/10/11(Thu) 05:20
>>21
うぇーっと
1.Yes
2.No
ですね。。
26  ナマエモナー  2001/10/11(Thu) 05:23
AND,OR,NOTって、いま学校で習ってるっぽいけど、、
27  ナマエモナー  2001/10/11(Thu) 05:28
>>8
>しかし、例によって「仕様」でこの関数が有効なのはWindowsNTだけです。
>ie.Windows95(98)では、警告音がなります。

警告音・・・でいいの?
28  ナマエモナー  2001/10/11(Thu) 05:29
うぅ・・・ねむ。
29  XYZ  2001/10/11(Thu) 05:32
正解!

で、beepをとめるプログラムbeep_off.asmを作るにはどうすれば良いと思う?
30  XYZ  2001/10/11(Thu) 05:36
;課題3
;とりあえず貼っておく。
        .586
        assume cs:cseg, ds:cseg, ss:cseg
cseg  segment USE16
        org       100h  ;.com形式の場合のおまじない。

;CPUID命令。eax = 0
    mov   eax, 0     ;eaxに0をセット
    cpuid          ;CPUID命令を実行
;ベンダー文字列を取得する
    mov   si, offset vendor    ;下で確保した領域のアドレスを
                    ;siレジスタにセット
    mov   dword ptr [si], ebx   ;si番地のメモリにebxレジスタの
                    ;データ(32bit)をセット
    mov   dword ptr [si+4], edx  ;si+4番地のメモリにedxレジスタの
                    ;データ(32bit)をセット
    mov   dword ptr [si+8], ecx  ;si+8番地のメモリにecxレジスタの
                    ;データ(32bit)をセット
    mov   byte ptr [si+12], "$"  ;si+12番地に終端文字(8bit)をセット
;文字列を表示
    mov   dx, offset msg ;msgのアドレスをdxにセット
    mov   ah, 09h     ;DOS Function 09h(文字列の表示)
    int   21h       ;SystemCallを実行
    ;終了
    mov   ax, 4c00h    ;DOS Function 4Ch(プログラム終了)
                ;下位8bitは終了コード。0をセット
    int   21h       ;SystemCallを実行

msg   db   "Vendor = "   ;メッセージ
vendor db   16 DUP (?)   ;ベンダー文字列用に16byte

cseg  ends
    end

31  XYZ  2001/10/11(Thu) 05:41
課題3のファイル名は、CPUID.ASM。
32  XYZ  2001/10/11(Thu) 06:20
参考文献
f tp://download.intel.co.jp/jp/developer/jpdoc/24161812_j.pdf
h ttp://www3pub.amd.com/japan/K6/k6docs/j20734f.pdf
33  XYZ  2001/10/11(Thu) 23:16
あと、次はC言語にするから使用コンパイラとバージョンを教えてくれ。

#ケケが本気でかわいそう。涙でモニターが曇って見える・・・・
34  ナマエモナー  2001/10/13(Sat) 12:59
昨夜は寝てしもた・・スマソ
35  XYZ  2001/10/13(Sat) 13:47
>>34
特に問題はないが、>>29ね。
36  ナマエモナー  2001/10/13(Sat) 14:00
OFF・・
37  XYZ  2001/10/13(Sat) 14:08
これで悩むのか(藁

<ヒント>
一番簡単なのは、
 or ax,03h ;bit0とbit1を1にセット
の部分を
 mov ax, 0h ;全部0
にすると止まるが(この場合、その前の行のinもいらない)
bit0とbit1だけを0にしないと良からぬ副作用があるのでまずい。
38  ナマエモナー  2001/10/13(Sat) 14:08
>>8を見れば解るものなんですかな
39  XYZ  2001/10/13(Sat) 14:13
//スピーカーを止める
ってもろに書いてあるじゃん(藁
40  ナマエモナー  2001/10/13(Sat) 14:23
や、やっぱりココですか
41  XYZ  2001/10/13(Sat) 14:27
FCh(hex) = 11111100b(bin)
なので、FChとANDをとるとbit0とbit1が0になるというわけ。
ポート61hの下位2ビットがスピーカーのスイッチになっているから止まる。
42  ナマエモナー  2001/10/13(Sat) 14:28
assume cs:cseg
cseg segment
org 100h

mov dx,61h ;
in ax,dx ;61h番地を読み込む。
mov dx,61h //スピーカー OFF
in ax,dx //1.ポート 61h を読む
and ax,0fch //2.ビット 0 と 1 を消す
mov dx,61h
out dx,ax
out dx,ax ;61h番地に書きこむ
ret ;dosに戻る

cseg ends
end

==========
違うような気がする・・。
43  XYZ  2001/10/13(Sat) 14:33
;回答。beep_off.asm
    assume cs:cseg
cseg  segment
    org   100h

    mov   dx,61h ;
    in   ax,dx  ;61h番地を読み込む。
    and   ax,FCh ;bit0とbit1をクリア
    out   dx,ax  ;61h番地に書きこむ
    ret       ;dosに戻る

cseg  ends
    end

44  ナマエモナー  2001/10/13(Sat) 14:34
根本的に間違っているような
45  XYZ  2001/10/13(Sat) 14:34
>>42
それでも止まるけど、無駄な操作が・・・
46  XYZ  2001/10/13(Sat) 14:37
ポート61を2度入力して2度出力するのは意味がないぞ。
47  ナマエモナー  2001/10/13(Sat) 14:39
>>43beep_off.asm
おぉマジで止まった
48  XYZ  2001/10/13(Sat) 14:40
説明の必要あるかはわからないが、アセンブルは
ソースをc:\lasmに保存して

cd c:\lasm
lasm beep_off.asm
lil beep_off /c

で、実行する時は
beep<ret>
で、実行してから
beep_off<ret>
ね。
やってみるように。
49  XYZ  2001/10/13(Sat) 14:42
なんだ、もうやったのか。
じゃあ、次は>>30実行ね。
50  ナマエモナー  2001/10/13(Sat) 14:44
assume cs:cseg
cseg segment
org 100h

in ax,dx ;61h番地を読み込む。
mov dx,61h //スピーカー OFF
in ax,dx //1.ポート 61h を読む
and ax,0fch //2.ビット 0 と 1 を消す
mov dx,61h
out dx,ax ;61h番地に書きこむ
ret ;dosに戻る

cseg ends
end
====
こうかな
51  XYZ  2001/10/13(Sat) 14:47
>>50
最初のinはdxに61hがセットされてないぞ。
次のinで読み込むけど。
52  ナマエモナー  2001/10/13(Sat) 14:55
難しいですなぁ
53  XYZ  2001/10/13(Sat) 15:07
>>52
お主のレベルなら、Cでやってもいっしょだろ(藁
ってゆーか、Cの方が面倒カモ。
<Cの場合>
//関数プロトタイプ
int inp( short Port );
int outp( short Port, short Data );
int main(void);

//関数定義
int inp( short Port )
{
  int Temp;
  
  __asm{
    mov dx, Port
    in ax, dx
    mov Temp, ax
  }
  return Temp;
}

int outp( short Port, short Data )
{
  __asm{
    mov dx, Port
    mov ax, Data
    out dx, ax
  }
  return Data;
}

int main(void)
{
  int Temp;
  
  Temp = inp( 0x61 );
  Temp |= 0x03
  outp( 0x61, Temp );
  
  return 0;
}


54  XYZ  2001/10/13(Sat) 15:09
素直に、main()の中で
__asm{
    mov   dx,61h ;
    in   ax,dx  ;61h番地を読み込む。
    and   ax,FCh ;bit0とbit1をクリア
    out   dx,ax  ;61h番地に書きこむ
    ret       ;dosに戻る
}
ってやってもいいけど、それはCでやってない気がするし。
55  XYZ  2001/10/13(Sat) 15:11
ごめん、ret削り忘れた。
あと、>>53はコンパイラ通してないからどっか間違ってるかも。
参考ということで。

で、次は>>30ね。
56  ナマエモナー  2001/10/13(Sat) 15:24
>>30
実行したら
Cpuid.obj
が生まれましたが
57  ナマエモナー  2001/10/13(Sat) 15:26
>>53-54
C言語も全然・・(^_^;)
58  XYZ  2001/10/13(Sat) 15:30
説明してなかったな。
lasm cpuid.asm
で、cpuid.objが生成されます。
次に
lil cpuid /c
を実行してcpuid.objからcpuid.comを生成する。
で、cpuid.comを実行。
59  ナマエモナー  2001/10/13(Sat) 15:35
実行!
60  XYZ  2001/10/13(Sat) 15:36
lasmがアセンブラで、lilがリンカ。
Cの場合もコマンドラインからやると、ほとんど同じだよ。
61  XYZ  2001/10/13(Sat) 15:36
>>59
なんて出る?
62  XYZ  2001/10/13(Sat) 15:39
ってゆーか、じじいも某組織に喧嘩売るとは愚かだよな。
かかわらないようにしないと危険。
63  ナマエモナー  2001/10/13(Sat) 15:39
・・・??
64  XYZ  2001/10/13(Sat) 15:45
"GenuineIntel"か"AutenticAMD"だと思うが違うのか?
65  ナマエモナー  2001/10/13(Sat) 15:46
>>61

「完了−CPUID」と。


66  XYZ  2001/10/13(Sat) 15:46
Cyrixだとなんて出るか忘れた。
67  XYZ  2001/10/13(Sat) 15:47
>>65
DOSプロンプトで実行せよ(藁
68  XYZ  2001/10/13(Sat) 15:50
ちなみに、吾輩の場合は
Vendor = AuthenticAMD
69  ナマエモナー  2001/10/13(Sat) 15:51
>>67
ぬあ・・スマソ
70  ナマエモナー  2001/10/13(Sat) 15:52
>>68
同じく。です

71  XYZ  2001/10/13(Sat) 15:53
なんだと!
Intelじゃないのか(藁
72  ナマエモナー  2001/10/13(Sat) 15:53
>>62
怖すぎてスレにも酸化できんです!
73  XYZ  2001/10/13(Sat) 15:54
じゃあ、「AMDの資料を見てCPU名を表示するように改造せよ」って言ったら
出来るか?
74  XYZ  2001/10/13(Sat) 15:55
>>72
正しい(藁
ほっとけ。
75  ナマエモナー  2001/10/13(Sat) 15:55
>>73

できません。(iдi)
76  XYZ  2001/10/13(Sat) 15:56
>>75
とりあえず、参考文献のAMDの方をダウソしてみよ。
77  ナマエモナー  2001/10/13(Sat) 15:57
そもそも AMD って・・・   何
78  XYZ  2001/10/13(Sat) 15:59
CPUを製造しているメーカー。って言ったらわかるか?
79  XYZ  2001/10/13(Sat) 16:00
つまりは>>32の下の方。
80  XYZ  2001/10/13(Sat) 16:03
あと、"GenuineIntel"と"AuthenticAMD"の意味を辞書で引け。
GenuineとAuthenticは、ほとんど同じ意味だが。
81  ナマエモナー  2001/10/13(Sat) 16:06
AMD社製ってでっかく書いてあるし(^_^;)
82  XYZ  2001/10/13(Sat) 16:11
一体、パソコンの機種は何?
83  ナマエモナー  2001/10/13(Sat) 16:12
ペンティアムとアスロンってこと・・か、も
84  XYZ  2001/10/13(Sat) 16:14
>>83
辞書引いてないだろ(藁

#社名は訳さなくて良いぞ(藁
85  ナマエモナー  2001/10/13(Sat) 16:15
FMV DESKPOWER M4/707
86  ナマエモナー  2001/10/13(Sat) 16:15
辞書のってないっす
87  ナマエモナー  2001/10/13(Sat) 16:17
CPUのIDがAuthenticAMDだったのかも
88  ナマエモナー  2001/10/13(Sat) 16:20
プロセッサがAuthenticAMDメーカー識別ストリングを返却する場合
拡張関数を持っている
89  XYZ  2001/10/13(Sat) 16:20
>>86
その辞書捨ててしまえ(藁

http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=Authentic&sw=0
http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=Genuine&sw=0

#手元のNewANCHORには載ってるぞ。
90  XYZ  2001/10/13(Sat) 16:22
要するに「Intel純正」と「AMD純正」。
Intelがラテン語で来たからAMDはギリシャ語(藁
91  XYZ  2001/10/13(Sat) 16:28
要するに8000_0002と3と4を使うと、「明日論800MHz」とか書いてあるという寸法。
これを表示させてみようかと。

ちなみに、さっきのプログラムは0000_0000をつかってメーカー名を取得してます。
92  XYZ  2001/10/13(Sat) 16:38
;と、言う訳で>>30を改造してみた。
;ファイル名はcpuname.asm
;これを実行してみよ。
        .586
        assume cs:cseg, ds:cseg, ss:cseg
cseg  segment USE16
        org       100h  ;.com形式の場合のおまじない。

;CPUID命令。eax = 0
    mov   eax, 80000002h ;eaxに0をセット
    cpuid          ;CPUID命令を実行
;ベンダー文字列を取得する
    mov   si, offset CPUの名前  ;下で確保した領域のアドレスを
                    ;siレジスタにセット
    mov   dword ptr [si], eax   ;si番地のメモリにeaxレジスタの
                    ;データ(32bit)をセット
    mov   dword ptr [si+4], ebx  ;si+4番地のメモリにebxレジスタの
                    ;データ(32bit)をセット
    mov   dword ptr [si+8], ecx  ;si+8番地のメモリにecxレジスタの
                    ;データ(32bit)をセット
    mov   dword ptr [si+12], edx ;si+12番地のメモリにedxレジスタの
                    ;データ(32bit)をセット
    mov   byte ptr [si+16], "$"  ;si+16番地に終端文字(8bit)をセット
;文字列を表示
    mov   dx, offset msg ;msgのアドレスをdxにセット
    mov   ah, 09h     ;DOS Function 09h(文字列の表示)
    int   21h       ;SystemCallを実行
    ;終了
    mov   ax, 4c00h    ;DOS Function 4Ch(プログラム終了)
                ;下位8bitは終了コード。0をセット
    int   21h       ;SystemCallを実行

msg    db   "CPU名 = "   ;
CPUの名前 db   50 DUP (?)   ;ベンダー文字列用に50byte

cseg  ends
    end

93  ナマエモナー  2001/10/13(Sat) 16:41
>>90
なるへそ
94  XYZ  2001/10/13(Sat) 16:44
なんか、コメント直し忘れたな。
これの実行結果を報告せよ。
あと、次はCにするから、持ってるコンパイラ名とバージョンを指定してくれ。
持ってなければ、フリーの何かで説明しまふ。
95  ナマエモナー  2001/10/13(Sat) 16:54
>>94
CPU名 = AMD Athlon(tm) P

96  ナマエモナー  2001/10/13(Sat) 16:55

AMD製アスロン(テレマーク)???
97  XYZ  2001/10/13(Sat) 17:00
小生意気な!(藁
CPU名 = AMD-K6(tm) 3D pr

最初の16文字しか取得してないから後ろのほうが切れてる。
暇なときにでも48文字全部取得してみると面白いかも。
あとテレマークは(藁

http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi?MT=TM&sw=0
#お主のトップページに日本語で書いてあるじゃねーか(藁
98  ナマエモナー  2001/10/13(Sat) 17:00
>>94
持ってないです、、スマソ
99  XYZ  2001/10/13(Sat) 17:03
>>98
じゃあ、夕飯の買出しに行きながら考えておきまふ。

#多分、ボーランドかgccにすると思う。
100  XYZ  2001/10/13(Sat) 17:04
と、いうわけで出かけまふ。
101  ナマエモナー  2001/10/13(Sat) 17:15
>>100
んでは
102  ナマエモナー  2001/10/13(Sat) 17:26
>>97
登録商標???
103  XYZ  2001/10/13(Sat) 17:49
>>102
まあ、ほぼ正解。
これでも読んどきー。
ttp://www.furutani.co.jp/cgi-bin/term.cgi

#帰ってきた。
104  XYZ  2001/10/13(Sat) 17:50
>>103
ごめん、このリンクcgiじゃん(藁
ttp://www.furutani.co.jp/
ここでTMとでも検索してみそ。
105  ナマエモナー  2001/10/13(Sat) 17:58
ボーランド・・・これですかな
http://www.borland.co.jp/cppbuilder/freecompiler/index.html
106  XYZ  2001/10/13(Sat) 18:08
正解!。
ただ、8.4Mもあるから、ダウソが面倒ならC-Magazine10月号を買って
くるという手もある。
107  XYZ  2001/10/13(Sat) 18:09
ってゆーか、それにするから、どちらかの方法で調達しておくように。

#今後はナマエモナー(TM)と表記せよ(藁
108  XYZ  2001/10/13(Sat) 18:15
そうそう、C-Magazine10月号にはVisualStudio.net Bata-2のDVDがついてるよ。
興味があれば。どうぞ。

#Version7.0じゃなくて.netなのは何故だろう。
#あと、次は.net Ver2.00とかにするのだろうか?
109  ナマエモナー(TM)  2001/10/13(Sat) 18:41
ふふふ
110  ナマエモナー(TM)  2001/10/13(Sat) 19:16
1200円か・・。
111  ナマエモナー(TM)  2001/10/13(Sat) 19:19
つーか、もう>>105からDL始めちゃいました。ゴメソ
112  ナマエモナー(TM)  2001/10/13(Sat) 19:22
10月号の説明の時点でついていけませんなー(;´Д`)
113  ナマエモナー(TM)  2001/10/13(Sat) 19:42
http://cmaga.zdnet.co.jp/detail/0010.html
114  XYZ  2001/10/13(Sat) 19:46
それ、2000年じゃん(藁
こっち↓だろ
http://cmaga.zdnet.co.jp/detail/0110.html
115  XYZ  2001/10/13(Sat) 19:54
インストールが終わったら、c:\autoexec.batをEditorで開いて末尾に
次の2行を追加せよ。

PATH="%PATH%;c:\Borland\Bcc55\bin"
SET INCLUDE="%INCLUDE%;c:\Borland\Bcc55\include"
116  XYZ  2001/10/13(Sat) 19:56
次にC:\borland\bcc55\Binに"bcc32.cfg"っていう名前のファイルを作り、

-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\PSDK"

をコピーして保存。
117  ナマエモナー(TM)  2001/10/13(Sat) 19:57
・・・ (^_^;)
118  XYZ  2001/10/13(Sat) 19:58
C:\borland\bcc55\Binに"ilink32.cfg"っていう名前のファイルを作り

-L"c:\Borland\Bcc55\lib;c:\Borland\Bcc55\lib\PSDK"

を貼りつけて保存。
119  XYZ  2001/10/13(Sat) 19:58
>>117
インストール後の設定の話ね。
120  ナマエモナー(TM)  2001/10/13(Sat) 20:17
了解
121  XYZ  2001/10/13(Sat) 20:39
設定が終わったら、テストね。
c:\work\hello\hello.cというファイルを作って、
#include <stdio.h>

int main(void)
{
printf( "Hello world !\n" );
return 0;
}

って打ち込んで保存。
で、DOSプロンプトで

cd c:\work\hello
bcc32 -WC hello.c
hello

を実行できるかテストしてみるように。
122  XYZ  2001/10/13(Sat) 20:44
ちょっと失敗。
printfとreturnの前にはtabを入れるように。
ついでに言っておくと、CをやるならTabは4に設定するのが普通。
Editorは何を使ってる?

#bccは3年ぶりかなぁ。
#VisualC++以外でやると、リソース作るのがつらいんだよな。
123  XYZ  2001/10/13(Sat) 21:04
大丈夫か?
一日で、一気にいろいろやりすぎたか?(藁
124  ナマエモナー(TM)  2001/10/13(Sat) 21:22
トイレに逝っていたのです。
125  ナマエモナー(TM)  2001/10/13(Sat) 21:45
エディターはメモ帳ですが、、
126  ナマエモナー(TM)  2001/10/13(Sat) 21:49
コマンド名またはファイルが違います、が出る・・
127  XYZ  2001/10/13(Sat) 21:54
業界では「秀丸派」と「WZ派」と「Mifes派」と「Vi派(藁」などがいるが、
とりあえず、秀丸をダウソしてみるかWZを買ってみることを薦める。

UNIX系のEditorはロハだけど、いきなりあれを使えとはちょっと言えない(藁

#ちなみに吾輩はWZを使用してまふ。
128  XYZ  2001/10/13(Sat) 21:54
>>126
autoexec.batをここに貼ってみそ。
129  ナマエモナー(TM)  2001/10/13(Sat) 21:58
>>128
===============================================================
@ECHO OFF
loadhigh c:\windows\COMMAND\nlsfunc.exe c:\windows\country.sys
SET PATH=C:\FJUTY;
PATH="%PATH%;c:\Borland\Bcc55\bin"
SET INCLUDE="%INCLUDE%;c:\Borland\Bcc55\include"
===============================================================
で、ファイル名がAutoexec.Batになってますが
130  XYZ  2001/10/13(Sat) 22:02
わりぃ。重要な事を忘れてた。
一回再起動が足りない。多分。
131  ナマエモナー(TM)  2001/10/13(Sat) 22:07
再起動かいな(^_^;)
132  XYZ  2001/10/13(Sat) 22:38
AMD Athlon(TM)700MHzとわ・・・
結構最近買ったのか。

#吾輩のはK6-2 350MHzだから2倍・・・
#仕事で使用してる奴はPen-iii 650MHzだが・・・
133  ナマエモナー(TM)  2001/10/13(Sat) 22:55
再起動完了。
道草を食ってしまった
134  ナマエモナー(TM)  2001/10/13(Sat) 22:57
>>132
パソコン暦はかなり短いですな
135  ナマエモナー(TM)  2001/10/13(Sat) 23:16
Borland C++ 5.5.1 for Win32 Copyright (c) 1993,2000 Borland
hello.c
Turbo Incremental Link 5.00 Copyright (c) 1997,2000 Borland
=============================================================
と出るのですが。。
136  ナマエモナー(TM)  2001/10/13(Sat) 23:18
helloフォルダ内にいろいろファイルが出来ている。!
137  XYZ  2001/10/13(Sat) 23:19
hello.exeは出来てない?

#今まで風呂に入ってた。
138  ナマエモナー(TM)  2001/10/13(Sat) 23:20
で、helloと打ちこむと
「hello!world」と応答が来るのですな?
139  XYZ  2001/10/13(Sat) 23:20
そのディレクトリで
hello<ret>
と打ち込でみそ。
140  XYZ  2001/10/13(Sat) 23:22
>>138
正解!。
Cの教科書の最初に必ず載ってるプログラムだけど、説明は必要か?
141  ナマエモナー(TM)  2001/10/13(Sat) 23:27
さすがにこれくらいは(^_^;)
142  XYZ  2001/10/13(Sat) 23:33
>>141
一応、ここまでの事を補足しておく。

<autoexec.bat>
 path設定は、今いる以外のディレクトリの実行ファイルを実行できるようにする
為の設定。
 さっき、「ファイルが見つかりません」が出たのは、再起動してないから
pathの設定が有効になっていなかった為。
 lasmはpathを設定してないから、c:\lasm以外では実行できない。

<bcc32>
 bcc32の"-WC"オプションは、コマンドラインアプリをコンパイルするときの
オプション。
 通常のWindowsアプリを作る場合は"-W"オプションを使用する。
143  XYZ  2001/10/13(Sat) 23:38
じゃあ、次はこれをc:\work\PowerOff.CPPとして保存してコンパイル。
コンパイルは、
bcc32 -W PowerOff.cpp
警告が出るけど気にしないで実行してみよ。
Windowsアプリだから、ダブルクリックで起動ね。
--------------------------------------------------------------
#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPreInst,
    LPSTR lpCmdLine, int nCmdShow )
{
  ExitWindowsEx( EWX_SHUTDOWN, 0 );

  return 0;
}
-------------------------------------------------------------------

144  XYZ  2001/10/13(Sat) 23:39
ごめん、間違い。
c:\work\PowerOff\PowerOff.cpp
にして。
145  ナマエモナー(TM)  2001/10/13(Sat) 23:39
まるほど・・・補足サンクス。
146  ナマエモナー(TM)  2001/10/13(Sat) 23:55
・・・まさかPCの電源がいきなりOFFになる奴では(^_^;)
147  XYZ  2001/10/13(Sat) 23:58
何の事かな?(藁
148  ナマエモナー(TM)  2001/10/14(Sun) 00:05
事前に言ってちょ〜(^_^;)
149  XYZ  2001/10/14(Sun) 00:05
って事で、吾輩はもう寝る。
150  XYZ  2001/10/14(Sun) 00:06
>>148
プログラム名を見ればわかるだろ(藁
151  XYZ  2001/10/14(Sun) 00:11
そうそう、寝る前に参考文献。
http://www.microsoft.com/JAPAN/developer/library/jpsetupf/_win32_exitwindowsex.htm
152  XYZ  2001/10/14(Sun) 00:13
暇なときにReset.EXEとかLogoff.EXEとか作ってみそ。
そんなシェアウェア作ってヲチされてた馬鹿がいたよな。少し前に。

#5分で作れるようなソフトでシェアだとさ(藁
153  ナマエモナー(TM)  2001/10/14(Sun) 00:27
んではPC切るので実行しますか。

154  ナマエモナー(TM)  2001/10/14(Sun) 00:31
>>149
明日もおねがいしますですね
155  ナマエモナー(TM)  2001/10/14(Sun) 00:54
・・・結局まだネットに繋いでしまった。
156  ナマエモナー(TM)  2001/10/14(Sun) 02:05
・・・結局まだネットに繋いでしまった。
157  ナマエモナー(TM)  2001/10/14(Sun) 02:26
2重書き込み・・鬱
158  XYZ  2001/10/14(Sun) 11:56
うーむ。
たかだかICONをつけるぐらいで悩んでます。
SDKを使う手もあるが・・・
VC++を使わないとつらいなぁ。やっぱり。
159  XYZ  2001/10/14(Sun) 11:57
なんかICONエディッタを探してくるように(藁
".ico"ファイルを作れる奴ね。
160  XYZ  2001/10/14(Sun) 13:50
このiconエディッタにすることにしました。
ttp://www2.justnet.ne.jp/~south/
161  XYZ  2001/10/14(Sun) 14:18
と、言う訳でICONをつけてみる。
これが無いとWindowsアプリな気がしないじゃん(藁

1.まずICONを作り、"PowerOff.ico"という名前でc:\work\PowerOff\に保存

2.resource.hを作り、次の一行だけ打ち込んで保存。
#define IDR_MAINFRAME 128

3.PowerOff.rcを作り、次のように打ち込む。
//===========================================================
// Include Files
//===========================================================
#include "resource.h"


//-----------------------------------------------------------
// ICONの指定
//-----------------------------------------------------------
IDR_MAINFRAME ICON DISCARDABLE "PowerOff.ico"


162  XYZ  2001/10/14(Sun) 14:20
コンパイルは次のようにする。
bcc32 -W PowerOff.cpp
brc32 PowerOff.rc

これだけ。
163  XYZ  2001/10/14(Sun) 14:21
なんかカコイイiconを作り、コンパイルして吾輩にメールで送りつけるように。

#ウイルスは不許可(藁
164  XYZ  2001/10/14(Sun) 15:14
ttp://1ch.tv/verbbt/のNetWatch板に記念カキコしてみた。
165  ナマエモナー(TM)  2001/10/14(Sun) 19:43
1ch閲覧専用になったのでは
166  ナマエモナー(TM)  2001/10/14(Sun) 19:46
昨日のPowerOff.cppなぜかコンパイルできませんでした。。
167  XYZ  2001/10/14(Sun) 19:47
>>165
一旦、再オープンしたんだけど、また止まっちゃった。
何かの罠だったのカモ。
168  XYZ  2001/10/14(Sun) 19:48
>>166
エラーは何?
169  XYZ  2001/10/14(Sun) 20:00
おお、正式に復活か。
ttp://www.1ch.tv/
170  ナマエモナー(TM)  2001/10/14(Sun) 20:07
エラー E2206 PowerOff.cpp 3: 不正な文字 ' ' (0x8140)
エラー E2206 PowerOff.cpp 4: 不正な文字 ' ' (0x8140)
エラー E2206 PowerOff.cpp 4: 不正な文字 ' ' (0x8140)
エラー E2206 PowerOff.cpp 4: 不正な文字 ' ' (0x8140)
エラー E2206 PowerOff.cpp 4: 不正な文字 ' ' (0x8140)
エラー E2206 PowerOff.cpp 6: 不正な文字 ' ' (0x8140)

警告 W8057 PowerOff.cpp 9: パラメータ 'hInstance' は一度も使用されない関数〜
dccall WinMain(HINSTANCE_*,HINSTANCE_*,char *,int))
=================================================================
こんな感じのが出ますが
171  XYZ  2001/10/14(Sun) 20:13
>>170
それ、全角空白(藁
半角空白とTabに置き換えるように。

172  XYZ  2001/10/14(Sun) 20:21
コメント以外で全角文字は使用不可。
大抵の開発ツールはそうなんだけど、lasmだけは大丈夫なんだよね。
アセンブラの例題で、こっそり日本語の変数名をつけておいたんだけど
気づいたか?
173  ナマエモナー(TM)  2001/10/14(Sun) 20:28
なぜ全角が、、
174  XYZ  2001/10/14(Sun) 20:30
>>173
吾輩が、レイアウトが崩れるのを嫌って全角に変換して貼ったから(藁
175  ナマエモナー(TM)  2001/10/14(Sun) 20:35
全角だと事前に教えてけれ〜
176  ナマエモナー(TM)  2001/10/14(Sun) 20:38
逝っちゃんねる、〇×から〇オンリーになったのか、つまらん
177  XYZ  2001/10/14(Sun) 20:39
>>175
Use THE FORCE!!!(藁
178  ナマエモナー(TM)  2001/10/14(Sun) 20:43
>>172
気づかなかったYO...
てか、今でも解りませんが、、
179  XYZ  2001/10/14(Sun) 20:43
>>176
確かに、罰荒らしはやってみたかったな。
180  XYZ  2001/10/14(Sun) 20:47
>>178
>>92の「CPUの名前」とか言うラベル。
さらに言うと、空白は全部全角。
これが出来る開発ツールは、多摩ソフト様の開発ツールしか知らない。
技術的には簡単だから、他社も取り入れて欲しいのだが。
181  ナマエモナー(TM)  2001/10/14(Sun) 20:53
うおーマジだ
182  ナマエモナー(TM)  2001/10/14(Sun) 20:58
鬱とか難しい漢字は どうなんでしょうか
183  ナマエモナー(TM)  2001/10/14(Sun) 21:25
と、iconを作らねば
184  XYZ  2001/10/14(Sun) 21:40
>>182
コメントには使用可能。
多摩ソフトの話であれば、多分、変数名にも使えるよ。

#多摩ソフトのコンパイラの体験版を使おうかとも思ったけどやめた。
#Windowsアプリが開発できて、フル機能じゃないとつまらんでしょ。
185  XYZ  2001/10/14(Sun) 21:46
多摩ソフトのLight-Cではこんな無茶なことが可能。
本当にやったら、他のコンパイラに移植するのがつらいけど。

void 一言()
{
  char コメント[] = "逝って良し\n"
  printf( "%s", コメント );
}
int main(void)
{
  一言();
  return 0;
}

186  ナマエモナー(TM)  2001/10/15(Mon) 00:46
常駐していました。スマソ
187  XYZ  2001/10/15(Mon) 18:24
で、アイコンは付けたか?
188  ナマエモナー(TM)  2001/10/15(Mon) 23:24
つけました。
メール送りまっす
189  ナマエモナー(TM)  2001/10/16(Tue) 00:32
・・・サーバーが応答しない
190  ナマエモナー(TM)  2001/10/16(Tue) 01:16
Why?
191  XYZ  2001/10/16(Tue) 06:34
うーむ。自分で自分に出してみたが、送れるぞ。
メール欄は間違ってないみたいナリ。
192  XYZ  2001/10/16(Tue) 06:41
次の課題に進むわけだが、ちょっと予備知識。
cd c:\windowsで、
  type programs.txt
と、
  type programs.txt | more
を実行してtypeコマンドとmoreと|の動きを見てみるように。
すでに知ってるのなら別にやらなくても構わんが。
193  XYZ  2001/10/16(Tue) 06:43
あと、
dir | sort
とか
dir /w | sort
の動きも。
各コマンドの説明は/?オプションで見れるよ。
194  XYZ  2001/10/16(Tue) 06:49
ついでにもういっちょ。
c:\で、
type autoexec.bat > temp.txt
を実行してからtemp.txtの中身を見る。
で、
type autoexec.bat >> temp.txt
を2、3回ぐらいやってみてからもう一回みてみそ。
それからもう一回
type autoexec.bat > temp.txt
を実行して見てみる。
>と>>の違いがわかればOK。
195  ナマエモナー(TM)  2001/10/16(Tue) 07:42
>>191
んや鯖の調子かメーラーがおかしいようです
196  XYZ  2001/10/16(Tue) 19:54
ふぅ(゚∀゚)y─〜
難破でも氏に逝けや(藁
197  XYZ  2001/10/16(Tue) 20:50
>>195
終わったかゴルァ!
たった今次のソースが出来たぞゴルァ!
198  XYZ  2001/10/16(Tue) 20:52
//replace.cpp
//即興で書いた。
#include  <stdio.h>
#include  <string.h>

#define  LINE_BUFFER_SIZE  1024

int  main( int argc, char* argv[] )
{
  char  LineBuffer[LINE_BUFFER_SIZE];
  char*  TempPos;
  char*  FindPos;
  
  while( !feof(stdin) )
  {
    fgets( LineBuffer, LINE_BUFFER_SIZE, stdin );
    TempPos = LineBuffer;
    while(1)
    {
      FindPos = strstr( TempPos, argv[1] );
      if( FindPos == NULL )
      {
        fprintf( stdout, TempPos );  //見つからない
        break;
      }
      *FindPos = 0;  //終端文字
      fprintf( stdout, TempPos );
      fprintf( stdout, argv[2] );
      TempPos = FindPos + strlen(argv[1]);
    }
  }
  
  return 0;
}

199  XYZ  2001/10/16(Tue) 21:29
コンパイル方法は、いつも通りに
c:\work\replaceにreplace.cppを作る
bcc32 -WC replace.cpp
全角空白は置き換える事。
200  XYZ  2001/10/16(Tue) 21:31
試運転
replace "ナマエモナー" "ナマエモナー(TM)"<ret>
と打ち込んでから
ナマエモナー<ret>
逝って良し<ret>
とか打ち込んでみよ。
終了はCtrl+Zね。
201  XYZ  2001/10/16(Tue) 21:46
メールが届いたぞ。
移動させようとしてシステムを終了させちまった。しかも2度も。
なんつー危険なプログラムじゃ(藁

#アイコンは良いんじゃないかな。
#できれば、16×16と32×32のアイコンを一つのicoファイルに保存できる
#ソフトを探しといて。フリーの奴で。
202  ナマエモナー(TM)  2001/10/16(Tue) 21:53
メール送信しました。
203  XYZ  2001/10/16(Tue) 21:59
>>202
うみゅ。よくやったぞ。
で、次ね(藁
204  XYZ  2001/10/16(Tue) 22:03
>>202
replaceが何をするプログラムかわかった?
205  ナマエモナー(TM)  2001/10/16(Tue) 22:16
>>201
あのソフトでも16*16と32*32の両方を一つのアイコンに保存する
のは出来たのでは
206  XYZ  2001/10/16(Tue) 22:18
>>205
なんですと!
気づきませんでした。みてみるにょ。
207  XYZ  2001/10/16(Tue) 22:21
おお、本当だ!
Thanks!
208  ナマエモナー(TM)  2001/10/16(Tue) 22:24
勝手に終了・・・チョット危険ね
ダイヤログでも出させればいいのでは
209  XYZ  2001/10/16(Tue) 22:26
>>208
何で1行プログラムなのかわかってるか?(藁
210  XYZ  2001/10/16(Tue) 22:29
もともとは、4年ぐらい前に他人のパソコンのスタートアップに組み込むために
考えたプログラムなんだよね。
起動すると終了しちゃうといういたづら用(藁
211  XYZ  2001/10/16(Tue) 22:30
他にも危険な奴はいっぱい作ったときがある。
そのうち教えるけど。

#上司のパソコンに仕込むために作った、通称「ぴかちゅう」とか。
212  ナマエモナー(TM)  2001/10/16(Tue) 22:49
>>210
素晴らしい
がっこうにしこみたい
213  ナマエモナー(TM)  2001/10/16(Tue) 22:54
>>209
わかりませんなぁ
214  XYZ  2001/10/16(Tue) 22:56
スタート−>設定−>タスクバーとスタートメニュー
スタートメニューの設定タブ−>詳細ボタン
プログラム−>スタートアップ
にショートカットを投入

#戻すときはセーフモードで削除
#セーフモードのやり方がわからないのならば、やめとけ。
215  XYZ  2001/10/16(Tue) 22:58
>>213
長いの書いたら氏ぬかと思って手加減。
ってゆーか、だんだん様子を見ながら長いのを投入する予定。

#もう、次の次のプログラムまで書いちゃったYO!
216  ナマエモナー(TM)  2001/10/16(Tue) 23:06
>>211
( ̄ー ̄)ニヤリッ
217  XYZ  2001/10/16(Tue) 23:17
>>216
ってゆーわけで、replaceのテストまで終わったら報告するように。

#次の次の次は何にしようかな。
218  ナマエモナー(TM)  2001/10/16(Tue) 23:26
>>215
早すぎるっす。。

219  ナマエモナー(TM)  2001/10/16(Tue) 23:46
えーと、叱られたのでまた明日。。(^_^;)
220  XYZ  2001/10/17(Wed) 05:34
>>218
ヤパーリ早過ぎたか・・・・
>>219
どこで叱ってるというのだゴルァ!(藁

#もう寝てました。
221  XYZ  2001/10/17(Wed) 22:55
次の次の次は結構手が込んでるぞ。

#3日ぐらいかけて作っても追いつかれない気がしてきた。
222  ナマエモナー(TM)  2001/10/17(Wed) 22:59
そ、そんな・・
223  XYZ  2001/10/17(Wed) 23:03
>>222
追いつかれてネタ切れになっても困るのでちょうど良いのカモ。
224  ナマエモナー(TM)  2001/10/18(Thu) 00:45
(^_^;)2ちゃんに常駐してる場合じゃないのである・・
225  XYZ  2001/10/18(Thu) 20:48
>>224
吾輩が暇だから、とっととやれ(藁
226  ナマエモナー(TM)  2001/10/18(Thu) 20:59
ヒヒヒではこれから全部やります
227  ナマエモナー(TM)  2001/10/19(Fri) 04:13
・・・と思ったけらとんでもないことになってしまった。(^_^;)
しょうがない明日ゆっくり・・
228  ナマエモナー(TM)  2001/10/19(Fri) 04:20
うーん折角作ってもらってるのにすいません
229  ナマエモナー(TM)  2001/10/19(Fri) 19:36
>>200
なぜかreplace.exeを起動させて何か打ちこむと強制終了に。
???
230  XYZ  2001/10/19(Fri) 20:52
>>229
ちゃんとreplaceの後に
replace ナマエモナー ナマエモナーTM
と打ち込んだか?

#エラーチェックつけてないから、ちょっと間違うとすぐ落ちる(藁
231  XYZ  2001/10/19(Fri) 20:54
"ナマエモナー"と"ナマエモナーTM"の間の空白は半角にするように。
「"」は、つけてもつけなくても良い。
232  XYZ  2001/10/19(Fri) 20:55
エラーチェックは後で追加する予定にょ。

#わりぃ。親父のパソコンの設定してた。
233  ナマエモナー(TM)  2001/10/19(Fri) 21:02
>>230
いや、カタカナの出し方を忘れたのでnamaemonaにしておきましたが・・・
そのせい?か、、
234  XYZ  2001/10/19(Fri) 21:05
注意点は
1.区切りを半角空白にする。
2.パラメータは2個渡す

だけだと思うが。
動かなけりゃデバッガーを使用する事にするぞ。
235  XYZ  2001/10/19(Fri) 21:14
ローマ字でやるならば以下のように打ち込む。
replace namaemona namaemona(TM)

で、起動後に
namaemona<リターソ>
とか打ち込むと良い。
終了はCtrl+Z。

236  ナマエモナー(TM)  2001/10/19(Fri) 21:19
空白は全部TABにしましたが・・
237  XYZ  2001/10/19(Fri) 21:19
>>236
ちょっと送ってみよ。
238  ナマエモナー(TM)  2001/10/19(Fri) 21:26
>>235
それでも強制終了のダイアログが3回出てくるYO
239  XYZ  2001/10/19(Fri) 21:34
>>238
ソースコードとEXEをメールで送るように。
240  XYZ  2001/10/19(Fri) 21:35
完成すれば、結構使える便利ツールなのだが・・・
241  ナマエモナー(TM)  2001/10/19(Fri) 21:56
うおー!またメール鯖が応答せん、、
242  ナマエモナー(TM)  2001/10/19(Fri) 21:57
ウェブメールから送ります。。
243  ナマエモナー(TM)  2001/10/19(Fri) 22:00
>>239
cppとexeを送ってしまいましたが(^_^;)
244  XYZ  2001/10/19(Fri) 22:15
ちゃんと動く・・・
245  XYZ  2001/10/19(Fri) 22:24
//直させるつもりだったのだが・・・
//落ちないように修正。
#include  <stdio.h>
#include  <string.h>

#define  LINE_BUFFER_SIZE  1024

int  main( int argc, char* argv[] )
{
  char  LineBuffer[LINE_BUFFER_SIZE];
  char*  TempPos;
  char*  FindPos;
  
  if( argc != 3 )
  {
    printf( "replace.exe\n" );
    printf( " 文字列を置き換えます。\n" );
    printf( " 使用方法\n" );
    printf( "   type (infile) | replace.exe (検索文字列) (置換文字列) > (outfile)\n" );
    return 0;
  }
  
  while( !feof(stdin) )
  {
    fgets( LineBuffer, LINE_BUFFER_SIZE, stdin );
    TempPos = LineBuffer;
    while(1)
    {
      FindPos = strstr( TempPos, argv[1] );
      if( FindPos == NULL )
      {
        fprintf( stdout, TempPos );  //見つからない
        break;
      }
      *FindPos = 0;  //終端文字
      fprintf( stdout, TempPos );
      fprintf( stdout, argv[2] );
      TempPos = FindPos + strlen(argv[1]);
    }
  }
  
  return 0;
}

246  XYZ  2001/10/19(Fri) 22:28
とりあえず、c:\work\replace\に、次のようなファイルを作る。
Zen2Han.BAT
==============================================
type %1 | replace "(全角空白一個)" "(半角空白2個)" > %2

247  XYZ  2001/10/19(Fri) 22:30
次に、作ったreplace.cppをreplace.oldに名称変更。
それから、>>245をreplace.txtという名前で保存し、コマンドラインから
Zen2Han replace.txt replace.cpp<ret>
を実行してみよ。
ちゃんと全角空白が半角空白に置き換わればOK。
248  XYZ  2001/10/19(Fri) 22:42
最後に、新しいreplace.cppをbcc32 -WC replace.cppでコンパイルね。
249  ナマエモナー(TM)  2001/10/19(Fri) 22:57
お手数かけました(^_^;)
250  XYZ  2001/10/19(Fri) 22:59
>>249
動いたら報告せよ。
251  XYZ  2001/10/19(Fri) 23:01
そうそう、タブのいれかたが出鱈目だったぞ。
>>245みたいな感じで、段下げをするように。
252  XYZ  2001/10/20(Sat) 14:53
ここまで終わったらプログラムの解説をするから、これ↓をダウソしておくように。
h ttp://www.borland.co.jp/cppbuilder/freecompiler/turbodebugger.html
f tp://ftp.metrowerks.co.jp/pub/updates/cwpro6/win/Pro6J_Manual_Update.zip
253  XYZ  2001/10/20(Sat) 22:14
実はWindowsプログラムは専門外なので勉強しまくり。
MFC使わずにスクラッチから書いたのは6年振りカモ(藁

#ちょっといままでサボりすぎてたな。
254  XYZ  2001/10/20(Sat) 22:35
どんなエラーよ?
255  ナマエモナー(TM)  2001/10/20(Sat) 23:13
Zen2Han.BATを起動すると・・・

256  ナマエモナー(TM)  2001/10/20(Sat) 23:26
・・・やっぱり強制終了するんですが・

・・・勘違いしてるかも
257  XYZ  2001/10/20(Sat) 23:27
しょーがないからメール送るよ。
258  ナマエモナー(TM)  2001/10/20(Sat) 23:37
すんまそ。
259  XYZ  2001/10/20(Sat) 23:37
今度のバージョンは、何をやっても落ちないはずだが・・・

#日本語の置換で、たまに問題がある程度。
260  ナマエモナー(TM)  2001/10/20(Sat) 23:39
ぶっちゃけコマンドラインの意味が分かりませんのですが。。
261  XYZ  2001/10/20(Sat) 23:40
>>260
type replace.cpp
の意味はわかる?
262  XYZ  2001/10/20(Sat) 23:43
ってゆーか、わからなければすぐに聞け(藁
263  ナマエモナー(TM)  2001/10/20(Sat) 23:55
>>261
ファイル名 replace.cpp
ですかな?
264  XYZ  2001/10/20(Sat) 23:59
ちがーう。
コマンドラインから、素直に
 type replace.cpp
と打ち込む。
typeコマンドの解説は、
 type /?
って打ってみそ。
265  ナマエモナー(TM)  2001/10/21(Sun) 00:01
>>262
スマソ

266  ナマエモナー(TM)  2001/10/21(Sun) 00:07
>>264
TYPE [ドライブ:][パス]ファイル名
ってのは、つまり・・?
267  XYZ  2001/10/21(Sun) 00:11
TYPEの後に、ファイル名を打ち込むと、それを表示する。
[]でくくってあるのは省略可能の意味。
たとえば、c:\work\replace.cppを表示する場合、
c:\work\で、
type replace.cpp
でも
type c:\work\replace.cpp
でも同じ動きをする。
268  ナマエモナー(TM)  2001/10/21(Sun) 00:33
コンパイル完了できました。

>>235をやると語尾に(TM)が付いてきますな〜
これでOKですか?
269  ナマエモナー(TM)  2001/10/21(Sun) 00:47
>>267
なるほど・・。
270  XYZ  2001/10/21(Sun) 00:53
>>268
正解!
全角空白を半角とかタブとかに置き換える為に作ったにょ。

#今日はもう寝る。
271  ナマエモナー(TM)  2001/10/21(Sun) 01:14
了解。
272  XYZ  2001/10/21(Sun) 05:57
>>271
次は実際に動きを見てみるから>>252をダウソね。
それが終わったら、もっと基本からやることにする。
273  ナマエモナー(TM)  2001/10/21(Sun) 19:45
落としましたよ
274  名無しさん@おはらいっぱい  2001/10/21(Sun) 20:52
次はデバッガーをインストールするやうに。
275  XYZ  2001/10/21(Sun) 20:59
またまたメインマシンをメンテナンス中なので書き込みがつらいニャ。
そろそろ完了だが。
276  ナマエモナー(TM)  2001/10/22(Mon) 01:10
むむ、、
回線切ってインストールします
277  ナマエモナー(TM)  2001/10/22(Mon) 20:06
っと一日過ぎてしまった、、
>>252パスワード制限付きとは(^_^;)
278  XYZ  2001/10/22(Mon) 20:47
うみゅ。じゃあ、そろそろ次の課題を考えるか。

#もっと簡単な奴を風呂あがりに書く予定。
279  XYZ  2001/10/22(Mon) 21:31
//ほいよ。
//arg_test.cpp
#include  <stdio.h>

int  main( int argc, char* argv[] )
{
  int  i;
  
  for( i=0; i<argc; i++ )
  {
    printf( "argv[0] = \n", i, argv[i] );
  }
  return 0;
}

280  XYZ  2001/10/22(Mon) 21:34
コンパイルは、
bcc32 -WC -v arg_test.cpp
arg_test.cppは、いつもと同じようにc:\work\arg_test\に入れるように。
今回追加した-vオプションは、デバッグ用コンパイルね。
281  XYZ  2001/10/22(Mon) 21:35
動作テストは何でもいいんだけど、
arg_test namae mo na ( TM )
とか打ってみる事。
282  XYZ  2001/10/22(Mon) 21:38
ああ、良く見るとソースが変だ・・・
%の表示が出てない・・・
printfの部分だけど、
printf(”argv[%d]=%s¥n”,i,argv[i]);
を半角で打ち込むやうに。
283  XYZ  2001/10/22(Mon) 21:42
ここまで終わったら、
td32 arg_test nama e mo na(T M)
と打ち込んでデバッガーを起動してみる。
起動したらF8を押してみそ。
284  XYZ  2001/10/22(Mon) 21:45
そのつぎに、Module窓をちょっと小さくして、Watch窓を少し大きくする。
で、argv[i]の部分をドラッグして反転表示し、右クリック->Watchを選択
ついでに、iをドラッグして、右クリック->Watchを選択
あとは、飽きるまでF8を連打してみる事。
285  XYZ  2001/10/22(Mon) 21:47
ここまでやってみればデバッガーの大体の使用法はわかると思うが、
何か質問があれば書いときー。
286  ナマエモナー(TM)  2001/10/22(Mon) 23:16
F8を押すと
argv[1] =namae
argv[2] =mo
argv[3] =na(
・・・・
てな感じで進んでいきますな・・
正解の予感?
287  ナマエモナー(TM)  2001/10/22(Mon) 23:25
最後まで終わるとダイアログが出てくる
288  XYZ  2001/10/23(Tue) 05:59
Watch窓でargv[i]とiは見てみた?
あと、argcと、argv[]の働きは理解できたか?
それと、こんなのもやってみるとか
arg_test "test program" test "abc def" \"test\"
289  ナマエモナー(TM)  2001/10/23(Tue) 23:53
むむむむ、、
290  ナマエモナー(TM)  2001/10/24(Wed) 00:25
これは、スクリプトの動きを試すもの?
291  ナマエモナー(TM)  2001/10/24(Wed) 00:32
変数がどんな値になってるかWacth窓で見れるんですな。
292  XYZ  2001/10/24(Wed) 06:41
>>290
コマンドラインパラメータと呼ばれている。
で、argcとargv[0],argv[1],argv[2]...には何が入るのか日本語で
説明してみよ。
293  ナマエモナー(TM)  2001/10/25(Thu) 06:19
半角空白で区切った文字が順番に割り当てられる・・
って、これじゃダメ?
294  ナマエモナー(TM)  2001/10/25(Thu) 06:27
>>288の場合は""\\が表示されないのは何故??
295  XYZ  2001/10/25(Thu) 07:19
 普通は空白で区切られちゃうんだけど、"test program"とやると、
空白を含んだ文字列を渡せる。
 これだと、"が渡せなくなっちゃうので、\"ってやると"を渡す事が
出来るって事。
 見たとおり、argv[0]にはプログラム名がパス付き(ディレクトリ
名付き)で格納される。
 で、argcには、渡した単語の数+1(プログラム名分)が入る。
296  XYZ  2001/10/25(Thu) 07:19
やばいな。寝坊だ(藁
297  XYZ  2001/10/25(Thu) 21:09
>>294
不遜の意味を辞書で引け(藁
298  ナマエモナー(TM)  2001/10/27(Sat) 02:21
しまった・・・めちゃめちゃ間隔が開いてしまった
299  ナマエモナー(TM)  2001/10/27(Sat) 02:30
申し訳ない・・
300  ナマエモナー(TM)  2001/10/27(Sat) 02:57
>>295 理解完了!
301  ナマエモナー(TM)  2001/10/27(Sat) 03:02
不遜・・・むむ、訳の分からない使い方してますな(^_^;)
まあ、痔自慰も気付いてないっぽいし・・
302  XYZ  2001/10/27(Sat) 09:19
うみゅ。
じゃあ、次はprintfでもやるか。
303  XYZ  2001/10/27(Sat) 10:33
//pf_test.cpp
//c:\work\pf_testに保存して(以下略
//main()の時は-WCでWinMain()の時は-Wね。
//%と空白が全角にしてありまふ。
#include  <stdio.h>

#define TEMP_MAX  4

int main(void)
{
  int a = 2865;
  int b = 255;
  
  printf( " 1:%d\n", a );
  printf( " 2:%d\n", b );

  printf( " 3:%2d\n", a );
  printf( " 4:%6d\n", b );
  
  printf( " 5:%04d\n", a );
  printf( " 6:%06d\n", b );
  
  printf( " 7:%x\n", a );
  printf( " 8:%x\n", b );
  
  printf( " 9:%08x\n", a );
  printf( "10:%04x\n", b );
  
  //連続技
  printf( "11:%d,%6d,%x,%4x\n", a, b, b, a );
  
  return 0;
}

304  XYZ  2001/10/27(Sat) 10:35
printfの解説は>>252でダウソしたMSL_C_Reference.chmを参照せよ。
何か質問があれば。
305  XYZ  2001/10/27(Sat) 10:44
そうそう、説明してなかったけど、\nは改行。
306  XYZ  2001/10/27(Sat) 12:50
このスレの10番に注目。
ttp://1ch.tv/ggg3fff4/cgi/read.cgi?fol=prog&log=110241158143&l=50

数日前から話題のプログラムで、Win2000とXPで実行するとOSを連れて逝くらしい。
吾輩はまだ試してないけど。
<解説>
 \tがタブで\bはBackSpace。for(;;)は無限ループ。
 何故OSを連れて逝くのかは謎。
307  ナマエモナー(TM)  2001/10/29(Mon) 23:10
スマソ。2日間ネットに繋げなかった・・
308  ナマエモナー(TM)  2001/10/31(Wed) 02:50
やってみました。
309  ナマエモナー(TM)  2001/10/31(Wed) 03:13
空白が入ってる行があるのは不思議ですがな
310  ナマエモナー(TM)  2001/10/31(Wed) 03:15
>>304
参照。説明ちょい長い、、、
311  ナマエモナー(TM)  2001/10/31(Wed) 03:17
>>306はCONCONみたいなもんでそうか?

312  XYZ  2001/10/31(Wed) 19:41
>>309
ちょっとまてや。どう動くのかわかってないのか?(藁

#数字は文字数。
#%6dだと6文字で、あいてるところは空白。
#%08dだと8文字で、あいてるところに0を入れる。
313  XYZ  2001/10/31(Wed) 19:44
>>310
日本語なんだから読めや(藁
まだよく理解できないとは思うが。

#英語のマニュアルを読まなければならなくなる事も多い。
314  XYZ  2001/10/31(Wed) 19:45
>>311
詳しい説明をしてもよいのだが、Win2Kを持ってないだろうから省略。
315  XYZ  2001/10/31(Wed) 19:49
説明を見ればわかると思うが、dだと10進でxだと16進。
で、xだと"5fcd"とかになり、Xだと"5FCD"とかになる。

#xは大文字と小文字で違う動作をする。
316  ナマエモナー(TM)  2001/11/01(Thu) 07:03
>>312
シラナカタ(;´Д`)
317  ナマエモナー(TM)  2001/11/01(Thu) 07:04
やべ逝かなくては
318  XYZ  2001/11/01(Thu) 22:25
//次。
//pf_test2.cpp
#include   <stdio.h>  //printf()用
#include  <string.h> //strlen()用
#include  <stdlib.h> //strtol(),strtod()用


int main( int argc, char* argv[] )
{
  int i;
  long  LongData;
  double DoubleData;
  char*  Dummy;
  
  if( argc < 2 )
  {
    return 0;  //終了
  }
  
  //文字コードを表示してみる。
  for( i=0; i<(strlen(argv[1])+1); i++ )
  {
    printf( "argv[1][%d]=%c(0x%02X)\n", i, (int)argv[1][i], (int)argv[1][i] );
  }
  
  //long(32bit符号付整数型)に変換して表示
  LongData = strtol( argv[1], &Dummy, 0 );
  printf( "LongData = %ld\n", LongData );
  //double(浮動小数点型)に変換して表示
  DoubleData = strtod( argv[1], &Dummy );
  printf( "DoubleData = %f\n", DoubleData );
  
  return 0;
}

319  XYZ  2001/11/01(Thu) 22:28
pf_test2 namaemonaとか、
pf_test2 3.14159265358979とか、
pf_test2 65535
などを試してみよ。

何か質問があれば。
320  ナマエモナー(TM)  2001/11/04(Sun) 03:16
ためしてみましたおぉ
321  ナマエモナー(TM)  2001/11/04(Sun) 03:24
&Dummyと言うのは初めて見ましたがこれは、、、
ダミーなのか
322  ナマエモナー(TM)  2001/11/04(Sun) 03:28
32bit符号付整数型 浮動小数点型
って何ですか?
323  ナマエモナー(TM)  2001/11/04(Sun) 03:28
むむ、、修行が足りない
解析落ち
324  XYZ  2001/11/04(Sun) 08:53
変数の型から説明が必要なのか・・・

charはたいてい8bit。で-127から128までの数がセット可能。
0x01が1で、0x02が2で・・・・0x7Fが127。
0xFFが-1で、0xFEで-2で、・・・・0x80が-128
8bitの数なので、-1(0xFF)と1(0x01)を足すと、0になる。

unsigned charは符号なし。
素直に、0x01が1で、0x7Fが127で、0x80が128で、0xFFが255。

なぜ、「たいてい8bit」なのかと言うと、8bitではないコンパイラ
がこの世にはあるらしい。

#まだ見た時ないけど。
325  XYZ  2001/11/04(Sun) 09:11
他の型はC:\borland\bcc55\Includeのlimits.hを参照。
・・・すると、
#include <_lim.h>
って書いてあるので、
C:\borland\bcc55\Includeの_lim.h
を見ると、
short, unsigned short,
int, unsigned int,
long, unsigned long
の最大値と最小値が書いてある。

#include文は、コンパイル時に、指定のファイルをその
#位置に貼りつけてコンパイルする。
#また、bccでは、intはlongになっているが、他のコンパイラ
#ではshortの事があるので注意。
326  XYZ  2001/11/04(Sun) 09:15
整数型って言っているのは、
char,int,short,longとその符号なし(unsigned XXX)
3.1415なんかはセットできない。

小数点を含む数を使用する場合はdouble型を使用する。
なお、unsigned doubleは存在しない。
327  XYZ  2001/11/04(Sun) 09:50
//limit.cpp
//こんなんでどーよ。
#include  <stdio.h>  //printf用
#include  <limits.h>  //整数型の最大最小値が書いてある。
#include  <float.h>  //浮動小数点型の

int  main(void)
{
  //整数型
  //longの場合は%dではなく%ldにする事。bccでは%dでも動いちゃうけど・・・。
  //unsignedの場合は%u。そうしないと-1とか表示されちゃう。
  printf( "     char = %d〜%d\n", CHAR_MIN, CHAR_MAX );
  printf( "unsigned char = %u〜%u\n", 0, CHAR_MAX );
  printf( "     short = %d〜%d\n", SHRT_MIN, SHRT_MAX );
  printf( "unsigned short = %u〜%u\n", 0, USHRT_MAX );
  printf( "     long = %ld〜%ld\n", LONG_MIN, LONG_MAX );
  printf( "unsigned long = %lu〜%lu\n", 0, ULONG_MAX );
  printf( "unsigned long = %ld〜%ld 試しに。\n", 0, ULONG_MAX );
  printf( "     int  = %ld〜%ld\n", INT_MIN, INT_MAX );
  printf( "unsigned int  = %lu〜%lu\n", 0, UINT_MAX );
  
  //浮動小数点型
  printf( "double = %E〜%E", DBL_MIN, DBL_MAX );
  
  return 0;
}

328  XYZ  2001/11/04(Sun) 09:52
また時計が狂ってるな。
-80Minか。
329  XYZ  2001/11/04(Sun) 10:10
>>321
strtolの解説を読めばわかるのだが。

bcc32 -WC -vでコンパイルして
 tdb32 pf_test2 5678dayo
を実行。
O LongData = strtol( argv[1], &Dummy, 0 );
の行の左の"O"をクリックして、その行を赤く表示させる。
それからF9(RUN)を押すと、その行まで一気に実行するので、
Watch窓にDummyを追加してからF8を押して1ステップ実行し、
Dummyに何がセットされるのか確認せよ。

#赤く反転させた位置まで実行すると止まる。
#通称BreakPoint機能。
#BreakPointを設定しないでF9を押すと、最後まで一気に実行。
330  XYZ  2001/11/04(Sun) 19:43
訂正
charは、コンパイラによって符号ありの場合となしの場合があるんだった。
charは0〜255か-128から127。コンパイラによって違う。
signed charが符号ありで-128〜127
unsigned charが符号無しで0〜255
331  ナマエモナー(TM)  2001/11/10(Sat) 23:36
・・・・
332  ナマエモナー(TM)  2001/11/10(Sat) 23:37
一週間もたってしまった
333  XYZ  2001/11/11(Sun) 05:35
ほぅ。生きておったか。
334  XYZ  2001/11/11(Sun) 05:36
-132Min
335  XYZ  2001/11/11(Sun) 05:37
で、禁止令はどうよ(藁
336  ナマエモナー(TM)  2001/11/12(Mon) 21:07
ま、まあなんとか・・・
337  XYZ&8482  2001/11/15(Thu) 20:17
アヒャ!
338  XYZ  2001/11/15(Thu) 20:18
うみゅ。だめか™
sage  pre  等幅 書き込み後もこのスレッドに留まる
名前: メール:

■統合板@厨房本拠地に戻る■  ページの先頭まで飛ぶ  レスを全部見る  最新レス100件を見る

readres.cgi ver.1.69β1
(c)megabbs
(original)
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送