トップページ⇒tech
846コメント269KB

( ゚Д゚)ノ ギコ猫のプログラム相談室part3

■ このスレッドは過去ログ倉庫に格納されています
0001新米ギコNGNG
  __
 J_†_|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (@`@`゚Д゚) < 新天地開拓、なんでもオレに聞け!
Π ̄ ̄ ̄| \
|つ 布教 ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
前のスレ http://mentai.2ch.net/test/read.cgi?bbs=prog&key=963328406
0002名無しさん@お腹いっぱい。NGNG
この板、閑古鳥が鳴いているようですが、どうすれば人が増えますか
0003名無しさん@お腹いっぱい。NGNG
SDKを勉強を始めた所です。
関数とか構造体とかが覚えれないんですが、意識的に覚える方が
良い? 慣れて自然に覚える方が良い? どっち?
0004名無しさん@お腹いっぱい。NGNG
とりあえず「覚える」という発想はやめたほうが宜しいかと。
学校のテストとかと違って、いくら本見ようがカンニングしようが
カット&ペーストしようが平気よん。
いちいちAPIの仔細まで記憶する必要などありません。
#現に私もWinMain関数どんなだったか思い出せないし(w

とにかく何でもいいのでコーディングしませう。
0005名無しさん@お腹いっぱい。NGNG
>3
必要なときに、必要なドキュメントが引ければ、それで良し。

英語は読めた方が便利だけどな。
0006名無しさん@お腹いっぱい。NGNG
こういうスレッドうざいな。
sage
0007>6NGNG
同感です。1が来てからプログラム板が荒れましたです。
0008新米ギコNGNG
  __
 J_†_|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  (@`@`゚Д゚) < >>2 産めよ、増やせよ、細胞分裂。 気長に待て!
Π ̄ ̄ ̄| \
|つ 布教 ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>3 言語の仕様は覚えろ! 関数はリファレンス引け!
Π ̄ ̄ ̄| \_____________
|つ 理解 ()
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>4-5 お勤めご苦労さん!
Π ̄ ̄ ̄| \_____________
|つ 感謝 ()
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>6 このれすむかつく〜♪ sageだ!
Π ̄ ̄ ̄| \_____________
|つ sage ()
| |___.|
  ∪∪
  ノ/∧ ∧ヽ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  川 ̄з ̄|| <   >>7 同感です。 7が来てから荒れましたです
  〜(@`@`⊃ ノ⊃  \______________
  (__)_)
0009名無しさん@おっぱいがいっぱい。NGNG
>>6 このれすむかつく〜♪ sageだ!
>>7 同感です。 7が来てから荒れましたです
新米ギコがギコらしくなってきたぞ!

新米ギコさんに
もっとモナー語を使って欲しいのですが、どうしたらいいですか
0010名無しさん@お腹いっぱい。NGNG
sageで書けば下がると思ってる、6=7みたいなバカは
プログラマ板から出て来ないで欲しいな。
0011名無しさん@お腹いっぱい。NGNG
class test{
public static void main(String args[]){
System.out.println("hoge\b");
}
}
の出力結果はhogeなのに、
class test{
public static void main(String args[]){
System.out.println("hoge\bhoge");
}
}
の出力結果はhoghogeなのはなぜですか?

初めの出力結果がhogではなくhogeな点が疑問です。
0012>11NGNG
2番目の出力結果は hoghoge ではなく あくまでも"hoge\bhoge"です
ただ\bによりカーソルが1つ戻ってeが見えないだけですよ。
001311じゃないけどNGNG
そっか、\bは[BS]じゃなくて[←]だったのか。(概念的に)
勉強になりました。

#java知らないんで、俺も理由がわからなかったのよん
001413NGNG
>java知らないんで
単に、試せなかっただけです。

Cでも試してみたら、同じ結果でした(Win)。
ボケてました。すみませんです。
0015名無しさん@お腹いっぱい。NGNG
変数名の一番始めの文字や一番最後の文字でアンダーバー_を使うときの
技術者の意図を教えて下さい。VBからJAVAに転向してきたばかりの私は
たじろぐばかりです。

例>変数名の最後に_を使っている例。_が初めにある場合についても知りたいです。

public class Company {
public Company(Owner owner@` Account account) {
owner_ = owner;
account_ = account;
}

public void addEmployee(Person person) {
employee_.addElement(person);
}

private Person owner_;
private Person account_;
private Vector employee_ = new Vector(); // Vector
}
0016名無しさん@お腹いっぱい。NGNG
_がはじめについているのは、C言語でこれはコンパイラ(システム)独自の
関数だよ〜ということを示すための関数に使われていることが多い。

最後についているのは知りません。
ただ、そのソースを見る限りではこの変数はインスタンスであることを示すために
つけているものと思われます。
(ちょっと用語があやしい・・・)
0017名無しさん@お腹いっぱい。NGNG
C++の場合だけど・・・
メンバ変数と一時変数(引数)の名前が、
普通に考えると同じになってしまうので、
最後にアンダースコアをつける流儀があると聞いた事が
あるような、ないような。
0018名無しさん@お腹いっぱい。NGNG
みなさん、ありがとうございました。
かなり納得しました。

それでは、ディレクトリ名の一番始めがドット.になっているものを
たまに見掛けますが、それはどのような意図によるものなのでしょうか?
質問ばかりですみません。
0019名無しさん@お腹いっぱい。NGNG
UNIX系のOSでは、ドットから始まるファイルは隠しファイルっす。
ディレクトリ名をドットから始める理由はしらないっす。
0020UNIX野郎NGNG
Netscapeは.netscapeというディレクトリを作ります。このなかに
キャッシュとかクッキーとかその他もろもろの設定ファイルなどがあり
ます。そのファイルを手作業でいじることはあまりないので隠しディレ
クトリになってるんじゃないかなぁ?隠しだとファイルを見るコマンドls
にaオプションを付けないと見れません。通常はlsだけ。するとドットか
ら始まるファイルやディレクトリは見えない。
0021名無しさん@お腹いっぱい。NGNG
英語で「コメントにする」「コメントをはずす」は、
"comment" "uncomment" でいいんでしょうか?
あと「コメント化」「非コメント化」という言い方ってあります?
0022名無しさん@お腹いっぱい。NGNG
_で始まる名前は処理系が使うのでユーザーは使ってはならんことになっておったと思うが…?
0023名無しさん@お腹いっぱい。NGNG
Javaでは、privateメソッドの頭に、_ を付けて書く流儀があります。
C の #define に相当するものがないので、これでも大丈夫です。
0024delete thisNGNG
って、OKでちゅか?
0025>23NGNG
あったっけ、そんな流儀?
0026名無しさん@お腹いっぱい。NGNG
ないでしょ
0027cafeNGNG
VBよりVCの方が速いようですが、なぜなんでしょうか?
たいして違わない気もしますが。
0028名無しさん@お腹いっぱい。NGNG
VC=ネイティブ
VB=仮装マシン
VBはちょっと違うが、こんなイメージでいいとおもうよ。
002923NGNG
×流儀
○流派
鬱だ仕事しよ
0030>27NGNG
単純な演算とかさせるならVBもネイテブコードを吐かせられますから
そんなに変わらない場面もあると思います
ただVBだと単純な整数で良い所にvariantを使ってしまう
コントロールや外部DLLをどうしても使う
VBの便利な構文の多くは遅い
0031名無しさん@お腹いっぱい。NGNG
・・・ギコ出てこないなぁ
0032名無しさん@お腹いっぱい。NGNG
コミケ遠征組なんだろ。わらぃ
0033新米ギコ@遠征はしないNGNG
   ∧_∧  / ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< >>9 無理モナー
  (    )  \_____
  | | |
  (__)_)
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ΛΛ    < 余計な手間取らすなゴラァ!
(゚Д゚Λ)_Λ  \____________
( ̄⊃ ´∀`)
| | ̄| ̄
(__)_)
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>10 sageの意味が一意だと思ってる君は逝ってもらいたい
Π ̄ ̄ ̄| \
|つ 晒し ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>10 最近はhageがトレンドだ!
Π ̄ ̄ ̄| \
|つ ほげ ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
0034新米ギコ@遠征はしない NGNG
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>13-14 勉強あるのみ、そして逝け!
Π ̄ ̄ ̄| \
|つ 騙れ ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>15 単なる名前だ! つーか、書いたやつにキケ!
Π ̄ ̄ ̄| \
|つ フメイ ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>18 どっとこむといっしょでトレンドだ!
Π ̄ ̄ ̄| \
|つ 隠し ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>21 out of コメント!
Π ̄ ̄ ̄| \
|つ *アウト ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
0035新米ギコ@遠征はしないNGNG
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>24 ギコbasicだと、 イッテヨシ ジブン!
Π ̄ ̄ ̄| \ ツーカ、分かって使うならヨシ!
|つ ウソ ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) <  >>27 コンパイラとインタプリタの違いを
Π ̄ ̄ ̄| \    レポート用紙300にまとめて提出だ!
|つギコンパ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) <  >>29 鬱は病気だ! 病院へ逝け!
Π ̄ ̄ ̄| \  
|つお疲れ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) <  >>30 休日の昼間にPCの前に入るな!
Π ̄ ̄ ̄| \  
|つ ヒッキー ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
0036新米ギコ@遠征はしないNGNG
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) <  >>31 ネコは入れん! ニャ-
Π ̄ ̄ ̄| \  
|つネコデス()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) <  >>etc 解決解答御苦労様!
Π ̄ ̄ ̄| \  
|つ 感謝 ()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
0037しーNGNG

     __  オハヨ
     J_†_|__   
    /(*゚Д゚)/)/\
  /| ̄∪∪ ̄|\/
    |   ╋   |/
     ̄ ̄ ̄ ̄ 
0038名無しさん@お腹いっぱい。NGNG
なんだ、やっぱり荒らしてるだけじゃないか。
0039名無しさん@お腹いっぱい。NGNG
mentaiが落ち杉です・・・どうしたらよろしですか?
・・・あとメインのとこも・・
0040新米ギコNGNG
    ∧ ∧         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ̄ ̄( ゚Д゚) ̄ ̄|   <  >>37 おやすみ!
|\⌒⌒⌒⌒⌒⌒\   \
|  \           \    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\  |⌒⌒⌒⌒⌒⌒|
  \ |_______|

  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>38 mentai落としたのも俺の仕業だ!
Π ̄ ̄ ̄| \
|つ ハカー ()   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
  ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 (@`@`゚Д゚) < >>39 2ch卒業だ!
Π ̄ ̄ ̄| \
|つ 蛍ノ光()    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
  ∪∪
0041名無しさん@お腹いっぱい。NGNG
>40
2ちゃんがDOSアタック食らってたってのホントだったの?
0042名無しさん@お腹いっぱい。NGNG
なんかこっちのほうが雑談板になってるなあ。
0043名無しさん@お腹いっぱい。NGNG
class ArrayArgument {

public static void main(String args[]) {

// 変数を初期化する
int x[] = { 11@` 12@` 13@` 14@` 15 };

// 変数を表示する
display(x);

// メソッドを呼び出す
change(x);

// もう一度変数を表示する
display(x);
}

public static void change(int x[]) {
int y[] = { 21@` 22@` 23@` 24@` 25 };
x = y;
}

public static void display(int x[]) {
for (int i = 0; i < x.length; i++)
System.out.print(x[i] + " ");
System.out.println("");
}
}

これの出力結果は

11 12 13 14 15
11 12 13 14 15

こうなるのですが、

なぜ

11 12 13 14 15
21 22 23 24 25

にならないのですか?
0044名無しさん@お腹いっぱい。NGNG

11 12 13 14 15
11 12 13 14 15

こうなるのですが、

なぜ

11 12 13 14 15
21 22 23 24 25

にならないのですか?
0045むふ〜んNGNG
君はスコープの意味がわかるかな?

changeメソッドで変化したのはメソッドに渡した配列であって、
元の配列xは変化しません。

11 12 13 14 15
21 22 23 24 25
こう表示したいなら
class Test{
public static void main(String[] args){
/*String t = "1@`2@`3@`4@`5";

StringTokenizer st = new StringTokenizer(t@`"@`");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}*/

// 変数を初期化する
int x[] = { 11@` 12@` 13@` 14@` 15 };

// 変数を表示する
display(x);

// メソッドを呼び出す
x = change(x);

// もう一度変数を表示する
display(x);
}

public static int[] change(int x[]) {
int y[] = { 21@` 22@` 23@` 24@` 25 };
x = y;
return x;
}

public static void display(int x[]) {
for (int i = 0; i < x.length; i++)
System.out.print(x[i] + " ");
System.out.println("");
}
}
0046むふ〜んNGNG
を、さっきの検証プログラムがコメントに入ってるな。
むはは。
0047>45NGNG
つーか、changeの引数xの意味は何ね?
むしろ、これじゃこのメソッド自体無意味。

ってか、Javaはよく知らないのだが、参照渡しは出来ないのか?
0048名無しさん@お腹いっぱい。NGNG
>changeメソッドで変化したのはメソッドに渡した配列であって、
>元の配列xは変化しません。

でも、こうすると、

public static void change(int x[]) {

x[0] = 21;
x[1] = 22;
x[2] = 23;
x[3] = 24;
x[4] = 25;

}

出力結果は、

11 12 13 14 15
21 22 23 24 25

になるんですよ。
0049>48NGNG
それはポインタの指している先の内容を書き換えてるからです。
xを書きかえるのとxの指している先を書きかえるのとの違いです。
0050むふ〜んNGNG
Javaでは参照による値渡しは出来ません。
>むしろ、これじゃこのメソッド自体無意味
そう、まさにそのとおり。
質問者によくわかるように彼のテンプレートをそのまま使ったんだけどね
0051名無しさん@お腹いっぱい。NGNG
>50
「参照による値渡し」の説明をおねがいしたいのですが。
0052名無しさん@お腹いっぱい。NGNG
Javaは全てにおいて値渡し。
オブジェクトを渡しても、渡されるのは参照ではなくて
参照の値なのですなぁ〜〜(~¬~)
0053名無しさん@お腹いっぱい。NGNG
>52
それは、Cのように参照渡しはポインタの値渡しで解決しているという
ことですか?
マシン語レベルまで行くと、どっちみち、参照渡しといっても、アドレ
スなど、具体的な値を渡さなくちゃいけませんが、そういうレベルの話
ですか?
005453NGNG
あと、オブジェクトを渡す場合は普通、参照を渡すんでなくて、値
を渡すと、私の場合は思うんですけど、Javaはオブジェクトを渡す
ときも参照渡しなんですか?
参照渡しと参照の値渡しを区別しないでの話ですが。

なんどもすいません。よろしくお願いします。
0055名無しさん@お腹いっぱい。NGNG
Cの参照渡しはアドレス渡し。
[ポインタ]→[実体]
このポインタ渡す時に渡される引数は
[引数]→[実体]
な関係

Javaでのオブジェクト変数はオブジェクト実体への参照
[オブジェクト変数]→[実体]
このオブジェクトを引数に渡す時、引数は
[引数]=[オブジェクト変数の値のコピー]→[実体]
なわけ

違ってたらスマソ
005655NGNG
あ、上の[オブジェクト変数の値のコピー]っていうより
[オブジェクト変数が指す実体へのアドレスのコピー]のほうがいいかも
0057名無しさん@お腹いっぱい。NGNG
class MyObject{
  int a;
}
public void f(MyObject obj){
  obj=new MyObject();
}
↑全くの意味なし(w

public void g(MyObject obj){
  obj.a=5;
}
↑これは意味ある。
005853>55NGNG
なるほど、よくわかりました。
ありがとうございます。

Cのほうの説明は、Cの参照渡しはポインタをつくって渡しますから
foo(&var);
としたとき
[仮引数用に作られたポインタ]→[var]
[引数]=[仮引数]→[var]
ということになるでしょうか。あと
int* p@` v; p=&v;
foo(p);
も、Cの場合は参照渡しというふうに呼ぶこともあるので、って、話
がそれちゃいますね…

Javaの場合は、変数が参照なので(一般にバイトコードは、整数型
などは変数が直接値を持っているおもいますが)いわゆる値渡しと
いうのは考え方が存在しないわけですね。
005953NGNG
>57
その例の場合、f()は、参照のコピーを渡す場合も、ポインタの値を
渡す場合も、値をわたす場合も意味が無いってことですね?

f()に意味があるとすれば、Cの場合は変数へのポインタの参照
(つまりポインタへのポインタ)が渡ってきた場合と、C++で言う
参照が渡ってきた場合、ということでしょうか。
006055NGNG
Cだとそんな感じですかねぇ・・

Java では57の例のようにメソッド内で仮引数の参照を変えるような
ことをしなければ問題はあまり起こらないですねぇ〜〜
だから値渡しとか参照渡しとかいちいち考えなくて良いのが楽です( ̄ー ̄)

配列もオブジェクトなので、そこらへんは始めは迷うところですよね〜〜
でも、Javaでもたまに参照渡しできたらいいなぁと思うこともありますよ。
オブジェクト生成を含めたコードを一括して処理したい時とかね〜〜
006155NGNG
57のはCだと意味ありますよ〜〜
f(int *p){
  *p=3;
}
とかだったらね〜〜

・・・Cは地震がないけど
006253>55NGNG
なるほど、すっきりしました。
ありがとうございました。
006353>61NGNG
57の例を61に置きかえると
f(int*p){
 int v;
 p=&v;
}
って感じでかんがえてました。
0064名無しさん@お腹いっぱい。NGNG
public void f(MyObject obj){
  obj=new MyObject();
}

このようにこの中でnewすると、全く別のobjになって
MyObject objの宣言がローカル変数の宣言と化すという意味ですか?

----------------------------------------------------------

public void g(MyObject obj){
  obj.a=5;
}

これは参照渡しではないのですか?
0065名無しさん@お腹いっぱい。NGNG
VC++での質問なんですが、スクロール可能なビューに動的に生成された
エディットボックスがいくつか配置されており、それらのエディットボッ
クスの間はタブで移動することが出来るとします。
このとき、タブでフォーカスを与えるコントロールが現在の表示領域の
外にあることがありますが、それを検査し、ビューをスクロールしてそ
のコントロールを表示領域内に表示する方法を教えて欲しいのですが。

VC++6.0ProSP4 + NT4.0でMFCを使って開発してます。

ところで、この質問に関する愚痴。
別に、読まなくてもいいですが、暇ならどうぞ。
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=951366463&st=249&to=249&nofirst=true
0066名無しさん@お腹いっぱい。NGNG
MFCでCRegKeyクラスを使うときって、
どうすれば良いのですか?
0067>66NGNG
「どうすれば」と訊かれても、何をどうしたいのですか?
006866>67NGNG
申し訳ありません。
このクラスをどう使うか分からなかったので(クラス自体理解がいまいち)、
こんなことを書きましたが、これじゃ分かるわけありませんね。
すみませんでした。
申し訳ついでといってはなんですが、
今、出てきた疑問点を質問させて下さい。
CRegKey::SetValueを使用してレジストリにバイナリで
書き込むにはどうすれば良いのでしょうか?
DWORD値や文字列では書き込めたのですが。

0069名無しさん@お腹いっぱい。NGNG
>>65
コントロールをサブクラス化して
WM_SETFOCUSが来たら親にメッセージを送るってのは駄目なん?
0070名無しさん@お腹いっぱい。NGNG
昨日からC言語を勉強しはじめました。
time(&start);
time(&end);
jikan = end - start;
としても、小数以下が計算されません。
start@`end@`jikanをfloatで定義すると怒られます。
どうやったら10.25秒、といったカタチで得られるのですか?
0071>70NGNG
time()で得られる time_t 型の時刻は1秒単位です。
007270NGNG
なるほど…。
それならば別の関数を利用しないといけないんですね。
標準ライブラリの中でそれの出来そうなものが、ぱっと見て
見つけられません。

もう少し考えてみます。
分からなかったらまたよろしくお願いします。
0073>71NGNG
昔はそうだったけど、今はそうとは限らないようです。

>>70さんは環境を書いた方が適切なコメントが得られるかもしれません
007470NGNG
>73さん

ありがとうございます。
私の環境は、VC++の一番安い奴の学割版です。
環境ってこのことでいいのでしょうか?

いまMSDNライブラリという奴を眺めていたら_ftimeというのが
なんとなくそれらしく思えてきました。
ちょい頑張ってみます。
007570NGNG
あぁ、でも標準ライブラリっていう奴じゃないのかな。
使わない方がいいものなんでしょうか?
0076新米ギコNGNG
    ∧ ∧    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (@` ゚ 3 ゚)  < >>75 何事も経験、逝ってよし!
  ヽ/ つ旦)~~  \_____________
  (_ __)
     ^
007765NGNG
実は、他人が作ったプログラムだったりしたんですが、よく見たらエディット
コントロールではなくリッチエディットコントロールになってた。

>69
取りあえず、そんな感じでやってみてます。
ただ、親にメッセージを送る、ではなく、コントロールのイベントハンドラ
で直接処理してるような感じですが。
これで、何か問題あるなら教えて下さい。

ところで、基本的にMFCは嫌いだけど、派生により容易にサブクラス化が出
来るのは楽でいいね。
007873>70NGNG
それならclock(void);がたぶんあると思います
007970>78NGNG
ありがとう。満足行くように動きました。
感謝です。
008065NGNG
取りあえず、解決しました。
足し算と引き算を間違えてえらい目に遭ってたけど。

教訓:
デバッガをよく活用しよう。
頭の中だけで計算しようとしないこと。
0081名無しさん@お腹いっぱい。NGNG
エクセルでセルにABCと入力して次に
違うセルにAとだけ入力すると勝手に
BCが反転表示で付け足されます。

このような機能をVBでやりたいのですが
教えてください。
0082名無しさん@お腹いっぱい。NGNG
それの何を教えてほしいのかはっきりさせなさい。
0083名無しさん@お腹いっぱい。NGNG
>82

誰に言っているのかはっきりさせなさい。(なんちて)
0084スタックダンプってNGNG
デバッガさんに言われるのですが、どういうことなのでしょう?
0085新米ギコNGNG
      ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>84 デバッガさんがきちんと仕事してるっつーことだ!
 UU ̄ ̄ U U  \_____________
0086未練NGNG
昨日あった「知り合いに管理頼んでたんだけど外国いっちゃうので誰かおねがい」スレ
どこいった?きえたのかな。
0087新米ギコNGNG
 ∩ ∩
 | ∪ |
 |  〜
 | ∧ ∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 | i @`@`゚Д゚) <  >>86 http://mentai.2ch.net/test/read.cgi?bbs=prog&key=966411771
 U U    \________
0088未練NGNG
あ、あっちの板だったのか、スマソ
0089名無しさんNGNG
マルチスレッドな状態で、同じプロセス内の他のスレッド(ウィンドプロシージャ
のあるスレッド外)から、コモンコントロールへSendMessageするとデットロック
してしまいますが、このような使い方はしてはいけないのでしょうか?
また、回避するにはどうすれば良いのでしょうか?ちなみにPostMessage
では戻り値が使えないためNGです。
0090>89NGNG
>指定されたウィンドウが呼び出し側のスレッドで作成されているとき
> ウィンドウ プロシージャはサブルーチンとしてすぐに呼び出されます
>指定されたウィンドウが異なるスレッドで作成されているとき、
> Windowsはそのスレッドに切り替え、 適当なウィンドウ プロシージャを
> 呼び出します
とあるので、それだけが悪いんじゃないように思います。具体的にはどうしたのですか?
0091>90NGNG
たとえば

class CAAA {
CListBox m_ListBox;
};
====

UINT ThreadProc(LPVOID lpParam)
{
(CAAA*) pAAA = (CAAA*)lpParam;
char str[64] = "STRING";

while(1) {
pAAA->m_ListBox.AddString(str);
Sleep(100);
}

}

ってやるとロックしませんか?
※スレッドから抜けられなくなるのは分かってて書いてます。
009291>90NGNG
すみません、ウソ書いてるみたいです。
もうすこし、整理してきます。
0093名無しさん@お腹いっぱい。NGNG
意味わからん
0094教えてファイルロックNGNG
CGI板のスレを見ましたが、Cでファイルロックする方法がイマイチわかりませんでした。
で、結局こんなコードを書いています。(エラー処理は捨象し、SIGTERM以外の終了
シグナルは考えない)

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

#define LOCKFILE "mylock"
#define DUMMYNAME "dummy"

int main(void);
void clearout(int sig);

int lockkeep;

int main(void){
lockkeep = 0;
signal(SIGTERM@` clearout);
while(symlink(DUMMYNAME@` LOCKFILE));
/* gap */
lockkeep = 1;

/* critical */

remove(LOCKFILE);
return 0;
}

void clearout(int sig){
if(lockkeep) remove(LOCKFILE);
exit(1);
}

ですが、/* gap */ で示したところでSIGTERMが発生した場合にデッドロック
します。もしくは /* critical */ の部分でも、ハンドリングできないシグ
ナルを受信するなどしてプロセスが死んだ場合にもデッドロックしてしまいます。
もちっとマシなコードにするにはどうすればいいですか?
0095名無しさん@お腹いっぱい。NGNG
class ExceptionBase{
.....
}
class ExceptionA : public ExceptionBase{
....
}

void hoge()
{
throw new ExceptionA;
}

int main()
{
try{
hoge();
}catch(ExceptionBase* e){
....
}

とした場合、hogeで投げた new ExceptionA はメモリリークには
ならないのでしょうか?
0096>95NGNG
なるんじゃない? 電源onでズッと使わないアプリで、
めったに投げないならリークしても問題無いだろうけどね。
だから手を抜いてもいいとは思わないけど、まあ忘れても軽症かな

で、正しいやり方は知ってる?
0097名無しさん@お腹いっぱい。NGNG
参照で受けるのが王道じゃなかったか?
EffectiveC++辺りに何か書いてあったぞ。
009895>96,97NGNG
>で、正しいやり方は知ってる?
知らないです。
参照でやろうとしたらキャストがうまくいかず、
ここで聞いてしまいました。
EffectiveC++は持っているので、どの辺に書いてあるのか
教えていただけたら嬉しいです。

009995NGNG
Javaみたいにやりたいんですけどダメですかね…
010097NGNG
ん〜、今手元にないからな‥‥‥家帰れば分かるんだけど。
Moreの方だったかもしれない。
例外辺りで索引漁ってみるといいかも。
0101_finefirstってNGNG
_findfirst使っているファイルと同じフォルダしか探しに行かないのでしょうか?
それともマシン全体を探し回ってくれるの?
■ このスレッドは過去ログ倉庫に格納されています