( ゚Д゚)ノ ギコ猫のプログラム相談室part3
■ このスレッドは過去ログ倉庫に格納されています
0001新米ギコ
NGNGJ_†_| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < 新天地開拓、なんでもオレに聞け!
Π ̄ ̄ ̄| \
|つ 布教 ()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
前のスレ http://mentai.2ch.net/test/read.cgi?bbs=prog&key=963328406
0002名無しさん@お腹いっぱい。
NGNG0003名無しさん@お腹いっぱい。
NGNG関数とか構造体とかが覚えれないんですが、意識的に覚える方が
良い? 慣れて自然に覚える方が良い? どっち?
0004名無しさん@お腹いっぱい。
NGNG学校のテストとかと違って、いくら本見ようがカンニングしようが
カット&ペーストしようが平気よん。
いちいちAPIの仔細まで記憶する必要などありません。
#現に私もWinMain関数どんなだったか思い出せないし(w
とにかく何でもいいのでコーディングしませう。
0005名無しさん@お腹いっぱい。
NGNG必要なときに、必要なドキュメントが引ければ、それで良し。
英語は読めた方が便利だけどな。
0006名無しさん@お腹いっぱい。
NGNGsage
0007>6
NGNG0008新米ギコ
NGNGJ_†_| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>2 産めよ、増やせよ、細胞分裂。 気長に待て!
Π ̄ ̄ ̄| \
|つ 布教 ()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>3 言語の仕様は覚えろ! 関数はリファレンス引け!
Π ̄ ̄ ̄| \_____________
|つ 理解 ()
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>4-5 お勤めご苦労さん!
Π ̄ ̄ ̄| \_____________
|つ 感謝 ()
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>6 このれすむかつく〜♪ sageだ!
Π ̄ ̄ ̄| \_____________
|つ sage ()
| |___.|
∪∪
ノ/∧ ∧ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
川 ̄з ̄|| < >>7 同感です。 7が来てから荒れましたです
〜(@`@`⊃ ノ⊃ \______________
(__)_)
0009名無しさん@おっぱいがいっぱい。
NGNG>>7 同感です。 7が来てから荒れましたです
新米ギコがギコらしくなってきたぞ!
新米ギコさんに
もっとモナー語を使って欲しいのですが、どうしたらいいですか
0010名無しさん@お腹いっぱい。
NGNGプログラマ板から出て来ないで欲しいな。
0011名無しさん@お腹いっぱい。
NGNGpublic 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>11
NGNGただ\bによりカーソルが1つ戻ってeが見えないだけですよ。
001311じゃないけど
NGNG勉強になりました。
#java知らないんで、俺も理由がわからなかったのよん
001413
NGNG単に、試せなかっただけです。
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関数だよ〜ということを示すための関数に使われていることが多い。
最後についているのは知りません。
ただ、そのソースを見る限りではこの変数はインスタンスであることを示すために
つけているものと思われます。
(ちょっと用語があやしい・・・)
0017名無しさん@お腹いっぱい。
NGNGメンバ変数と一時変数(引数)の名前が、
普通に考えると同じになってしまうので、
最後にアンダースコアをつける流儀があると聞いた事が
あるような、ないような。
0018名無しさん@お腹いっぱい。
NGNGかなり納得しました。
それでは、ディレクトリ名の一番始めがドット.になっているものを
たまに見掛けますが、それはどのような意図によるものなのでしょうか?
質問ばかりですみません。
0019名無しさん@お腹いっぱい。
NGNGディレクトリ名をドットから始める理由はしらないっす。
0020UNIX野郎
NGNGキャッシュとかクッキーとかその他もろもろの設定ファイルなどがあり
ます。そのファイルを手作業でいじることはあまりないので隠しディレ
クトリになってるんじゃないかなぁ?隠しだとファイルを見るコマンドls
にaオプションを付けないと見れません。通常はlsだけ。するとドットか
ら始まるファイルやディレクトリは見えない。
0021名無しさん@お腹いっぱい。
NGNG"comment" "uncomment" でいいんでしょうか?
あと「コメント化」「非コメント化」という言い方ってあります?
0022名無しさん@お腹いっぱい。
NGNG0023名無しさん@お腹いっぱい。
NGNGC の #define に相当するものがないので、これでも大丈夫です。
0024delete this
NGNG0025>23
NGNG0026名無しさん@お腹いっぱい。
NGNG0027cafe
NGNGたいして違わない気もしますが。
0028名無しさん@お腹いっぱい。
NGNGVB=仮装マシン
VBはちょっと違うが、こんなイメージでいいとおもうよ。
002923
NGNG○流派
鬱だ仕事しよ
0030>27
NGNGそんなに変わらない場面もあると思います
ただVBだと単純な整数で良い所にvariantを使ってしまう
コントロールや外部DLLをどうしても使う
VBの便利な構文の多くは遅い
0031名無しさん@お腹いっぱい。
NGNG0032名無しさん@お腹いっぱい。
NGNG0033新米ギコ@遠征はしない
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名無しさん@お腹いっぱい。
NGNG0039名無しさん@お腹いっぱい。
NGNG・・・あとメインのとこも・・
0040新米ギコ
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < >>37 おやすみ!
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>38 mentai落としたのも俺の仕業だ!
Π ̄ ̄ ̄| \
|つ ハカー ()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(@`@`゚Д゚) < >>39 2ch卒業だ!
Π ̄ ̄ ̄| \
|つ 蛍ノ光()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
0041名無しさん@お腹いっぱい。
NGNG2ちゃんがDOSアタック食らってたってのホントだったの?
0042名無しさん@お腹いっぱい。
NGNG0043名無しさん@お腹いっぱい。
NGNGpublic 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名無しさん@お腹いっぱい。
NGNG11 12 13 14 15
11 12 13 14 15
こうなるのですが、
なぜ
11 12 13 14 15
21 22 23 24 25
にならないのですか?
0045むふ〜ん
NGNGchangeメソッドで変化したのはメソッドに渡した配列であって、
元の配列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>45
NGNGむしろ、これじゃこのメソッド自体無意味。
ってか、Javaはよく知らないのだが、参照渡しは出来ないのか?
0048名無しさん@お腹いっぱい。
NGNG>元の配列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>48
NGNGxを書きかえるのとxの指している先を書きかえるのとの違いです。
0050むふ〜ん
NGNG>むしろ、これじゃこのメソッド自体無意味
そう、まさにそのとおり。
質問者によくわかるように彼のテンプレートをそのまま使ったんだけどね
0051名無しさん@お腹いっぱい。
NGNG「参照による値渡し」の説明をおねがいしたいのですが。
0052名無しさん@お腹いっぱい。
NGNGオブジェクトを渡しても、渡されるのは参照ではなくて
参照の値なのですなぁ〜〜(~¬~)
0053名無しさん@お腹いっぱい。
NGNGそれは、Cのように参照渡しはポインタの値渡しで解決しているという
ことですか?
マシン語レベルまで行くと、どっちみち、参照渡しといっても、アドレ
スなど、具体的な値を渡さなくちゃいけませんが、そういうレベルの話
ですか?
005453
NGNGを渡すと、私の場合は思うんですけど、Javaはオブジェクトを渡す
ときも参照渡しなんですか?
参照渡しと参照の値渡しを区別しないでの話ですが。
なんどもすいません。よろしくお願いします。
0055名無しさん@お腹いっぱい。
NGNG[ポインタ]→[実体]
このポインタ渡す時に渡される引数は
[引数]→[実体]
な関係
Javaでのオブジェクト変数はオブジェクト実体への参照
[オブジェクト変数]→[実体]
このオブジェクトを引数に渡す時、引数は
[引数]=[オブジェクト変数の値のコピー]→[実体]
なわけ
違ってたらスマソ
005655
NGNG[オブジェクト変数が指す実体へのアドレスのコピー]のほうがいいかも
0057名無しさん@お腹いっぱい。
NGNGint a;
}
public void f(MyObject obj){
obj=new MyObject();
}
↑全くの意味なし(w
public void g(MyObject obj){
obj.a=5;
}
↑これは意味ある。
005853>55
NGNGありがとうございます。
Cのほうの説明は、Cの参照渡しはポインタをつくって渡しますから
foo(&var);
としたとき
[仮引数用に作られたポインタ]→[var]
[引数]=[仮引数]→[var]
ということになるでしょうか。あと
int* p@` v; p=&v;
foo(p);
も、Cの場合は参照渡しというふうに呼ぶこともあるので、って、話
がそれちゃいますね…
Javaの場合は、変数が参照なので(一般にバイトコードは、整数型
などは変数が直接値を持っているおもいますが)いわゆる値渡しと
いうのは考え方が存在しないわけですね。
005953
NGNGその例の場合、f()は、参照のコピーを渡す場合も、ポインタの値を
渡す場合も、値をわたす場合も意味が無いってことですね?
f()に意味があるとすれば、Cの場合は変数へのポインタの参照
(つまりポインタへのポインタ)が渡ってきた場合と、C++で言う
参照が渡ってきた場合、ということでしょうか。
006055
NGNGJava では57の例のようにメソッド内で仮引数の参照を変えるような
ことをしなければ問題はあまり起こらないですねぇ〜〜
だから値渡しとか参照渡しとかいちいち考えなくて良いのが楽です( ̄ー ̄)
配列もオブジェクトなので、そこらへんは始めは迷うところですよね〜〜
でも、Javaでもたまに参照渡しできたらいいなぁと思うこともありますよ。
オブジェクト生成を含めたコードを一括して処理したい時とかね〜〜
006155
NGNGf(int *p){
*p=3;
}
とかだったらね〜〜
・・・Cは地震がないけど
006253>55
NGNGありがとうございました。
006353>61
NGNGf(int*p){
int v;
p=&v;
}
って感じでかんがえてました。
0064名無しさん@お腹いっぱい。
NGNGobj=new MyObject();
}
このようにこの中でnewすると、全く別のobjになって
MyObject objの宣言がローカル変数の宣言と化すという意味ですか?
----------------------------------------------------------
public void g(MyObject obj){
obj.a=5;
}
これは参照渡しではないのですか?
0065名無しさん@お腹いっぱい。
NGNGエディットボックスがいくつか配置されており、それらのエディットボッ
クスの間はタブで移動することが出来るとします。
このとき、タブでフォーカスを与えるコントロールが現在の表示領域の
外にあることがありますが、それを検査し、ビューをスクロールしてそ
のコントロールを表示領域内に表示する方法を教えて欲しいのですが。
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どうすれば良いのですか?
0067>66
NGNG006866>67
NGNGこのクラスをどう使うか分からなかったので(クラス自体理解がいまいち)、
こんなことを書きましたが、これじゃ分かるわけありませんね。
すみませんでした。
申し訳ついでといってはなんですが、
今、出てきた疑問点を質問させて下さい。
CRegKey::SetValueを使用してレジストリにバイナリで
書き込むにはどうすれば良いのでしょうか?
DWORD値や文字列では書き込めたのですが。
0069名無しさん@お腹いっぱい。
NGNGコントロールをサブクラス化して
WM_SETFOCUSが来たら親にメッセージを送るってのは駄目なん?
0070名無しさん@お腹いっぱい。
NGNGtime(&start);
time(&end);
jikan = end - start;
としても、小数以下が計算されません。
start@`end@`jikanをfloatで定義すると怒られます。
どうやったら10.25秒、といったカタチで得られるのですか?
0071>70
NGNG007270
NGNGそれならば別の関数を利用しないといけないんですね。
標準ライブラリの中でそれの出来そうなものが、ぱっと見て
見つけられません。
もう少し考えてみます。
分からなかったらまたよろしくお願いします。
0073>71
NGNG>>70さんは環境を書いた方が適切なコメントが得られるかもしれません
007470
NGNGありがとうございます。
私の環境は、VC++の一番安い奴の学割版です。
環境ってこのことでいいのでしょうか?
いまMSDNライブラリという奴を眺めていたら_ftimeというのが
なんとなくそれらしく思えてきました。
ちょい頑張ってみます。
007570
NGNG使わない方がいいものなんでしょうか?
007765
NGNGコントロールではなくリッチエディットコントロールになってた。
>69
取りあえず、そんな感じでやってみてます。
ただ、親にメッセージを送る、ではなく、コントロールのイベントハンドラ
で直接処理してるような感じですが。
これで、何か問題あるなら教えて下さい。
ところで、基本的にMFCは嫌いだけど、派生により容易にサブクラス化が出
来るのは楽でいいね。
007873>70
NGNG007970>78
NGNG感謝です。
008065
NGNG足し算と引き算を間違えてえらい目に遭ってたけど。
教訓:
デバッガをよく活用しよう。
頭の中だけで計算しようとしないこと。
0081名無しさん@お腹いっぱい。
NGNG違うセルにAとだけ入力すると勝手に
BCが反転表示で付け足されます。
このような機能をVBでやりたいのですが
教えてください。
0082名無しさん@お腹いっぱい。
NGNG0083名無しさん@お腹いっぱい。
NGNG誰に言っているのかはっきりさせなさい。(なんちて)
0084スタックダンプって
NGNG0085新米ギコ
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未練
NGNG0089名無しさん
NGNGのあるスレッド外)から、コモンコントロールへSendMessageするとデットロック
してしまいますが、このような使い方はしてはいけないのでしょうか?
また、回避するにはどうすれば良いのでしょうか?ちなみにPostMessage
では戻り値が使えないためNGです。
0090>89
NGNG> ウィンドウ プロシージャはサブルーチンとしてすぐに呼び出されます
>指定されたウィンドウが異なるスレッドで作成されているとき、
> Windowsはそのスレッドに切り替え、 適当なウィンドウ プロシージャを
> 呼び出します
とあるので、それだけが悪いんじゃないように思います。具体的にはどうしたのですか?
0091>90
NGNGclass 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>90
NGNGもうすこし、整理してきます。
0093名無しさん@お腹いっぱい。
NGNG0094教えてファイルロック
NGNGで、結局こんなコードを書いています。(エラー処理は捨象し、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 ExceptionA : public ExceptionBase{
....
}
void hoge()
{
throw new ExceptionA;
}
int main()
{
try{
hoge();
}catch(ExceptionBase* e){
....
}
とした場合、hogeで投げた new ExceptionA はメモリリークには
ならないのでしょうか?
0096>95
NGNGめったに投げないならリークしても問題無いだろうけどね。
だから手を抜いてもいいとは思わないけど、まあ忘れても軽症かな
で、正しいやり方は知ってる?
0097名無しさん@お腹いっぱい。
NGNGEffectiveC++辺りに何か書いてあったぞ。
009895>96,97
NGNG知らないです。
参照でやろうとしたらキャストがうまくいかず、
ここで聞いてしまいました。
EffectiveC++は持っているので、どの辺に書いてあるのか
教えていただけたら嬉しいです。
009995
NGNG010097
NGNGMoreの方だったかもしれない。
例外辺りで索引漁ってみるといいかも。
0101_finefirstって
NGNGそれともマシン全体を探し回ってくれるの?
■ このスレッドは過去ログ倉庫に格納されています