( ゚Д゚)ノ ギコ猫のプログラム相談室part4
■ このスレッドは過去ログ倉庫に格納されています
0001新米ギコ@いいかげん
NGNG∧ ∧ ──────
スレッドを立て逃げするくらいならここで聞け! >(゚Д゚ ) ──────
⊂⊂ \──────
\ 〜 ────
前スレ↓ し し ─────
http://piza.2ch.net/test/read.cgi?bbs=tech&key=965916840&ls=50
0002名無しさん@お腹いっぱい。
NGNG新しくできたって聞いたんですが、どんなのですか?
# ヒープソートも(n log n)固定ですが
# オーバーヘッドが大きすぎて
# 誰も使わないみたいですね
0003渡りに船です
NGNGプログラミングを楽しんでみたいなあと思っています。
きめの細かい言語をこつこつと勉強していくには
どの言語が最適ですか?
0005新米ギコ@いいかげん
NGNG( ゚Д゚) < >>2 計算量の書き方は、O(n log n )だ! Oを忘れるな!
|∪ |つ∀ ~~
| |
U U
∧ ∧
( ゚Д゚) < >>3 CかC++だ! いろいろなぷらっとふぉーむで使える強みがあるぞ!
|∪ |つ∀
| |
U U
∧ ∧
( ゚Д゚) < >>4 教えてもらいたいのならもっと素直になれ!
|∪ |つ∀
| |
U U
0006名無しさん@心配性
NGNG某スレの悪夢を思い出してしまったもので...
0007名無しさん@お腹いっぱい。
NGNG0008>7
NGNG0009渡りに船です
NGNG0010魁!名無しさん
NGNGBCBやVCと比べるとどの辺りに気を付け他方がいいですか。
0011名無しさん@お腹いっぱい。
NGNG面白れえい。
0012名無しさん@お腹いっぱい。
NGNG: Command not found.
: Command not found.
/usr/sbin/vidtomem: Command not found.
: Command not found.
ってまったく実行できないなぜなんでしょうか・・・
csh ファイル名
で実行してるからパスがとおってないってことも無いと思うんですが・・・
0013名無しさん@お腹いっぱい。
NGNGΟ ってのはなにも計算量を表す記号じゃないよ。
計算量は Ω で表すときもあるし Θで表すときもある。
まあほとんどの場合は Ο がふつうだけど。
0014名無しさん@お腹いっぱい。
NGNG文字コードを Cp943C にしたいのです。
コンパイルは javac -encoding Cp943C Test.java
として、実行時 javac -Dfile.encoding=Cp943C Test
で行けるかなと思ったのですが、どうも、うまくいきません。
System.out.println(sun.io.CharToByteConverter.getDefault());
を実行すると、
CharToByteConverter: MS932
と出力されます。
# java version "1.2"
# Classic VM (build JDK-1.2-V, native threads)
システムプロパティの設定が違っている?
それともそもそもなんか違う?
0015 dd s
NGNG0016dd s
NGNGあった。たくさん紹介されてる。
0017名無しさん@お腹いっぱい。
NGNGあんた最高。
0018名無しさん@お腹いっぱい。
NGNGとかって書くのは人が見て分かりやすい以外に理由がありますか?
0019名無しさん@お腹いっぱい。
NGNG0020名無しさん@お腹いっぱい。
NGNG0021名無しさんとも言える
NGNG標準出力と標準エラー出力は別です。
ファイルハンドルが違うことからも送り出している場所が違う。
文字通り stdout はは普段使われ、 stderr はエラーが起きた場合にその内容などが送られる。
0022名無しさん@お腹いっぱい。
NGNG0023名無しさん@お腹いっぱい。
NGNG0024名無しさん@お腹いっぱい。
NGNG1)
ファイルとファイルディスクリプタ(ファイルハンドル、ファイルポインタ)
を一緒くたにしちゃいかん。仮にstdoutとstderrが同じ「ファイル」(例えば/dev/tty
やconといったものだな)をオープンすることにより得られたものであっても、
ファイルポインタとしてそれらは異なるものだ。
2)
リダイレクトやパイプを使ってみればわかることだが。。
標準入出力をオープンするのは自分ではなく、それらは親プロセス
(普通はシェル)から受け継いでいるものだ。
従って、標準出力の先は実は他のプログラムの標準入力であったり、
他のファイルであったりすることがいくらでもある。
> 結局どっちもコンソールに返してるじゃん
ということを仮定しちゃいかん。
3)
むかしは標準エラー出力のようなものは無かった。なぜそのようなものが
発明されたかというと、プログラムの本来の出力と、エラーメッセージのような
ものが一緒くたにパイプに流れると色々と不便であり困ったことになるからだ。
ようするに、パイプの仕組みが発明されてから、標準エラー出力は産まれた。
逆に言えば、そのような使用法を想定しないのであれば、ある意味
「どっちでもいいじゃん」
とも言えるのだが。。
0025名無しさん@お腹いっぱい。
NGNG今、ウィンドウズでアプリケーションを作るのに勉強量&労働時間を少なく
するにはどの言語を覚えたらいいか教えてください。
0026名無しさん@お腹いっぱい。
NGNG002725
NGNG0028dd
NGNGIE4とIE5の違いぐらい?
どっちかやろうと思うんだけど、簡単にいうとどこがちがうの?
0029魁!名無しさん
NGNGCやってたのならBCBがいいかもしれない
0030名無…
NGNG0031名無しさん@お腹いっぱい。
NGNGなんかお薦めの本ありませんかね?
0032新米ギコ@月曜からまたお出かけ
NGNG〜′ ̄ ̄( ゚Д゚)< >>10 BCCはIDEじゃないから気をつけろ
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>11 絶対パスで指定だ!
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>13 虚数はiであらわすと言い張るタイプだな
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>25 BCBでうっどぼーる、き・ま・りだな
UU ̄ ̄ U U \_____________
0033新米ギコ@月曜からまたお出かけ
NGNG〜′ ̄ ̄( ゚Д゚)< >>28 ラテン語とラテン語から派生した言語くらいの違いだ!
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>29 失敗は成功の母! 気にするな
UU ̄ ̄ U U \_____________
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄( ゚Д゚)< >>31 独習C++改訂版 翔泳社刊 だ!
UU ̄ ̄ U U \_____________
003410
NGNGIDE ってHDDのことじゃないですよね。
しばらくブランクある上にヘタレなんでもう少し教えてくだされ。
003510
NGNGIDE ってHDDのことじゃないですよね。
しばらくブランクある上にヘタレなんでもう少し教えてくだされ。
0036名無しさん@どーでもいいことだが。
NGNG図書館で見てくるよ。
003710
NGNGやはりヘタレ厨房でした。逝ってきます。
0038c++初心者
NGNGがあったら教えてください。(言語問わず。)
VBやVC++なんかはけっこうありそうだけどないんです。
やっぱり生のソースを見て、ここがこんな風に
かかれてるんだなどと、勉強しながら覚えていくのが一番わかりやすいかと思うんです。
0039名無しさん@お腹いっぱい。
NGNGhttp://mentai.2ch.net/test/read.cgi?bbs=prog&key=962188959&ls=50
0040814
NGNGどうすればいいでしょう。
0041名無しさん@お腹いっぱい。
NGNGファイル先頭のBITMAPINFO構造体を見ろ。
0043名無しさん@お腹いっぱい。
NGNG使い分け方がよく分からないのですが・・・・
0044名無しさん@お腹いっぱい。
NGNG特に理由が無いならsignedで使おう。
charに限れば、日本ではunsignedで使う事が多いかも。
004543
NGNGint型とかなら分かるのですが、char型に対する正の値や
負の値の使い方がよく分かりません。
ASCIIコードで呼び出す時に使用するのでしょうか??
0046>43
NGNGSJISやEUCなどの漢字コード判定,半角カナの判定
if ( 0x00 <= c && c < 0x80 )
cがcharだと上記コードは期待した処理を行わない
0047名無しさん@お腹いっぱい。
NGNG> if ( 0x00 <= c && c < 0x80 )
こんなコード、本当に書いてるのか?
isasciiマクロを使うか、せめて
c & 0x80
で判定するのが普通だと思う。。。
004843
NGNG文字コードを参照した比較処理を行う場合に
signedとunsignedを使い分けるには具体的な
コードの種類ってあるのでしょうか??
数字やアルファベットを使用して比較処理を
行う場合はsigned char
カナや漢字を使用して比較処理を行う場合は
unsignedはっていうようなカンジで
変数を宣言すればよいのでしょうか。
004943
NGNG○ unsigned charっていうようなカンジで
間違えました、スミマセン。
0050名無しさん@お腹いっぱい。
NGNGsigned charには符号拡張に関係した面倒臭い問題があるから、
非ASCII文字セットを対象にする場合は、色々気を使う必要がある。
unsigned charなら符号拡張の引き起こす問題を逃れることが出来るが、
要はその場でキャストするなり0xffでマスクするなりすれば良いだけ
とも言える。
特に要注意なのがctype.hのマクロ群を使うとき。通常これらのマクロ
は、文字コードをそのままindexとしてテーブル(配列)参照を行うから、
charのまま渡すのは厳禁。マクロ故、コンパイラは適切に型変換を
行ってくれない。
それと、charを無理矢理unsignedと扱わせるようなオプションを
サポートするコンパイラも多いはずだ。
0051名無しさん@お腹いっぱい。
NGNG/* XXX - hogehoge */
みたいなこと書いてありますが、このXXXはどういう意味ですか?
0052名無しさん@お腹いっぱい。
NGNGよく書いてあるか?はじめて見た。
0053名無しさん@お腹いっぱい。
NGNGいや、それだけじゃ全然なんのこっちゃわからんぞ。
具体例を出しなさい。あるいは企業秘密か?
005451
NGNGひょっとしたらUNIXのオープンソース系プログラマだけが使ってるのかも
しれません。たとえば手元のFreeBSD 4.0で
/usr/src/contrib/libpam/libpam/pam_handlers.c
を見ると
if (pamh->service_name == NULL) {
return PAM_BAD_ITEM; /* XXX - better error? */
}
とあります。僕の感覚では、この「XXX」は「必要な処理かどうかわからない」
とか「不本意だけれども他のプログラムやプロトコルの出来が悪いのでこの処
理を入れざるを得ない」とかいう箇所に使われているような気がします。
でも実際どうなのかわかりません。UNIX板の方が適切でしょうか??
005553
NGNGそれだったら、ヤバそうなとこマークしてるだけかもな。
あとで解決法が出来たときに"XXX"を検索して修正する。
俺も似たようなことやったことがある。
005654
NGNGそうです。オープンソースのプログラムには広く使われているような
ので、昔からの慣習なんだと思います。
>あとで解決法が出来たときに"XXX"を検索して修正する。
>俺も似たようなことやったことがある。
なるほどなるほど。そういう使い方がありますねー。
UNIX板の方でも「その解釈でいいんじゃないか」と言われたんですが、
自分でも解説してるサイト探してみます。
# XXXだとエロページばっかひっかかる…
005753
NGNGするってーと54の例は
今はPAM_BAD_ITEMを出しているけどもっと適切なエラーコードがあるかも。
という意味だな。
0058名無しさん@お腹いっぱい。
NGNG俺に割り当てられたのは %%% だった。
0059名無しさん@お腹いっぱい。
NGNGおや。どこかで見かけたようなセリフ。知り合いかな?:-)
0060名無しさん@お腹いっぱい。
NGNGcd /usr/src
grep -R XXX >& /tmp/XXX
wc -l /tmp/XXX
11401行もあります。
やはり、「微妙な時」に使うんでしょうね。:-)
0061名無しさん@お腹いっぱい。
NGNG管理するプログラムって作れますか?
たとえば秀丸で複数の文書を開いた際の
タスクバーの表示を1つにしたいのです。
(動作はsusieのようなイメージです)
可能でしょうか?
0062名無しさん@お腹いっぱい。
NGNGでも、スシエってSDIじゃんよ?
タスクバー、ウィンドウ毎にでるぞ。
0063名無しさん@お腹いっぱい。
NGNG俺はZzz
気分でZzz...
006461
NGNGデフォルトの動作はそうなのですが、
設定によってMDIっぽい動作に変えられるのです。
-
[ファイル]-[設定]-[ウィンドウ]の[アイコンはアイコントレイに]と
[タスクバーにウィンドウ名を表示]のチェックをはずして、
[ファイル]-[設定]-[メニュー]の[コモンメニューバーを表示する]を
チェックするとそれらしい動きになります。
(susie32 ver0.45aの場合)
-
タスクが複数になっているのはかまわないので、
表示上の動作を外部のプログラムから制御できたらなぁと。
ウィンドウの一覧の取得と、切り替えぐらいは出来ると思いますが、
タスクバーの表示を消す方法がわかりません。
006561
NGNGhttp://piza.2ch.net/test/read.cgi?bbs=tech&key=971731456
0066名無しさん@お腹いっぱい。
NGNGセキュリティディスクリプタってなんに使うの?
9xの人間だからわからん。
0067名無しさん@お腹いっぱい。
NGNGメニュー項目の表示/非表示の切り替えは
どうやってやればいいんでしょうか?
ハンドルとってなにかメッセージ投げるのでしょうか?
要点だけでいいので教えてください
0068名無しさん@お腹いっぱい。
NGNGどなたかご存知ないですか?
0069名無しさん@お腹いっぱい。
NGNGCColorDialog
0070名無しさん@お腹いっぱい。
NGNGServerSocketをActiveにしてボタンかなんかで
ServerSocket->Socket->LocalAddressを表示すると0.0.0.0が入っています。
ServerSocketを使う上で、なにか注意しないと行けない事とかってあるんでしょうか?
それとも、そもそも使い方(つーか取得仕方)自体が間違ってます?
環境はWin98+IE5.0+TCP/IPのLAN+BCB4です。
よろしくお願いします。
0071名無しさん@お腹いっぱい。
NGNG指定ポートを開くはずで、それが0.0.0.0なのれす。
だから、どれか特定のアドレスだけでサーバするなら、
それを指定してやらにゃダメれす。
マシンにふられてるアドレスを知るには他の方法を使ってくだしゃい。
0072名無しさん@お腹いっぱい。
NGNGスシエって何だよ、スシエって。
どうせネタだろうが、マジだったら嗤うぞ。
007370
NGNGご返事ありがとうございます。
ああ、そうなんですか。結構使えないっすね。いや、使えるのか、場合によっては。
仕方ないんで、生socket作ってlisten()したあと調べることにします。
0074名無しさん@お腹いっぱい。
NGNGgethostbyname("");
007570
NGNGえーと、LAN内でプライベートアドレスをDHCPによって振り当てられるので、
ホスト名は使えないのです、多分。
それとも、空っぽの文字列を渡すとカレントのIPアドレスとかくれるんでしょうか?
0076名無しさん@お腹いっぱい。
NGNGC:\> ping your_own_host_name
の結果はどうよ。
ちゃんとReplyかえるべ?
0077名無しさん@お腹いっぱい。
NGNG以下のサンプルプログラムを作ったのですが、
外部シンボル ""private: static int ClassA::nA" (?nA@ClassA@@0HA)" は未解決です
といわれてコンパイルできません。なんででしょう?
誰かHelp下さい。
#include <string.h>
#include <stdio.h>
class ClassA {
static int nA;
public:
ClassA(){nA = 0;};
void Set(int a){nA = a;};
int Get(){return nA;};
};
void funcA()
{
ClassA inst_1;
inst_1.Set(111);
printf("inst_1.nA = %d\n",inst_1.Get);
};
int main(int argc, char* argv[])
{
funcA();
ClassA inst_2;
printf("inst_2.nA = %d\n",inst_2.Get);
inst_2.Set(999);
printf("inst_2.nA = %d\n",inst_2.Get);
return 0;
}
0078名無しさん@お腹いっぱい。
NGNGとでもして、スタティックメンバの初期化をしとけ。
007977
NGNGどこでですか?
コンストラクタで初期化はしてるんですが…。
0080名無しさん@お腹いっぱい。
NGNG宣言/定義+初期化の違いが分かってないらしい。
0081名無しさん@お腹いっぱい。
NGNGスタティックメンバの初期化はスタティックに行うべし。
008277
NGNGinst_1.nA = 4198410;
inst_2.nA = 4198410;
inst_2.nA = 4198410;
となってしまって予定通りの結果にならんのですが。
かなり不思議です。
0083名無しさん@お腹いっぱい。
NGNG↓
inst_1.Get()
だ。
008477
NGNGみなさまどうもご親切にありがとうございました。
0085名無しさん@お腹いっぱい。
NGNGMFCアプリで、自身の動作を一定時間止めてwaitみたいなことをするに
はどうしたらよいのですか? たとえば0.5秒のwaitなんですが。
よろしくおねがいします。
0086>85
NGNG0087名無しさん@お腹いっぱい。
NGNG知らんだけだろうからいいんでない?
0088がんばれ!名無しさん
NGNGどれをどうやって使えばいいですか?
西暦・月・日だけ必要です。
0089名無しさん@お腹いっぱい。
NGNGtime関数とlocaltime関数を組み合わせればOK。
あとは、struct tmをヘルプで調べれ。
0090名無しさん@お腹いっぱい。
NGNG非標準の拡張機能が使用されています : 宣言リストにあるカンマの後の修飾子は無視されます。
と、こういう警告が消えなくて困っています。
構造体の宣言で、メンバの個数分でます。
別のプログラムからコピーしてきたのですが、
そのコピー元では警告もエラーも出ません。
これはどういった原因が考えられますでしょうか。
お願いします。VC++です。
0091名無したん@LV3
NGNG#include <stdio.h>
#include <time.h>
void main()
{
time_t t;
t = time( NULL );
printf( "%s", ctime( &t ) );
}
0092c++初心者
NGNG*************************
main.cpp
*************************
#include"x.h"
main()
{
x xx;
xx.printx();
}
*************************
x.h
*************************
#include<iostream.h>
class x
{
private:
int a,b,c;
public:
x();
void printx();
};
*************************
x.cpp
*************************
#include"x.h"
#include"y.h"
x::x()
{
a = 1;
b = 2;
c = 3;
}
void x::printx()
{
int aa,bb,cc;
y *yy;
yy->get_y(aa,bb,cc);
cout << "a = " << aa << endl;
cout << "b = " << bb << endl;
cout << "c = " << cc << endl;
}
0093c++初心者(続き)
NGNGx.cpp
***********************
#include"x.h"
#include"y.h"
x::x()
{
a = 1;
b = 2;
c = 3;
}
void x::printx()
{
int aa,bb,cc;
y *yy;
yy->get_y(aa,bb,cc);
cout << "a = " << aa << endl;
cout << "b = " << bb << endl;
cout << "c = " << cc << endl;
}
***************************
y.h
***************************
#include<iostream.h>
class y
{
private:
int d,e,f;
public:
y();
void get_y(int&,int&,int&);
};
*********************************
0094c++初心者(続き)
NGNGy.h
****************************
#include<iostream.h>
class y
{
private:
int d,e,f;
public:
y();
void get_y(int&,int&,int&);
};
0095c++初心者(続き)
NGNGy.cpp
************************
#include"y.h"
y::y()
{
d = 1;
e = 2;
f = 3;
}
void y::get_y(int &aa,int &bb,int &cc)
{
aa = d;
bb = e;
cc = f;
}
0096c++初心者(続き)
NGNG0097c++初心者(続き)
NGNGa = -906207861
b = -1990917949
c = 473793509
のようになります
0098名無しさん@お腹いっぱい。
NGNGなどをnewしていないのでおかしくなるんでしょう。
y *yy = new yy;
としてyyがいらなくなったら
delete yy;とします。
配列の場合、
y *yy = new yy[2];
delete[] yy;
というようにします。
0099c++初心者
NGNG98さんありがとうございます。
0100名無しさん@お腹いっぱい。
NGNG0101名無しさん@お腹いっぱい。
NGNGCD-ROMドライブの位置、(ディスクの挿入)状態、情報を
取得できるAPIってありますか?
一応ヘルプを見たのですが検討がわかないので見つかりません。
スレ違いかもしれませんがお願いします。
0102魁!名無しさん
NGNG0103月刊能力不足
NGNG関数を実行できるでしょうか?
struct A {
int (*a)();
};
struct A a;
void b( void ) {
printf( "b\n" );
}
main() {
a.a = b;
a.(*a)();
}
0104こう?
NGNGstruct A {
int (*a)();
};
struct A a;
void b( void ) {
printf( "b\n" );
}
main() {
a.a = b;
(*a.a)();
}
0105月刊能力不足
NGNG(*a.a)();
ですね。
ありがとうございました。
0106名無しさん@お腹いっぱい。
NGNGint nRelt; BOOL bFlg;
・
・
if(!sub()) return FALSE;
/*?*/
if(!find("TRUE")){bFlg=TRUE; return TRUE}
if(!find("FALSE")){bFlg=FALSE; return TRUE}
return FALSE;
}
上記の様なソースを作ったのですが、
/*?*/まではエラー時にFALSEで抜けているのですが
最後のfind(検索)では見つからなったらもう一度、
違う文字(ここでは"FALSE")を検索しなければなりません。
そこで、見つかったらTRUEで抜けて、
"TRUE"も"FALSE"も見つからなったら、
最後でFALSEを返すという今までとは
異なる流れになってしまいました。
こういう場合はどのように書くのがきれいで
無駄がないのでしょうか?
0107名無しさん@お腹いっぱい。
NGNGまず、そのbFlgというのは一体何に使ってるのか謎なんだが。
最後のif文で代入してるようだが、これは意味が全くないぞ。
あと、そのfindというのはどういう関数かを教えてくれ。
それが分からないと、回答しようがない。
0108106
NGNG簡略して書いたつもりが分け解らなくなってしまいました。
これはC++で作っていて
まずfuncというのはクラスの関数で、
bFlgというのはそのクラスのメンバ変数です。
findというのはCString::CompareNoCaseです。
実際は「sBuf.CompareNoCase(_T("TRUE"));」
こんな感じで書いてあります。
bFlgを何に使用しているのかというと、
"TRUE" or "FALSE"を検索し、TRUEならフラグが立ち、
FALSEならフラグがたたないようにしてあります。
文字列に"TRUE" or "FALSE"がなかったらエラーを返します。
0109107
NGNGメンバ変数?
じゃ、せめて関数の外に書いてくれ。あれじゃローカル変数にしか見えん。
それで回答だが、TRUEならTRUEを、FALSEならFALSEを、それ以外なら例外を
投げるようにしたらどうだろう?
0110106
NGNG必要でなく、どちらが設定されていようが関係ないのです。
後、申し訳ないのですが又、説明不足で。。。
メンバ変数は他にもあり/*?*/の上の個所で、
文字列を調べて代入しています。
文字列は
""1", "Name", "Power", "TRUE""
上記のような感じで、そこから決められた
フォーマットのメンバ変数
(例、最初の1ならint、Nameはchar szbuf[])
に変換して設定します。
この関数が、BOOL型なのはこの文字列にデータの漏れがあるか
ないかの情報しか必要ではないのでそうしています。
他の項目では検索をかけてそのまま設定したり、
数値変換して設定すれば良いのですが、
"TRUE"の個所は検索に引っかからなかったら、
もう一度、"FALSE"の検索をしなければならなく
if〜elseや()?〜:〜を使ったりしてもどうもきれいに書けませんでした。
長文かつ駄文で申し訳ありませんがどうにかならないでしょうか?
0111名無しさん@お腹いっぱい。
NGNGもしかしてこう書けば満足??
{
/*省略*/
if(find("TRUE")){
if(find("FALSE")){
return FALSE; /*どっちも見つからないのでエラー*/・
}
bFlg=FALSE;
}else{
bFlg=TRUE;
}
return TRUE;
}
0112106
NGNGどうもネストが深く(たいして深くないけど)なるのが
どうも気にくわなくて106みたいに作ってみましたが、
今度は、流れが異なってしまって何か他に、良いやり方が
あるのかなぁと思い書いてみました。
こんな事で悩んでいる馬鹿な私に、
レスをくださった方ありがとうございました。
0113名無しさん@お腹いっぱい。
NGNGif( (!(bFlg=(0==find("TRUE")))) && find("FALSE") ) return FALSE;
return TRUE;
エラーのときにもbFlgが書きかえられてしまうし
可読性がおもいっきし落ちるので、けしてオススメしないが‥
0114名無しさん@お腹いっぱい。
NGNG使用中のBtrieveファイルをバックアップしたいのです。
NDKってのをダウンロードしましたが、さっぱり???です。
もうNetware屋さんなんていなくなっちゃったかな。
0115>112
NGNGbRelt=(find("TRUE")==0)?bFlg=TRUE,TRUE:
((find("FALSE")==0)?bFlg=FALSE,TRUE:FALSE)
return bRelt;
どうかなこれ?112じゃない人の意見もきぼーん。
(確か条件演算子はreturnはできなかったよね?
だから上みたいにしてみたんだけど)
0116!112>115
NGNG112の希望ではなかったんか?
なぜそれをわざわざこんな変なことするのか理解不能。
単純に行を減らしたいだけならば、なんでbReltがいるねん?
return find("TRU‥‥‥
と書けばいいやん。
0117115>116
NGNG俺みたいな奴が日本のプログラマーのレベルを下げてるんだろうな...
あとbReltはただの趣味、returnに式を書くの好きじゃないだけ。
なんか良いやり方ないもんかね〜、俺も気になってきたよ。
0118名無しさん@お腹いっぱい。
NGNG0119名無しさん@お腹いっぱい。
NGNG0120名無しさん@お腹いっぱい。
NGNGUniCodeじゃなくなってしまったんですけど何でなんですか?
StrBuf = lpwRedBuf←これにはUniCode文字列が入っています
(デバッガで調べた)
0122ミレン
NGNG0123名無しさん@お腹いっぱい。
NGNGtypedef struct {
int mona;
int giko;
int zonu;
} _2CH;
とありまして、
// ファイルから直接_2CH構造体に読み出す。
fread(hensuu, sizeof(_2CH), 1, fp);
なんてしたいのですが、これってうまくいくのでしょうか?
C++の構造体はCの構造体と違うようなのでうまく行かない気がします。。。
うまく行かないとしたらどうすればいいでしょうか?
0124123
NGNGstruct _2CH{
int mona;
int giko;
int zonu;
};
に訂正します。
0125名無しさん@お腹いっぱい。
NGNGただしコンストラクタを持つ構造体(=クラス)は心配する必要があります。
0126自身あんま無し
NGNGだから・・
fread(&_2CH.mona,sizeof(char),sizeof(_2CH)/sizeof(char),fp);
じゃねーか?
0127123
NGNG_2CH hensuu;
fread(&hensuu, sizeof(_2CH), 1, fp);
ですね。。
Cだとこれでいいのですが、C++は
fread(&hensuu.mona,sizeof(char),sizeof(_2CH)/sizeof(char),fp);
じゃないといけないのでしょうか?
つまり
&hensuu == &hensuu.mona
では無い可能性があるのでしょうか?
>>125
>ただしコンストラクタを持つ構造体(=クラス)は心配する必要があります。
Cの構造体の使い方をするのであればC++と言えど問題ないのですね。
いやー。安心しました。ありがとうございました!
0128> 123
NGNGhensuuの型は?
(struct _2ch *)ならば、メモリ確保を行っているか?
(struct _2ch) ならば、fread(&hensuu, sizeof(hensuu), 1L, fp);
だとおもうが?
ファイルから直接_2CH構造体に読み出すことは可能で今回の構造体の場合は
ほとんどの環境、処理系で期待した動作を行うはずだが、
struct _2CH{
char mona;
int giko;
char zonu;
};
の場合、期待した動作を行うわない環境、処理系もある。
この場合は、メンバを1個ずつ読み込む必要がある。
0129ん?
NGNG仮想関数(やポインタ・参照)を持たないクラスは、
fwriteで書きこんだものなら復帰できるんじゃないの?
言語仕様で保証されてるかは知らんけど。
0130名無しさん@お腹いっぱい。
NGNG0131X
NGNG0132名無しさん@お腹いっぱい。
NGNG"変数名"="値"
と言うフォーマットでファイルにテキストで100個くらい
格納してある値(値は整数と文字列)を、格納用の構造体に格納したいのですが、
スマートな方法はありますか?
ファイルをバッファに読み込んで、値の先頭のポインタをptにいれて
strtokで「"」をちぎって
struct foo bar;
bar.hoge = atoi( pt );
...
strcpy( bar.huga , pt );
みたいなのを100回書けばいいってのは分かるんですが・・・。
どうにも冗長すぎるかんじがして。
0133名無しさん@お腹いっぱい。
NGNG構造体廃止してハッシュを使う。
あるいは配列にしてインデックスでアクセスする。
0134名無しさん@お腹いっぱい。
NGNGレスありがとうございます。
仕様上、是非構造体に格納したいんです。
ほかの方法にしようとすると、他の人の担当分もいろいろ
改造する必要がでるので。
0135名無しさん@お腹いっぱい。
NGNGそーいう発想する人はプログラム向いてない。
0136名無しさん@お腹いっぱい。
NGNGC++なんでしょ。構造体っつっても結局クラス。
ストリームを引数にしたコンストラクタつくりゃれ。
あと、ストリームへのoperator<<つくりゃれ。
それでそのクラスオブジェクトのロードセーブし放題。
0137>132名無しさん@お腹いっぱい。
NGNG#define SET_S(ident,value) if(strcmp(s,#ident)==0) strcpy(bar.ident,value)
しかしこんなソース俺はメンテしたくないな
0138名無しさん@お腹いっぱい。
NGNGそのテキストを読みこんでCのソースを吐くツールでもつくれば?
0139名無しさん@お腹いっぱい。
NGNGその間に力業で完成するに一俵。
0140名無しさん@お腹いっぱい。
NGNG> 仕様上、是非構造体に格納したいんです。
「設計上」ではなくて?
悪い設計の下でいくらプログラムを頑張っていじくり回したところで
良い物にはならんだろう。
短期的に
> 他の人の担当分もいろいろ改造する必要が
あるとしても、悪い設計を改善した方が結局得になるかも知れない。無論
そのプログラムが使い捨てのプログラムであって、今後ほとんどメンテ
やカスタマイズがあり得ないのならばどうでもいいことかも知れないが、
使い捨てのつもりのプログラムが延々保守され続けるということも、
決して珍しくはないからな...
0141>131
NGNG0142名無しさん@お腹いっぱい。
NGNGのデフォルト値は何ですか?
0143名無しさん@お腹いっぱい。
NGNG画面にプロットしてグラフっぽい物を描きたいんですが
Basicのlineやpsetみたいに簡単にグラフィックを
扱うことは出来るんですか?
0144>143
NGNGしかし、処理系によってはライブラリでサポートされているし、ライブラリの
サポートがなくてもOSに(たとえばApiで)サポートがある場合もある。
なんにしろあなたのOSなどの環境がわからないとなんともいえない。
0145なーなー
NGNG大雑把で構わないなら、iostreamでキャラクタ文字でもいいんじゃない?
↓こんなの
+----------------------------+------
|******************** hage
|********** hige
|****** huge
|*** hege
|** hoge
0146なーなー
NGNG0147143
NGNGwin98です。で、コンパイラにborlandのfreeのやつを持ってるだけです。
>なーなーさん(名前じゃなく、呼びかけか…)
キャラクタ文字良いですねえ、ほんとに大雑把。
なんかBasicでへっぽこgameを作った時みたいだなぁ。
(冗談でもこういうの好き)
お二人とも有り難うございます。
なにしろグラフィックライブラリって概念を今知ったので、
本当に有り難い、名前が分かれば検索も楽ですからね。
それで、「GrWin グラフィクス・ライブラリ」を
手に入れました、とりあえずこいつでやってみます。
0148名無しさん@LV3
NGNGZIPなどのファイルを解凍したいのですが、ソフトを持ってないし
解凍の仕方がわかりません。
どこか解凍ソフトをダウンロードできるサイトはないでしょうか?
0149名無し
NGNG文字列たとえばchar x[10]を初期化するのに
わざわざ
for(i=0 ;i<10;i++)
x=' '
とやらずに、空白で埋める関数などあるのでしょうか?
空白でなくとも一定の文字で文字列をフィルする、という
感じです。
0150名無しさん@お腹いっぱい。
NGNGwww.vector.co.jpで"lhasa"を検索
>149
memset(x, ' ', sizeof(x))
0151名無しさん@お腹いっぱい。
NGNG具体的にどのような値なのでしょうか?
0152名無しさん@お腹いっぱい。
NGNG0x45,0x4f,0x46
0153>>151
NGNG具体的な数値を知ってどうする?
特殊な組み込み機器でも開発しているんで無い限り、気にするとろくな事は無いぞ
0154名無しさん@お腹いっぱい。
NGNGいわゆるテキストファイルの場合、0x1aをもってEOFとする
場合もある。ということを聞きたかったんじゃないだろうか、
と思うが、153さんが正しい。
0155名無しさん@お腹いっぱい。
NGNG0156名無しさん@お腹いっぱい。
NGNG終端をファイル内のある特定の文字によって管理しているような
ものは無い筈だ。
EOFという抽象によって表されるところの、ある特定の文字が実際に
ファイルの終端に存在するのではなく、ファイルの最後まで来たら
取りあえずEOFという文字を返すようにライブラリが設計してあるだけ。
0157なーなー
NGNG多分、
EOF → End Of File
EOL → End Of Line
この辺から教えないとだめなかんぢが…
こーゆうのはUNIX系OSなら良く出会うので、一度触わる程度してみると良いかも。
0158名無しさん@お腹いっぱい。
NGNGGOOで検索したもののひっかかりません。
MMXなら結構あるんですが。
0159名無しさん@お腹いっぱい。
NGNG0160名無しさん@お腹いっぱい。
NGNG日本語の解説ありますか?
検索して出てきたのに
http://www.intel.co.jp/jp/developer/design/servers/softdev/ia32simd.htm
ってあったんですが全て英語なもんで、
うー、やはし英語をちまちま訳してくしか無いですか。
0161にゃにゃししゃんにゃー。
NGNG使いたいんだけど、ActiveXの解説してるページや
本を見てもMFCかATL前提にしてるのばっかり(T-T)
SDKでActiveXコントロール使うのに詳しいページ
か本知りませんか? 知ってたら教えて下さい。
0162月刊能力不足
NGNGCプログラムのスパゲティー化を防ぐには、
どうしたよいでしょうか?
0163>160
NGNGこれのPenIII命令セットリファレンスに一応SSEの項目があったと思うけど、
動作の解説があるかは知らない。
0165>162
NGNGASMの方がすっきりする。(経験上)
0166>161
NGNGそれをやって、文書にして誰かに伝えようと考えている
ひとは、おそらく世界に数人いるかいないかだと思う。
さわりだけでいいなら、InsideCOMとかに載ってなか
ったかな。
0167名無しさん@お腹いっぱい。
NGNGただ166の
>COMがらみをべたでコード書こうと思うと死ぬよ。
には同意。C++でも面倒くさくてやだ。
俺個人は(COMをまともにいじるのは)C#待ち。
0168新米ギコ@OSの再インストールはイヤヅラ
NGNG|Д゚)一寸下がりすぎかな
|⊂
| |
| U
0169名無しさん@お腹いっぱい。
NGNG他で暴れ出すやつがいて困ったことになるようだ
0170名無しさん@お腹いっぱい。
NGNGじゃ、sageんなや。(藁
0171名無しさん@お腹いっぱい。
NGNGsizeof('c') == sizeof(char)
どっちが正解ですか?
0172名無しさん@お腹いっぱい。
NGNGCならsizeof(int)が正解。
C++ならsizeof(char)が正解。
0173学生
NGNGint a[10];
って宣言されたのを
aって書くと&a[0]と一緒でa[0]のアドレスを表すんですよね?
それで(sizeof a)/(sizeof (int) )
とやると、配列の個数の10が出ます。
ってことはaと書いた場合はa[0]のアドレスとa[9]までの
アドレスの長さ?(この辺がさっぱりです)
が入って無いとおかしいですよね?
なんか根本的に間違ってそうですが・・・、どうなんでしょか。
0174名無しさん@お腹いっぱい。
NGNGint a; だとaは実体、&aはaへのポインタ
int a[10]; だとaでaへのポインタ、&a[0]は先頭要素へのポインタ
int *p = a; の場合 *(p+1) == a[1]
たぶんaと書くだけでa[10]全体を意味するものと思ってるみたい
だけど、そうではない。
0175>173
NGNG>なんか根本的に間違ってそうですが・・・、どうなんでしょか。
正確には、式中に現われる型「aの配列」という左辺値(*1)は
配列の最初の要素を指すポインターに意味が格下げになる。
*1
3つの例外をのぞく。
1)配列がsizeofの引数となるとき
2)アドレス演算子&の引数となるとき
3)char型の配列を文字列リテラルで初期値するとき。
今回のケースでは、例外1)に相当する為
aの配列は配列の最初の要素を指すポインターに格下げにならない
0176名無しさん@お腹いっぱい。
NGNGコンピュータ悪のマニュアルを買ってきたんですが、ハッカーの必衰事項に
"C言語でプログラミングできるだけの知識(ANSI CだけでなくC言語全て)"
とかいてあるんですが、ANSI Cの他に何があるんでしょうか?
0177名無しさん@お腹いっぱい。
NGNGつーか、なんかその著者の書き方もナニだな...
0178177
NGNG必須だと思うがな。特にbuffer overrunとか突いて無理くりプログラム
実行するみたいな奴はさ。crackコードそのものはCでもいいだろけど。
0179にょだ
NGNG0180名無しさん@お腹いっぱい。
NGNGよさそうだな。でも必衰事項だからどうでもいいかもしれん。
0181名無しさん@お腹いっぱい。
NGNG0182名無しさん@お腹いっぱい。
NGNGス変数としてあるポインタを宣言し、コンストラクタでメモリを割り当
ててます。そして、そのメモリにアクセスするメンバ関数が別スレッド
から起動されます。このようなやり方は正しいんでしょうか…。
0183名無しさん@お腹いっぱい。
NGNGコンストラクタ中でエラーの発生する恐れがある処理するのもナニだし。
0184( ,,゚Д゚)ノ
NGNGコンストラクタの処理は別の話として、
一つのインスタンスのメソッドがいろんなスレッドから呼ばれて、
メンバ変数をごにょごにょするってのは普通だ!
でも>>183の指摘通り、同期処理は必要だ!
0185173の学生
NGNG>int a[10]; だとaでaへのポインタ、&a[0]は先頭要素へのポインタ
これって言い方は違うけど全く同じ事ですよね?
って話振ろうとしたけどその前に実行してみた。
a == &a[0];は1でした。
(もちろんint *p = a; int *q = &a[0]; も一緒でした)
>たぶんaと書くだけでa[10]全体を意味するものと思ってるみたい
いえいえ、そうは思ってないからsizeofに入れたとき「なんでだ?」
って思ったんですよ。
>175さん
すげー、全然知らなかったです。しかも「なんで?」って今まで思わないで
やってきたのがさらに怖いですね。
それとsizeofがどうやって書かれているか見てみたいんですが見られますか?
コンパイラはbccです。
アドバイスどうも>ご両人
0186名無しさん@お腹いっぱい。
NGNGつっこんだコードのところに飛ばすのは、どうやるんですか?
0187名無しさん@お腹いっぱい。
NGNGsizeofは関数でなくて演算子だからね。
たいていの場合コンパイル時に決定されちゃうし‥
0188名無しさん@お腹いっぱい。
NGNG>たいていの場合コンパイル時に決定されちゃうし‥
コンパイル時に決定できない場合なんてあるのか?
>186
void test(void)
{
int a[1];
a[1] = 0;
}
あ、「絶対ジャンプ」だ・・・
0189名無しさん@お腹いっぱい。
NGNGvoid AbsoluteJump(unsigned Addr)
{
unsigned a[1];
a[1] = Addr;
}
0190名無しさん@お腹いっぱい。
NGNG>ジャンプ出来そう。
テストしてから出直してこい。
0191189@出直しました
NGNGvoid pascal AbsoluteJump(unsigned Addr)
{
unsigned a[1];
a[2] = Addr;
}
void jumpto()
{
printf("ジャンプしたよ\n");
}
void test(void)
{
printf("ジャンプするよ\n");
AbsoluteJump((unsigned)jumpto);
printf("ジャンプしてないよ\n");
}
void caller(void)
{
printf("呼び出すよ\n");
test();
printf("呼出元に戻ってきたよ\n");
}
int main()
{
caller();
printf("mainに戻ってきたよ\n");
return 0;
}
0192189
NGNGお騒がせしてすみません。
0193名無しさん@お腹いっぱい。
NGNGif (p = NULL)
でキャッチしたとき、exit (0)で終了?exit (1)で終了?
それともOSにもよるし、たいして変わらない?
0194名無しさん@お腹いっぱい。
NGNGそれはOSというよりプログラム仕様に依存する。
0195193
NGNGってときはどうですか?
0196名無しさん@お腹いっぱい。
NGNG0197一応つっこみ
NGNGif (p == NULL)
0198名無しさん@お腹いっぱい。
NGNG使ってくれ。1だとか0だとか言われても判らん。
0199名無しさん@お腹いっぱい。
NGNGこれをCTime型に変更したいのですがどうすればいいですか?
0200母を訪ねて名無しさん千里
NGNGなんかの同期オブジェクトがありますよね。
そいつらの待ち行列って普通はQueueになってると思うんスけど、
QueueになってないOSって存在するでしょうか?
(;´Д`)ノ
つまり、ほんとに待ってるヤツらがじゃんけんで取りに行くかんじで、
ずっと負けつづけるヤツとかが発生しうるみたいな
0201名無しさん@お腹いっぱい。
NGNGsscanfなどを用いて自分でparseするか、
COleDateTime::ParseDateTimeを利用してCOleDateTime型に
変換した後に、(SYSTEMTIME型経由などで)CTimeに変換する。
しかしParseDateTimeは日付部分も含んでいる必要があった
かもしれない。
"HH:MM:SS"形式と決まっているのならsscanfを使う方が良いだろう。
0202名無しさん@お腹いっぱい。
NGNGしようしても、バイナリモードだろうがテキストモードだろうが
出力できません。それに、wofstreamとofstreamの文字列出力が
まったく違うように見えないんですが、ワイド文字をファイルに
出力するにはどうしたらいいのでしょうか。
0203ド忘れ
NGNG検索するのってどうやってやれば良いんでしたっけ?
最近はperlばっか使ってたのでド忘れしてしまいました。
環境はwin98/2000です。どなたかご存知の方がいらっしゃったら教えてください。
0204>203
NGNG0206名称未設定
NGNG0207>206
NGNG0208名無しさん@お腹いっぱい。
NGNGDelphiとC++どっちがいいでしょうか?
0209名無しさん@お腹いっぱい。
NGNG0210208
NGNG0211名無しさん@お腹いっぱい。
NGNG0212208
NGNGっつーかもういいや。厨房なのでここで挫折しておきます(はやすぎ
0213203
NGNGありがとございまーす。
0214飲む打つ買うさん
NGNG0215>208
NGNGCかC++を知ってるならC++ Builder
0216名無しさん@お腹いっぱい。
NGNGリンカーエラーが出ます。
(環境:w2k, VC++6.0Sp3)
--- CMona.h ---
template <class T>
class CMona
{
public:
void giko(T a);
};
--- CMona.cpp ---
#include "CMona.h"
template <class T>
CMona<T>::giko(T a)
{
cout << "逝ってよし" << endl;
}
--- main.cpp ---
#include "CMona.h"
int main()
{
CMona<int> a;
a.giko(5); // <--- ここでリンカーエラー
return 0;
}
「プログラム言語C++第3版」のP.412を見ると
「exportするといいよ」って書いてるんですが、
VC++にはまだこの予約語は実装されていないようです。
どうすればリンクできるのでしょうか。。。?
0217名無しさん@お腹いっぱい。
NGNGVCでは、テンプレートを使ったクラスの定義と実装を別のファイルで行ったら
リンクできないんじゃなかったっけ?
おれも昔それで悩んだことあるぞ。
0218名無しさん@お腹いっぱい。
NGNG前述の本のP.413を見ると
「exportを使わないんだったらheaderの中にでも書けよ」
って書いてるからCMona.hの中にCMona.cppの内容をコピペしたら
リンクが出来ました。
また、iostreamとかの中を見ると同様なことをやってたので
これでよしとします…
>>217さん
納得できないけど、しょうがないみたいですね。。。
あきらめます。VC++7.0でexportキーワードのサポートを待ちます。。
どもです。
0219217
NGNG別にVCだけの話ではないな。
それと、テンプレートのを使ったクラスって書いたけど、関数でもそうだな。
0220217
NGNGテンプレートがどうコンパイルされるかを考えれば、
リンクできないのが当たり前じゃないですかね。
0221名無しさん@お腹いっぱい。
NGNGリンクできないのが当たり前ってことはないんじゃない。
VC++23.0くらいになればきっとできてるよ。
0222名無しさん@お腹いっぱい。
NGNG0224名無しさん@お腹いっぱい。
NGNGえっ!どれ?
>>204 は全然違うような気が・・・
jpgファイルの画面サイズ(画像サイズだよね?)を取得する方法知りたい。
jpgってフォーマットによってサイズの書かれてる位置(バイト)が違うから面倒。
BmpやGifやPNGは位置決まってるよね。
0225名無しさん@お腹いっぱい。
NGNGJPEGの仕様書よめやゴルァ
0226!217
NGNGテンプレートって、型が決まるコンパイル時にしか
実行コード作れないから無理。
0227名無しさん@お腹いっぱい。
NGNGテンプレートにはパーサも含まれてるから、がんばれば不可能ではない、です。
0228名無しさん@お腹いっぱい。
NGNG0229名無しさん@お腹いっぱい。
NGNGまちがい。
0230>226
NGNGしてしまえばいいのでは。つまりリンク時に、必要な部分のコンパイルを
自動的に行なうという事(リンカとは呼べない?)。すでにテンプレート
で生成される長大なシンボル名を取り扱うのは限界が見えてきている。
このままでは破綻すること必至です。
0231名無しさん@お腹いっぱい。
NGNG0232名無しさん@お腹いっぱい。
NGNG0233名無しさん@お腹いっぱい。
NGNGpng_set_read_user_transform_fn で設定するコールバック関数の引数のうち、
三番目の png_bytep data の意味が分かりません。
処理中の行のデータを入れたバッファらしいのですが、
例である pngtest.c の count_filters 関数をみると
*(data-1) で適用したフィルタの種類を取得しています。
0234名無しさん@優しい人
NGNGわたしはいつもSusiePluginのインタフェース使ってるから
他のはあんまり知らないんですが、
多分ここで聞くより何倍もの正確な返答が期待できる手段として、
まず、そのライブラリの作者にコンタクトとかしないわけですか?
マニュアルとかにメールアドレスぐらい書いてあったでしょ?
丁寧に書けば教えてくれると思いますよ。
他にもホームページが存在すれば、そこの掲示板に書込むとか…
フリーソフトの作者達はユーザの確認ができただけでも嬉しいんだから。
0235名無しさん@お腹いっぱい。
NGNGすみません。作者は外国人なので英語でメール書かなきゃいけないんです。
自分のへっぴり英語で書いて伝わるかどうか自信がないので…
とりあえず資料がないか検索しなおしてみます。
0236D使い
NGNGint *p;
p = new int[5]; //(a)
delete [] p;
は問題ないのですが、
(a)を
p = new (int)[5]; //(b)
とすると
'int' 型は 'int *' 型に変換できない
のコンパイルエラーになってしまいます。
p = new (int*)[5]; //(c)
とするとコンパイルが通ります。
この挙動はどう理解したらいいのでしょうか?
演算子の優先順位辺りかとも思ったのですが、理解できませんでした。
(ちなみに GCC では、(b)は通って(c)はアウトでした。)
0237D使い
NGNG0238名無しさん@優しい人
NGNGあげといてやるよ。
ちなみに236についは判らなかった。
所詮タダ、って事か?
0239名無しさん@優しい人
NGNGぐぞ、意識が…
0240>236
NGNGどうも(int)を intへのキャストと解釈しているのではないかという気もします。
int **pp;の場合もそのようになりませんか?
0241D使い
NGNGありがとうございます。
バグで片づけるのは簡単なんですが、
もしかして「最新のANSI C++」ではこうなのかなぁ、とか勘ぐってました。
>どうも(int)を intへのキャストと解釈しているのではないかという気もします。
>int **pp;の場合もそのようになりませんか?
最初に気づいた(というか聞かれた)のは char **p;だったので
単純化して書き込んでみました。同様です。
結局どうなんでしょ?バグなのかなぁ。
0242名無しさん@お腹いっぱい。
NGNG「Cのマクロ機能は副作用を起こす可能性があるので、それを解決する為にC++ではインライン関数が用意された」
とかいてあるんですけど、マクロの副作用ってどんな事なんですか?
0243こんなの>242
NGNGint a,b;
a=3;
b=square(a++);
0244副作用じゃないけど
NGNGのように括弧を閉じ忘れたときに
とんでもない所にエラーがでてしまい
エラー箇所を特定しにくい。
0245名無しさん@お腹いっぱい。
NGNG結果は、
b=12 , a=5
になる。
関数だと、
b=9 , a=4
になるね。
親切に教え過ぎ?
0246通りすがり
NGNG作者じゃないからあれですけど
三番目の png_bytep data は内部の行バッファ row_buf + 1 を指します。
なんで data[-1] = row_buf[0] に意味があるかというと、IDAT チャンクの構成上
先頭にフィルタタイプがついてるんですな。行を展開した状態で先頭についてる
のでそれをそのまま使ってるわけです。ちなみに行ポインタの指す場所に格納する
時点で先頭のフィルタタイプは省かれます。
pngread.c の png_read_row(), pngrutil.c の png_combine_row()
あたり見て。
この使い方は undocumented なのかな。気をつけた方がいいかも。ウソかもよ。
0247名無しさん@お腹いっぱい。
NGNG俺は寂しいぞ
0248新米ギコ@代理
NGNG|
|
| ∧ >>247 呼んだ?
|Д゚)
⊂|
| `〜
|∪
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0249新米ギコ@代理
NGNG(,,゚Д゚),__カタ_ _< ホンモノよ、戻ってコイ
./ つ_|| ̄ ̄ ̄ ̄ ̄| \_____________
(, |\|| VAIO |
'\,,|==========|
0250名無しさん@お腹いっぱい。
NGNGb=(a++)*(a++);
のときのbって処理系依存じゃないの?
0251新米ギコ@代理
NGNG_(゚д゚ )__
/| ∪∪ /\
/| ̄ ̄ ̄ ̄|\/
| |/
 ̄ ̄ ̄ ̄
0252新米ギコ@代理
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < おれもな!
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0253新米ギコ@代理
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < >>250 その話はまた明日にしようや。
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0254新米ギコ@代理
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < じゃ、おやすみ
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0255新米ギコ@代理2
NGNG| ̄ ̄( ゚Д゚) ̄ ̄| < おはよう!
|\⌒⌒⌒⌒⌒⌒\ \
| \ \  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ |⌒⌒⌒⌒⌒⌒|
\ |_______|
0256233
NGNGおおーありがとうございます。
なるほどIDATを展開したそのままがバッファに入るんですね。
PNG仕様をきちんと覚えないといけないな。。。
教えてくださったことを手がかりにソースを追っ掛けてみます。
#2chの懐の深さを改めて実感した今日このごろ
0257C言語見習
NGNG過去ログとかいろいろ読んだのですがいまいち理解できません。
char giko[] = "giko";
char * neko = "neko";
の扱いの違いがいまいちぴんときません。
たとえば、
int f(void)
{
char giko[] = "giko";
char *neko = "neko";
strcpy(giko, neko); /* OK? */
strcpy(neko, giko); /* ダメ? */
:
return 0;
}
ということです。
nekoがポインタなのは理解してます。
で、nekoの先の文字列は書き換えても安全なのでしょうか?
また、gikoに格納されている文字列は書き換えても安全ですか?
0258名無しさん@お腹いっぱい。
NGNGnekoの先の文字列は書き込み禁止のメモリーに保存されるかもしれない。
だから無事に値を変更できない可能性がある。
>gikoに格納されている文字列は書き換えても安全ですか?
gikoの配列サイズより小さい文字列の為今回のケースでは安全
gikoの配列サイズより大きい文字列をstrcpyした結果は保証されない
#ちなみにsizeof(giko)はいくつだかわかってる?
0259C言語見習
NGNGsizeof(giko) == sizeof(char)*5
で、{'g', 'i', 'k','o','\0'};で初期化ですよね。
char neko[] = "neko";
char * cat = neko;
ならcatは neko\0 の入ったchar [5]を指すのかな。だとすると、catは書き換えokですね。
見た目同じようでも、けっこうちがいますね。むずかしい…。
0260あぼーん
NGNG0261名無しさん@お腹いっぱい。
NGNG例えば下のようなテーブルがある場合、
'.'がスペースだとすると
tm = [".X..\n"] ++
["..X.\n"] ++
["X..."]
>Main putStr tm
.X..
..X.
X...
このテーブルをString -> (Int,Int,Int)のような型に変えて表示したい場合、
((x,y,z) x=列 y=行 z=もし'X'があるなら1、ないなら0)
(0,0,0),(0,1,1),(0,2,0),(0,3,0)
(1,0,0),(1,1,0),(1,2,1),(1,3,0)
(2,0,1),(2,1,0),(2,2,0),(2,3,0)
いったいどのようなファンクションを作ったらいいのでしょうか?
とりあえず頑張ってこんな↓アウトプットが出るファンクションを作ったんですが、
[[".X.."],["..X."],["X..."]]
後はこれをどうやってこんな↓風なアウトプットを出すのか知りたいのですが、
[[(0,0,0),(0,1,1),(0,2,0),(0,3,0)],[(1,0,0),(1,1,0),(1,2,1),(1,3,0)],[(2,0,1),(2,1,0),(2,2,0),(2,3,0)]]
どなたかご存知でしたら教えて下さい。
0262ところで
NGNGchar * mona ="neko";
としたばあい、giko==monaは成り立つでしょうか?
0263>262
NGNG一般には成り立つ保証はない。
char * giko ="neko";
char * mona = giko;
とすれば成り立つ
0264名無しさん@お腹いっぱい。
NGNG成り立つこともあるし、成り立たないこともあるかと。
0265名無しさん
NGNG聞いたが、うーむ。
0266262
NGNGああ、やっぱりどっちもあるんですね。ありがとうございます。
コンパイルスイッチしらべて見ます。
0267名無しさん@お腹いっぱい。
NGNG> char * mona ="neko";
> としたばあい、giko==monaは成り立つでしょうか?
Cの規格では保証されていません。(JAVAの場合、保証されている)
たとえ、一致したとしても処理系依存の方法であり、
あまりお勧めできません。
0268名無しさん@お腹いっぱい。
NGNG0269262
NGNGえと、それはchar const * と char * constのどっちのことしょうか?
>267
はい、処理系依存でかまいません。
あ、処理系はVisual C++6です。(giko==mona)を保証するスイッチが
あったら、それを使ってみます。
古いソース(DOS用、コンパイラは不明(^^;)からのコンバートで、
エラーの内容を示す文字列を受け取って==で比較してる
(If(ret=="Error:File write fail.")みたいの)
ところが沢山あるので、このままにしておきたいもんで。
0270名無しさん@お腹いっぱい。
NGNG0271名無しさん@お腹いっぱい。
NGNG/GFまたは/Gf。つうかCLのマニュアル嫁。
0272名無しさん@お腹いっぱい。
NGNG同じく。使え。
0273名無しさん@うんこちんちん
NGNG今手元にはVC++とVB6があります。
とりあえずPerlかじってたので、変数の使い方等の最低限の理解はあります。
0274名無しさん@お腹いっぱい。
NGNGいきなりC++やると混乱する人が多いそうなのでCから始めたらいいのでは?
0275新米ギコ@代理の代理は本物か?
NGNG(,,゚Д゚) < >>250 複数のコンパイラで挙動が違ったら実装依存だ!
Π ̄ ̄ ̄| \
|つウソデス()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,゚Д゚) < >>262 BCBは最適化のオプションに存在した!
Π ̄ ̄ ̄| \
|つ坊ランド()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(,,゚Д゚) < >>273 目的が無い奴はすぐに挫折するぞ!
Π ̄ ̄ ̄| \
|つ C++ ()  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| |___.|
∪∪
0276262
NGNGいやぢゃぁ
0277名無しさん@お腹いっぱい。
NGNG0278名無しさん@お腹いっぱい。
NGNGハッシュ表に登録しておいて、"唯一"の文字列へのポインタに変換するのは非効率?
0279名無しさん@お腹いっぱい。
NGNG>> 269
読む限りではDOSで動いていたプログラムをportするって話じゃないのか?
だったら、何でそれを一々strcmpとかhashとかでリライトしなければならない
のか俺には皆目わからんぞ。
すなおに/GFとか/Gfでやってみろよ。で、駄目だったらその時に考えれば
いいだろ。
0280名無しさん@優しい人
NGNGそうだな。でもそれ文字列のポインタと違う。ハッシュ値だ。
ハッシュ値を持ち回る様にすれば、文字列走査は1回程度で済む
(衝突時は複数回必要)から、うまくすればとても高速に比較/検索できるぞ。
forループで比較するのとは訳が違うからな。
C++ではmapコンテナで、Cではハッシュテーブルは自分で組む必要がある。
やっとまともな答えが出た感じ。
>>262,269,279
>としたばあい、giko==monaは成り立つでしょうか?
結果として成り立つ場合もあるかもしれないが、
それは単なる、ある処理系のデータセグメント最適化の副作用だ。
たまたまだ、と考えろ。
常用はするな。信用もなくすぞ。
0281名無しさん@優しい人
NGNG0282おしぇてぎこちゃん
NGNG| いつものように2chそーすを見ようとしたらワードパッドが
| あぶのーまるたーみねぇしょんとかいって終了してしまうのですが
\_____ _______
∨
C∧ ∧
___ ○(゚Д゚#)
/◎\……C| \
==============================================
0283>262
NGNG0284名無しさん@優しい人
NGNG定数を1個所(例えばconst char *の配列)にでもまとめておけ。
そうすれば、どの処理系でも期待した動作をするぞ。
#ギコ猫帰ってきたか。猫好きな俺も帰ってきて嬉しいぞ。
#ピカ虫に負けるな。
0285名無しさん@お腹いっぱい。
NGNG0286名無しさん@お腹いっぱい。
NGNG0287名無しさん@お腹いっぱい。
NGNGmapはハッシュじゃないだろ。有名。
0288名無しさん@お腹いっぱい。
NGNGBOOLは大文字で、boolは小文字です。
あぁ、面白くない。鬱だ、氏のう・・・。
0289名無しさん@お腹いっぱい。
NGNGTRUE,FALSEは#defineやenumで独自に定義されている
boolは標準C++の組み込み型。
true,falseはキーワードとしてC++の中に組み込まれている
0290名無しさん@優しい人
NGNGありゃ、そうだったのか…
0291名無しさん@お腹いっぱい。
NGNGSTLの規約さえ満たせば、ハッシュで実装しても良いはずだけど。
0292名無しさん@お腹いっぱい。
NGNG0293名無しさん@優しい人
NGNGC++のtrue/falseはちゃんと実装してない処理系が多いので、
あんま使えないね。
実際、Cの非0/0っていう確実な方法が既にあるからそっちしか使わないし…
>>291
規約ってなんかあったっけ。
CマガのP.J.プラウガーの翻訳記事とかで書いてそうだな。(藁
>>292
既に実装して持ってるが、お前には教えてやらん。
0294名無しさん@優しい人
NGNG0296292
NGNGでなければ意味が無い。
例えばchar*であれば、文字列として等しければ同じhash値が
得られる必要がある。
で、俺が書いたのは、そんなテンプレート関数を実装するのは
ようするに不可能(したがって、mapをhashで実装することは
出来ず、外部からhash関数を与えてやるようなインタフェイスが
汎用ハッシュコンテナの設計上は必要)ってこと。
> 既に実装して持ってるが、お前には教えてやらん。
というのがどんなものだが知らんがな(苦笑)。
0297名無しさん@お腹いっぱい。
NGNGで書いた円の線がどのポイントを通っているか、分かりますか?
やりたいことは、内接する、5角形を書いたりしたいんです。
0298名無しさん@お腹いっぱい。
NGNG耳学問厨房ウザイ
0299名無しさん@お腹いっぱい。
NGNGすべてのコードみられてしまうんです。
これじゃ、データを置いておいて、Perlを使って吐き出したほうが全然ましです。
サーバーサイドで処理して、HTMLで公開したいのですけど、
どうすればいいのですか?
XMLってどこで聞けばいいの?
0301名無しさん@お腹いっぱい。
NGNG可能性を実験しているのであります。
>ナマのXMLデータをクライアント側でどうとでも好きにしてくれ
好きにされちゃ、いやなのねん。
一生懸命書いた掲示板のソース公開しないでしょ?それといっしょ。
あと、IE使っていない人にも、表示させたいじゃん。
0302吾輩は名無しさんである
NGNG0303名無しさん@お腹いっぱい。
NGNGXercesとは?手元で変換とはなんぞや?
詳細きぼーん。
0304名無しさん@お腹いっぱい。
NGNGちょっと興味あり。
ところで、SGI_STLではreverse_iteratorの実装ってどうなってるの?
ISOに沿った実装だとiterator_traitsがVCでまともにコンパイルできないから、
その辺がどうなっているのか知りたいっす。
0305名無しさん@優しい人=53
NGNGああ、勘違いしてたよ。
ハッシュテーブルの入れ物の事じゃなくて、ハッシュ関数ね。
>>298
>耳学問厨房ウザイ
そんな突っ込みしか入れられないお前はイタイ(藁
0306295
NGNGここから入手できますよ。
http://www.sgi.com/Technology/STL/download.html
reverse_iteratorはこの辺りかな。
http://www.sgi.com/Technology/STL/stl_iterator.h
0307ドキュソ先輩のドキュン後輩
NGNG---
struct TEST {
char moji[ 3];
short suji;
};
---
をsizeofすると6になる。5にならんか?と先輩に聞かれた。
6になる理由と5にできるのならやり方を教えてください。
0308304
NGNGレス、ありがとうございます。
僕が気にしていたところは、どうやらマクロで切り抜けているようですね。
なんにしても、コードが読みやすくて良い感じです(^o^)。即ゲット!
0309名無しさん@お腹いっぱい。
NGNG0310名無しさん@お腹いっぱい。
NGNG詳しくは「アライ[ン]メント」、「境界」とかで検索してください。
ほとんどのコンパイラは、奇数アドレスのアクセスには時間が掛かる、
というような理由で、構造体のメンバを、2の倍数、またはそれの乗数や
レジスタサイズの境界になるように配置します。
解決方法は存在しますが、処理系毎に異なります。
(よって、処理系依存なコードになります。)
メンバの位置が重要で無ければ、サイズを気にするのはやめたほうが
良いですよ。
これでわかんなければ、Linuxのコンパイラ(gcc?)に詳しい人を待ちましょう。
0311名無しさん@お腹いっぱい。
NGNG構造体のパック問題というやつですな。
構造体[バウンダリ|アラインメント]
あたりのキーワードで検索してみませう。
先輩はドキュ「ソ」で、後輩はドキュ「ン」。
この違いが気になる今日この頃。
0313ドキュソ先輩のドキュン後輩
NGNGありがとうございます。とりあえず説明できるようになりました。
「ソ」と「ン」は、ひねっとかないと叩かれるかなと思っただけで意味はありません。
0314名無しさん@お腹いっぱい。
NGNG判定後、それぞれの処理関数を呼び出す。」
というコードを書いたんですが
遅くなるからという理由で、
飛び先テーブルを使う方法に書き直させられました
しかも2分木(だっけ?)検索付き。
個人的には、10件ぐらいいーじゃねーか、とか
わざわざ読みにくくしてどーする、とか思ったんですが、それは置いといて。
最近のCPUだと命令先読みとかキャッシュの関係で
case使った方が逆に速くなるような気がするんですが実際どうなんでしょうか?
ちなみにSH3使ってます。
0315名無しさん@お腹いっぱい。
NGNGどうしてもわからないので教えてください(;´Д`)
http://www.geocities.co.jp/MusicStar-Guitar/9458/help_me.txt
これってどう組むのでしょうか?
0316名無しさん@お腹いっぱい。
NGNG0317316
NGNG答えは出せるがそれじゃ勉強にならんだろ。
どの程度までならわかるかを掲示せよ。
0318>>315
NGNG{
char sz[9];
printf("%dより%dの方が小さいなら1、大きいなら-1、等しいなら0を入力しやがれ! ",*x,*y);
fgets(sz,sizeof(sz),stdin);
return atoi(sz);
}
int main(void)
{
int array[10]={17,3,4,9,5,2,3,1,32,31};
qsort(array,sizeof(array)/sizeof(int),sizeof(int),douyo);
}
0319>314
NGNG可読性の意味からもcase文で宜しいかと。(ラブコンプレックスって面白いねー)
0320名無しさん@お腹いっぱい。
NGNG検索付きってことは等差数列じゃないんでしょう。
だったらテーブルジャンプにはしてくれないと思うぞ。
0321315
NGNG先生がいるのなら、尋ねません。
>317
配列が理解できていません。
仕組みは理解できるのですが、
実際に使うとなるとまるでダメです。
>318
さっそく試してみます。ヽ(´▽`)ノ
ありがとうございます。
0322名無しさん@お腹いっぱい。
NGNGアルゴリズムは、構成済み。
0323ミトコンドリ子
NGNG小さいテストプログラムを書いて、プロファイルとってみればいいんじゃ
ないかしら。
で、速度差が無視できる程度なら「読みやすいからswitch caseにしたい」
と提案したら?
0324名無しさん@お腹いっぱい。
NGNG>最近のCPUだと命令先読みとかキャッシュの関係で
>case使った方が逆に速くなるような気がするんですが実際どうなんでしょうか?
>>323がおっしゃるように組んでみて速度を比較するのがベストでしょうね。
僕の浅い経験からは。。。どっちがいいとも言えない。
ただ、疑問なのはなぜ、binary searchを使うのか。
switchで片がつくやつなら関数ポインタの配列に入れといて
直接indexにすればいいと思いますが。。
switch(a)
case0: ....
case1: ....
case2: ....
なら(array[a])();
みたいな。。
0325名無しさん@お腹いっぱい。
NGNGcase 34:
case 678:
case 1111:
とかなんでしょ。まあ結局二分検索のほうが遅いと思うけど。
0326>322
NGNGけどだいたい 圧縮>=展開 だな
圧縮より展開のほうが大変なアルゴリズムは寡聞にして聞いたこと無い。
バックアップ用なら使えると思うんだけど。
0327SAGE
NGNGBlockSortを絡めてると展開の方が面倒じゃない?
0328ぴろ
NGNG一時期、メモリの有効活用に、冗長と思えるプログラムの
データを圧縮して小さくして、メモリに格納しておきたいと
思った事がありました。プログラム上で使用するので、あまり遅い
展開ルーチンは使えないかなー、とか思ってたんですが。
ある程度のランダムアクセスができる特許関係の問題が無い
圧縮方法またはアルゴリズムってありますかね?
組み込み用途で使えそうなやつ。
0329名無しさん@お腹いっぱい。
NGNGエンコーダもコンパクトだった。
ただ特許関係はよく知らない。
0330ぴろ
NGNGBPEですか。調べてみます。
あ、ランダムじゃないやつでもヘッダ情報とかが小さくて済むなら、
メモリブロック単位に分けるって方法でもよさそうですね。
0331名無しさん@お腹いっぱい。
NGNGあと、伸長はLZ77よりも高速(圧縮率も同程度)だけど
圧縮がめちゃめちゃ重いですよ。平気で数時間とかかかります。
ゲーム方面でよく使われてました。
今はボトルネックがCD-ROM/DVD-ROMにあるから
もうちょい事情が違うと思う。
0332( ´∀`)
NGNG0333名無しさん@お腹いっぱい。
NGNGCで書いたのを呼び出せば出来るんじゃない?
malloc( XXX);
0334499
NGNGプロトタイプについての質問です。
文字列をあらわす関数をxyz(j)としたときなぜ次のプログラムは間違いなんですか?
#include <stdio.h>
#include <string.h>
char j[80];
int i;
char xyz(j);
int main(void)
{
printf("文字列を入力してください: ");
gets(j);
char xyz(j);
return 0;
}
char xyz(j)
{
for(i=0;i<=strlen(j)-1; i++)
printf("%c", j[i]);
}
0335>499
NGNG0336名無しさん@お腹いっぱい。
NGNG0337名無しさん@お腹いっぱい。
NGNGunixならgettimeofdayが使えるのに。
0338名無しさん@お腹いっぱい。
NGNG時間差だけならtimeGetTimeとか。
0339名無しさん@お腹いっぱい。
NGNG時間差だけならtimeGetTimeとか。
0340名無しさん@お腹いっぱい。
NGNG0342名無しさん@お腹いっぱい。
NGNG書き込みもできるんでしょうか?
(Macは読み書き両方できるらしい)
できるならやり方を教えてください。
0343337
NGNGthanksです。
0344名無しさん@お腹いっぱい。
NGNG`
タ
・ @`タ・ @`タ・@
`
タ
・ @`タ・ @`タ・ @`タ・ @`タ・ @`タ・ @`タ・ @`タ・ @`タ・ @`タ・ @`・・・ ・ 、・ 、# 、/ 、k 、w 、・ 、ッニz <u闕・<「阮・V3z ・ >z tθ ・?r�z・z
舩・テQ:・tア鎹 ・:シtア錣 ・:・tア・ ・旧;騁・ u9x tア・ ・;・tア・ ・ニz 亨Yテ:z ~・z テWSQR・ 鞁緊ケ ・>タy韈・^ ZY[_ヒコ ・ネヒWSQR・p >r u緊ケ$ ・・・闡緊ケ$ ・>・タy陝・` ZY[_ヒコ$ ・ヒSQR錦ケ ・d 。f ・Z ・・SQR錦ケ ・h 。j ・\ 2タZY[ヒSQR錦ケ$ ・t 。v ・b VW・ι.θ"ケ サ・・チタ#テォNュ#テォ糂・^・・、tニz ・・x テ・x テ=u$・V ・ ・~ 戸偲サ| >{ tサvマ..V ・u・�ハ .・・ u
・u.。フ マ..R V戌2ム・ ・ョ 「ー 限筋チ・チ・゙ ・カ 「ク ・・エ・擔2タテu・・ u・・鬣 VW恚・・ホ Q・・ u・ ・闊 Y拈^テV戌程・リメ Aム驩ョ ・ー 限筋チ・チ・゙ ・カ 「ク ・・エ・擔テV戌2ム・ ・・」・。・」・限・・」・ヌ・ ム瘟・ヌ・ ・・エ・擔2タテV戌程・リメ Aム驩・・・。・」・限・・」・ヌ・ ム瘟・ヌ・ ・・エ・擔テVW程・リソ;��メ #゚・空・・環コ`戌�D、・タ�{^テV2ム・ソ;・ #ラ・喰・・コ`戌�D・・タ�z2タテ岸・sクテ2チ・帰・テQW・_YテV戌・・
靺・・ ・ロ*v・吹黻#s・・u・・r・帥>
uク 謹ケ ・ ・・
$uクH 謹ケH ・ ・ー・ク鑿ー・3タ鈩ー擔テQ・・ u,」ョ ・ー 3タ乎錦チ・チ・霹・カ 「ク ・・Yム魘・・」・・・限・・」・Y・・ヌ・ ・・。・」・ヌ・ エ・3タテVSQR戌・
・鞨 ・・ ・ロ*v・吹黻#s・・u・・r・帥>
uク 謹ケ ・ ・・
$uクH 謹ケH ・ ・ー・ー・ー抻Y[^テQ・・ u,」カ ・ク 3タ乎錦チ・チ・靫 ・ョ 「ー ・・Yム魘・・」・・・限・・」・Y・・ヌ・ ・・ヌ・ 。・」・エ・3タテQ。」=@〉=殲=@灑・・クYテ・@灑・ @・ □*茱。アモ陬・@rホ・tヌ・ sソ・v・@。」クシ ・」。+タYテレチテ | ・ v ・ クククククククククククククククククククククククククククククククククククククククククククククククククククククククククククククククク H ・リ hー・@・ミ`ィ・8ネX・0xタP・・(pク H ・リ
h
ー
・@・ミ`ィ・8
ネ
X・0xタP・・(pク H・リ hー・@・ミ`ィ・8ネX・0xタP・・(pク H・リ hー・@・ミ`ィ・8ネ X ・0!x!タ!"P"・・(#p#ク# $H$・リ$ %h%ー%・@&・ミ&'`'ィ'・8((ネ()X))・0*x*タ*+P+・・(,p,ク, -H-・リ- .h.ー.・@/・ミ/0`0ィ0・811ネ12X22・03x3タ34P4・・クククニH テP汽・Ut鍖 ・・ Xテ`コ`・ト限・弓
空・・ケ ・筋ュ=tチ・欣チ・ツ√騰凝ォ粐コ`2タ�}テネ `・ト=円・F逆
オ3ロ・ハ・ t
:-r:mvGG・・ t。ワF・V・欝・ス ・ヌヌDθナ uシaノテv ア5 ;( c' ・' ・# ! *$ N n) ・) タL ! -" O o" ・# エ& レ& Loading font
0346名無しさん@お腹いっぱい。
NGNG0347名無しさん@お腹いっぱい。
NGNGフォアグラウンドウィンドウってなんですか?
きっとアクティブの反対の意味だと思うんですけど
どっかのサイトにフォアグラウィンドウは1つしか存在しないと
書いてありました。
フォアグラも食ったことないので味の方もお願いします(´∀`;)
0348ぎこじゃないけど
NGNG*現在フォーカスがあるウィンドウ。
*キー入力することが出来るウィンドウ。
でいいんだろうか。。。。
アクティブウィンドウ=フォアグラウンドウィンドウ
Not アクティブウインドウ=バックグラウンドウィンドウ
なのかな????
フォアグラは私も食べたことないです。
なのでパス。
0349名無しさん@お腹いっぱい。
NGNG注目してるバックグラウンドウィンドウがフォアグラなのか??
0350名無しさん@お腹いっぱい。
NGNG旨いかどうかっていうと‥‥‥?
0351ああっ名無しさまっ
NGNG日本人ならアンキモウンドウウィンドウでも食っとけ。
0352名無しさん@お腹いっぱい。
NGNGそれって、なんかのフォントのsysでは???
見たことあるな・・・・・・・・
0353名無しさん@お腹いっぱい。
NGNG(例えば5メガ)の割り当てなどをするのは危険なのでしょうか。メモリ割り当ては
すべてメインスレッドで行って、子スレッドにポインタを渡すようにしたほうが
いいのでしょうか。よろしくおねがいします。
0354奥さん、名無しです
NGNG0355名無しさん@お腹いっぱい。
NGNG全然関係ないから、好きなスレッドで好きなだけ確保すれ
0356名無しさん@お腹いっぱい。
NGNG入手方法とか教えてもらえると助かります
0357名無しさん@お腹いっぱい。
NGNGデータシートでわかんなかったら諦めろ
0358菊池竹男
NGNGどう実装するのがスマートなのでしょうか?
または、参考にすべきパターンがあるのでしょうか?
私は以下のような方法を考えたのですが、どうでしょう?
class CMember
{
friend class CArray;
friend class CValue;
public:
CMember():m_Value(0){};
private:
int m_Value;
int m_Array[10];
public:
int m_Public;
};
class CArray
{
public:
CMember *m_pMember;
CArray(CMember *pMember): m_pMember(pMember){};
void Zero()
{
memset((void *)m_pMember->m_Array, 0, sizeof(m_pMember->m_Array));
};
};
class CValue
{
public:
CMember *m_pMember;
CValue(CMember *pMember): m_pMember(pMember){};
void ValueInc() { m_pMember->m_Value++;};
};
class CMaster : public CMember
{
private:
CArray *m_pArray;
CValue *m_pValue;
public:
CMaster()
{
m_pArray = new CArray(this);
m_pValue = new CValue(this);
};
~CMaster()
{
delete m_pArray;
delete m_pValue;
}
public:
void Func()
{
m_pValue->ValueInc();
m_pArray->Zero();
};
};
2chの皆様、どうかご教示下さいませ。
0359ミトコンドリ子
NGNGごめんなさいね、アタシがバカだからかもしんないけど、
なにがやりたいんだか、さっぱりわからないわ。
なんのために「特定のメンバ変数を専用に管理する関数をクラスにまとめたい」の?
上の例ではどのクラスが、そのメンバ変数を専用に管理するクラスなの?
上の例のどんな点が、なぜ望ましくないの?
38さんか、どなたか、説明してちょうだい。
0360名無しさん@お腹いっぱい。
NGNG%02dのようなフォーマットで、頭に0をつけたいのですが
どうすればよいですか?
0361:名無しさん@お腹いっぱい。
NGNGデバイスドライバの知識は必須ですか?
0362菊池竹男
NGNGCMember:(CMasterのメンバをこのクラスで持たせる。)
┣m_Value;
┗m_Array[10];
CValue:
専らCMember::m_Array[10]を管理
CArray:
専らCMember::m_Valueを管理
CMaster:
クライアントが使用するクラス。
m_Valueやm_Arrayに直接アクセスするが、
込み入った専用の処理はCArrayや、CValueに持たせる。
m_Valueとm_Arrayは用途の方向性が違うため、
同じクラスでは管理したくないが、グローバルなものであるため、
CValueやCArrayのメンバに持たせて継承するといったことはしたくない。
というスタイルを試みたのです。
説明不良ですいません。
0363菊池竹男
NGNGデバイスドライバ自体の知識はさして必要にならないですよ。
0364名無しさん@お腹いっぱい。
NGNGwsprintf じゃ駄目か?
0365ミトコンドリ子
NGNGやっぱりなにがやりたいかよくわかんないんだけど、これじゃいけないの?
class CArray {
private:
int m_Array[10];
public:
CArray() {}
void Zero()
{
memset((void *)m_Array, 0, sizeof(m_Array));
}
void Get( int i ) const
{
assert( 0 <= i && i < sizeof(m_Array)/sizeof(*m_Array) );
return( m_Array[i] );
}
void Set( int i, int nVal )
{
assert( 0 <= i && i < sizeof(m_Array)/sizeof(*m_Array) );
m_Array[i] = nVal;
}
};
class CValue {
private:
int m_Value;
public:
CValue(){};
void ValueInc() { m_Value++;}
void Get() const { return( m_Value ); }
void Set( int nVal ){ m_Value = nVal; }
};
class CMaster {
private:
CArray m_Array;
CValue m_Value;
public:
CMaster() {}
~CMaster() {}
public:
void Func()
{
m_Value.ValueInc();
m_Array.Zero();
}
};
継承じゃなくて集約で書き直しただけよ。
CMemberクラスの存在意図がわからないから削除したわ。
上の例じゃうまく表現できてない部分があれば、説明してちょうだい。
0366菊池竹男
NGNG本来はまさに >>365 のようにしたかったのですが、
CValue::m_Value;
CArray::m_Array[10];
の2つはCMasterに持たせたかったのです。
そのためCMemberを作りました。
0367名無しさん@お腹いっぱい。
NGNGその理由はなぜ?
今までの説明だと俺にもその辺が見えない。
>>362の
> グローバルなものであるため、
という説明では不可解(だって、一般的な意味での「グローバル」
にはなってないでしょ)。
0368名無しさん@お腹いっぱい。
NGNGなんか....
「手続き型の設計技法でクラス作ってみました」
という雰囲気が漂っているんだが...
# 継承を使わないでとか
カプセル化って知ってるよね?
0369名無しさん@お腹いっぱい。
NGNGclass T;
T* x = new T;
vector<T*> vT;
vT.push_back(x);
delete x;
とするとvT[0]の中身が破壊されるようなのですが
普通 delete x しないものなのでしょうか?
また(*x含めて)vT全体を破壊するやり方はどうやりますか?
0370>369
NGNGこの程度のキーワードで考えろ。
全体に適用するのはiterator使え。
0371名無しさん@お腹いっぱい。
NGNGインターネット上からファイルをダウンロードすると、保存先を聞いてきますよね?
あれをなくしたいんです。
要は、リンクを貼ったファイル名をクリックすると固定のパスに直接落とすようにしたいんです。
スレ違いかもしれませんが、どなたか教えてください。
お願いします。
0372つーか、
NGNGclass T;
T *p1 = new T;
T *p2 = p1;
delete p1;
で、p2のオブジェクトがdeleteされるのはなぜですか?
・・・と同じ。
0373名無しさん@お腹いっぱい。
NGNG0374菊池竹男
NGNG作ることにします。
ミトコンドリ子さん、大変ありがとうございました。
>> 368
すいません、カプセル化ってよく聞くんですがなんなんでしょうか?
あと、抽象化とかオブジェクト指向ってのもよくわからないんです。
0375ミトコンドリ子
NGNGアナタの問題が解決したのはいいんだけど、ここは公共のノウハウ共有
の場なんだから(ちがう? アタシはそのつもりなんだけど)、説明するべき
ことはちゃんとするべきだと思うの。
具体的には
アナタは当初の設計でなにがやりたかったのか?
365のコードが提示されたことでなにがわかったのか、される前にわかって
いなかったことはなんなのか?
についての説明をいただきたいわ。
そういうまとめがあれば、まとめを読むことで同じ問題を抱えている人
が自分で解決にたどり着いたりすることもあると思うの。
それに言葉にして説明すると思考が具体化するから、自分の課題の整理にも
なってよ。
アナタのためにも、スレを読むほかのひとのためにも、よろしくね。
0376368
NGNG>抽象化とかオブジェクト指向ってのもよくわからないんです。
オブジェクト指向の基本的な概念です
以下のリンクを参考にしてください。
私が1から解説するよりもよいでしょう。
また、書籍なども挙げておきます
・www上での解説
オブジェクト指向技術の基本概念
http://www.ogis-ri.co.jp/otc/hiroba/technical/concept.html
オブジェクト指向FAQ
http://www.zzz.or.jp/~iizuka/EOO/Japanese/oofaq-j/oo-faq-toc.html
・書籍
オブジェクト指向入門
http://value1.goo.ne.jp/cgi-bin/book-search.cgi?WD=%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%BB%D8%B8%FE%C6%FE%CC%E7&CD=1&DN=1&SW=1
2chの推薦図書
http://mentai.2ch.net/test/read.cgi?bbs=prog&key=964560144&st=4&to=4&nofirst=true
・C++限定
Effective C++ (改訂2版 )
スコット・マイア−ズ;吉川邦夫
アスキ−(1998) ISBN:4756118089
More Effective C++ ―最新35のプログラミング技法
Meyers, Scott; 安村 通晃・伊賀 聡一郎・飯田 朱美
アスキー(1998) ISBN:4756118534
0377菊池竹男
NGNG今までのものはクラスを使わずに
ひとつの構造体とそれに特化した関数で作られていたんですが、
関数の構成があまりにも混沌としており、十分な機能別けが
出来ておりませんでした。
そこで、機能ごとにクラスにまとめようと思ったのですが、
メンバ変数を個々のクラスに持たせてしまうと、元々の変数のスコープ的な
意味合いが変わってきてしまうので、どうすればいいかと考えておりました。
結局、365にいただいたものが基本なようなので、無理をして
いままでのスタイルを維持することもないと思ったのです。
>376
ありがとうございます。
これからちょっと読んでみます。
0378名無しさん@お腹いっぱい。
NGNG2桁とかに制限したいのですが
どなたかご存知の方教えて下さい
0379>>378
NGNG0380( ・∀・)さん
NGNG枠の内部のサイズを厳密に指定したいんですがどうすればいいでしょうか?
0381SAGE
NGNGAdjustWindowRectとかなんとかそんな名前のAPI。
0382名無しさん@お腹いっぱい。
NGNGAdjustWindowRectじゃ不可能なのでサイズを変更後にひたすら再調整
0383( ・∀・)さん
NGNGこういうのはレジストリやiniなどの変更で変わることはないんでしょうか。
普通そんなことする人はいないでしょうけど、
逆に考えるとそこを見ればサイズがわかるかなと思いまして。
0384( ・∀・)さん
NGNG横:4+w+4(w>=104)
縦:23+h+4(h>=0)
ということになりました。
ただし95でですが。
0385gcc
NGNGをファイルの先頭で書いてるのに、gcc -Wall -ansi で
警告: 関数 `gethostname' の暗黙の宣言
とか言われるのはなぜでしょう。コードは問題なく動くのですが、ちょっと気持ち
悪いです。symlink()とかでも同じこと言われます。
0386名無しさん@お腹いっぱい。
NGNG怒られないっす。FreeBSD 3.4R & gcc 2.95.2
0387gcc
NGNG当方 Linux 2.2.14 & gcc 2.95.3 です。
ちなみに -ansi を抜くと怒られないんですけど、、、。
0388名無しさん@お腹いっぱい。
NGNGサーブレットはサーバーで実行するなら、当然サーバへの負荷は
サーブレットの方が大きくなるわけですか?
0389名無しさん@お腹いっぱい。
NGNG0390386
NGNGSlackware 7.0(egcs-1.1.2)では怒られたよ。
-D_GNU_SOURCE もしくは -D_BSD_SOURCE 付けなきゃいかんようだな。
0393std::vector
NGNGVECTOR全体のソースを見てしまうと、かなり大規模な感じはしますが、
最終的にはインライン展開と、オプティマイズにより、
Cの配列と同程度の実行速度になる気がします。
頻繁に配列のオーバーフローが発生すると大きなオーバーヘッドになりますが、
それはユーザー側が初期化サイズを十分な大きさにしてしまえば問題無いはずです。
VECTORのソースも見ずに遅いと決め付けて、
バグありコードを大量生産するアホがいて困ります。
まぁコードサイズはあんま誉められたものではないかもしれませんが・・・
0394名無しさん@お腹いっぱい。
NGNGありません。これ以上の速度を求めるなら、自分で書きなさい。
0395名無しさん@お腹いっぱい。
NGNGおまえ、オブジェクト指向ヤメレ。
向いてない。
0396山有り谷あり
NGNG0397名無しさん@お腹いっぱい。
NGNGなりません。
0398水原勇気
NGNG0399名無しさん@お腹いっぱい。
NGNG0400std::vector
NGNG私自身はstd::vectorにまったく不満はありません。
>>394
その「自分で書いた時」に実行速度的にvectorを上回る
コンテナクラスが書けるのかどうかが知りたいんです。
ちなみに自分は無理だと思います。
0401名無しさん@お腹いっぱい。
NGNGてどのくらいやってます? 例えば一時ファイルを使ってデータ処理を
する時とか、やっぱり一回一回ファイルが開いたかどうか閉じたかどう
か全部if文でくくって、なんかの例外処理をしてるのでしょうか? 仮
に一時ファイルのオープンが突然失敗した場合、どんなことをやって事
態を収拾するのですか?
よろしくお願いします。
0402名無しのエリー
NGNG重要なファイルでない場合は if 文で分岐して、エラーメッセージを表示する程度。
重要な場合はファイルに保存せずにメモリ内で処理する。
処理中に異常終了したときのことも考えてメモリとファイルの両方に保存するときもある。
異常終了の場合はファイルを読み込んで再起動。
0403新米ギコ@いいかげん
NGNG(゚Д゚ ) < >>396 object oriental なんつったり
⊂⊂\──────
\ 〜 ────
し し ─────
∧ ∧ ──────
(゚Д゚ ) < >>400 省機能なら逝けるかもしれん
⊂⊂\──────
\ 〜 ────
し し ─────
∧ ∧ ──────
(゚Д゚ ) < >>401 生C、とか生C++だとめんどくさいけど一回一回やらないとダメ
⊂⊂\─── ファイルオブジェクトが提供されているようなとこだったら適当なとこで
\ 〜 ─ 例外をキャッチする。
し し ─────
0404名無しさん@お腹いっぱい。
NGNGファイルオブジェクトが提供されてないなら、
Proxy自作すべし。そこで投げる例外も自作。
0405未熟者
NGNG登録順にアクセスしたくなってvectorに変えた。
同時に、mapの中身はvectorにあるデータ本体へのポインタにした。
「findで見つかるのに、中身がおかしい」という現象に
今まで2時間くらい悩まされた。
vectorへの登録と同時にmapに登録しようとした
俺が悪かったよ。
ごめんよ、経験値低くて。
0406た
NGNG模範解答に比べてif分岐が異様に多い、醜いコードになっちゃいます。
関数の分割がヘタレなためみたいなんですが、
そこらへん系統的に解説したいい参考書ないでしょうか?
0407>406
NGNGまあ、アルゴリズム的にみて明らかに無駄な条件分岐ってのもあるけどね。
短めの例でもあげて見せてごらんよ
昔のソースは端末が遅くて入力がうざかったり、
最適化がほとんどなくてソースの複雑さが実行コードの効率と
直結してたから
短く最適化された(ともすれば暗号のような)ソースが多かった。
いまのコンパイラは結構賢いからif分が多くてもそのほうが
ソースがわかりやすいなら気にすることはないと思うよ。
0408名無しさん@お腹いっぱい。
NGNG全てのシステムコール、API、メソッドについて例外処理は入れるよ。
コードの半分位は例外処理、テストの2/3は例外処理に対するもの、
つー感じかな。
0409個人事業主
NGNGプログラマー板で雑談質問スレが見当たらなかったのでこちらで失礼します。
欲しいプログラムがあったとして
それを誰かに作って欲しいときはどこに当たればよいのでしょうか?
プロのプログラマーにお願いしたいのですが、
どこをどう探していいかわかりません。
はたして個人相手に仕事をしてくれるのか
相場などもまったくわかりません。
リストになっているサイトでもあれば紹介してください
(規模的には慣れた方なら2週間程度で完成するレベル・・・と思います)。
また依頼するにあたって気をつけることなどありましたらアドバイスお願いします。
ひょっとしたら根本的な勘違いをしているかもしれませんので
お叱りと共に指摘していただければ幸いです。
よろしくお願いします。
0410名無しさん@お腹いっぱい。
NGNG企業に納品するアプリケーションは、製作が2週間でも、
その仕様をクライアント(あなた)との間で精密に決定して
いく作業と、試験と、クライアントに対する運用トレーニング
とかで、3倍とか4倍とか掛かると思うよ。もちろん、その間の
経費はあんた持ち。
でもって人間一人一ヶ月使うなら100万は覚悟しましょう。
そこまで金使うつもりがないなら、プロに頼むのは無理。
というか、そもそもそんな必要ないものなんでしょ?
0411個人事業主
NGNGお返事ありがとうございます。
100万ですか・・・。
それ以上になるとキツイですが、
今後のことを考えるとその価値はある投資だと思います。
よろしければ検索のキーワードでも構いませんので
お教え願えませんか?
0412名無しさん@お腹いっぱい。
NGNG何をもってそう思ったのかはわかりませんが、
そういうそういう考えかたができるということは
あなたもある程度のプログラミングの知識はお持ちなのでしょうか?
でしたら企業対企業ではなく個人対個人でしたらもっと安価にできる
場合もありますよ。
いちばんの違いは信用の部分。
0413個人事業主
NGNG一応BASICで遊んだことはあります
(そして読んでないC++の本がつんであります)。
パソコンにやらせたい作業の手順(アルゴリズムと言ってよいのでしょうか)
も頭の中ではできています(プロから見たら穴だらけだとは思いますが)。
個人間でできればよいのですが
万が一そのプログラムが商品になるという見込みが発生した場合・・・
プロから見たら痛い厨房的な発想に見えるかも知れませんが
その辺のことを考えると企業かなと、少ない情報ながら判断しております。
・・・・
教えて君ですみません。私はどこに行けばよいのでしょうか?
0414名無しさん@お腹いっぱい。
NGNGプログラムそのものを販売する。ということですか?
それだとそのご予算では相当きついのではないかと‥
契約にもよりますが、通常、料金には使用権しか含まれないかと‥
メンテナンスや販売権などは全く別です。
0415cafe
NGNGコマンドor設定ってないですか?
とろいマシンなんで同期がとれないみたいなんです。
0416名無しさん@お腹いっぱい。
NGNGoidフィールドでの問い合わせがやたら遅いです。PostgreSQLの
oidフィールドは、インデックスキーになっていないのでしょうか?
0417名無しさん@お腹いっぱい。
NGNG多分...
oidを求める為の問い合わせが遅いような気がする
# 主キーがインデックスになっていないとか
0418名無しさん@お腹いっぱい。
NGNGselect * from theTABLE where oid='5487916';
としたときのレスポンスが極端に遅くなります。「theTABLE」
をクリエートするとき「oid」をインデックスに設定しなきゃ
いけないんでしょうか?
0419名無しさん@お腹いっぱい。
NGNGポインタだけでいいので教えてください。
0420名無しさん@お腹いっぱい。
NGNGもしかしてポインタってURLのことか?
0421名無しさん@お腹いっぱい。
NGNGそうです,すいません。まぎらわしい書き方をしてしまいました。
ポインタはURLの事です。
0422名無しさん@お腹いっぱい。
NGNGcrypt(3)は?
と思ったけどだめだ。元に戻せない。
0423名無しさん@お腹いっぱい。
NGNG必要な暗号強度は?
0425名無しさん@お腹いっぱい。
NGNG極端な話,シーザー暗号程度でもいいんです。
ってそれくらいだったら作れと言われそうですけれど・・・
ぱっと見,分からなければいい程度です。
0426名無しさん@お腹いっぱい。
NGNG0427>425
NGNGその程度でいいなら、BIT反転させれば?
ぱっと見ならわからないよ。
0428た
NGNGさっそくのアドバイス、ありがとうございました。2日空けただけ
なのに、自分の書きこみがだいぶ前になっててびっくりしました。
アルゴリズム的にムダな条件分岐は無かったです。
ただ、今のやり方のまま、例えば数千行にわたる手順をう
まく動くように構成するのは無理っぽいので、かなり危機
感感じてます。
0429423>>425
NGNG暗号強度は結構高いというか有名どころがインプリメントされてる。
http://www.eskimo.com/~weidai/cryptlib.html
商用からみで使うなら ? だけど
0430た
NGNGふつう誰も悩まないのかな・・
0431名無しさん@お腹いっぱい。
NGNGVBのMEという命令、オブジェクトについて教えてください
使い方がいまいちわかりませぬ(怒)
04320xE104
NGNG#include <stdio.h>
main()
{
char string[] = "123456"
printf("%s\n",string);
printf("%s\n",&string);
}
実行結果:
123456
123456
あれれ!?
0433名無しさん@お腹いっぱい。
NGNGprintfの順番替えて、
printf("%s\n",&string);
printf("%s\n",string);
これでやるとどうなる?
0434名無しさん@お腹いっぱい。
NGNGそうなってしまうのが正しいのだ。
string は char*、&string は char(*)[]だが
printfはそのどちらも%sをみてchar*だと判断してしまう‥
0435暇つぶし
NGNGfloat b = 2.0;
printf( "%f %g\n", a, b);
これは正しいけど
scanf( "%f %g\n", &a, &b);
これは正しくない
0436名無しさん@お腹いっぱい。
NGNG0437名無しさん@お腹いっぱい。
NGNGstringも&stringも、値は一緒だから。
本来、&stringの方は間違いなんだけど、ANSIの規格では認めることになったらしい。
コンパイラによってはエラーになったりするよ。
0438名無しさん@お腹いっぱい。
NGNGの間違い
04390xE104
NGNGmain()
{
char string[]="123456";
char *pstring;
pstring = string;
printf( "%d\n",(string == (char *)&string) );
printf( "%d\n",(string == (char *)&pstring) );
}
結果:
1
0
ひょっとして私は重大な勘違いをしているのだろうか…
0440>439
NGNGprintf("0x%08x\n", string);
printf("0x%08x\n", &string);
printf("0x%08x\n", &string[0]);
printf("0x%08x\n", pstring);
0441名無しさん@お腹いっぱい。
NGNG0442名無しさん@お腹いっぱい。
NGNGテレパスさんきぼ〜ん
0443名無しさん@お腹いっぱい。
NGNGchar a[10]
という配列があった場合、
a == &a[0]
でしょ。
でも、最近のコンパイラは、
a == &a == &a[0]
になってるの。
原則から言ったら、&aはおかしいんだけどね。
439で
(string == &string)==1
になってしまうのはそのため。
0444名無しさん@お腹いっぱい。
NGNG> a == &a == &a[0]
ということは、最近のコンパイラは
*(&a)=1;
とするとa[0]に1が代入されるのですか?
0445名無しさん@お腹いっぱい。
NGNGおれの持ってるコンパイラはbcc5.5なんだけど、
*(&a)=1;
は、"左辺値が必要"ってエラーが出て、コンパイルできない。
だぶん、*(&a) → a と判断されて a = 1になってしまい、配列名への代入になってしまったんだろう。
*((char*)&a) とキャストすれば問題なし。
04460xE104
NGNGあ〜、そういうことなんですか。解説多謝。
でも…
>>440
結果:
0x257fdac
0x257fdac
0x257fdac
0x257fdac
ぎゃあああああぁあぁっ!!
0447名無しさん@お腹いっぱい。
NGNGもやってみ>>446
0449443
NGNGなのに
&string != &pstring
なのがミソ
0450名無しさん@お腹いっぱい。
NGNGそりゃそうでしょ?
char *stringA;
char stringB[256];
stringA は、ポインタ型変数が生成されて、
stirngB は、256バイとの領域が生成される。
&stringA は、そのポインタ型変数を示すアドレスを返す、
&stringB は、256バイとの領域の先頭アドレスを返す。
なんだからさ
04510xE104
NGNG>&stringB は、256バイトの領域の先頭アドレスを返す。
でも、普通256バイトの領域の先頭アドレスを返すのには&なしの
"stringB"を使いますよね?
それが混乱の原因だったわけで。
0452名無しさん@お腹いっぱい。
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c_faq.html
の
http://www.catnet.ne.jp/kouno/c_faq/c6.html#0
0453名無しさん@お腹いっぱい。
NGNGCTime time( 2000, 11, 27, 0, 0, 0 );
と設定し、time.GetYear()などで年月日を取得すると
1864年10月20日という値が取得されてしまうのですがなぜなのでしょうか?
エミュレータ上ではうまく取得できます。
0454453
NGNG0455CEしらんけど
NGNGCOleDateTime を 使えば?
0456>451
NGNG>"stringB"を使いますよね?
フツー使わないんだよ。
そんなの使うのはポインタちゃんと理解してない厨房だけだ。
型の違いを理解しろ。
0457名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0458名無しさん@お腹いっぱい。
NGNG&a を a の別名としてみるなら BCC が真っ当だな
0459名無しさん@お腹いっぱい。
NGNGどうなんだ?実際のところ。定数で9が返ると混乱すると思うのだが。
0460名無しさん@お腹いっぱい。
NGNGCからPascalに移ろうとした者は配列の厳格さを嫌悪する
Cなら、”そんなもんいい加減でいいんだよ”でスーと流すのがスタイルでは?
0461名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0462名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0463名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0464名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0465名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0466名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0467名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0468名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0469名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
答えろグラァ!
0470名無しさん@お腹いっぱい。
NGNGint main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
#include<stdio.h>
int main(void){
char a[] = "abcdefgh";
printf("sizeof(a) = %d\n",sizeof(a));
printf("sizeof(&a) = %d\n",sizeof(&a));
return 0;
}
/*--------------------------------------*/
このコードをコンパイルして実行すると、
Borland C++ Compilerでは
sizeof(a) = 9
sizeof(&a) = 9
なのに、LSI-C(16bit)では
sizeof(a) = 9
sizeof(&a) = 2
になっちゃう。
&aをBCCでは「配列」、LSI-Cでは「先頭要素のポインタ」って考えているのか?
ちなみに、BCCは「ANSI標準サポート」でLSI-Cは「ANSI準拠」らしい。
本来ならどっちが正しいの?
0471名無しさん@お腹いっぱい。
NGNGAは共有フォルダを持っていて、Bから見ることが出来ます。
で、聞きたいことというのは、BからAの共有フォルダ内にある
プログラムかなんかをキックすることで、BからリモートでAをリブート
したいのですが、こんなことってできますか?
0472471
NGNG0473>471
NGNG(ってゆーかそれを許しちゃうOSはヤバイと思う)
リモートコントロールできるソフトを相手に常駐させれば
出来なくもないとだけいっておきましょう。
0474名無しさん@お腹いっぱい。
NGNG0475名無しさん@お腹いっぱい。
NGNG0476名無しさん@お腹いっぱい。
NGNG0477>
NGNG一定時間ごとにとあるファイルが共有フォルダBにあれば
それを削除して「リブートする」ようなプログラムを
Bで走らせておく。
~~
リブートはさすがにさせたことはないが‥
リモートが使えない環境で、あいてになにかさせたいときに
よく使う手だ。
0478>
NGNGs/Bで/Aで/
かっこわる‥
0479471
NGNG0480名無しさん@お腹いっぱい。
NGNG0481名無しさんi486
NGNGいやね、調度こないだ知人にHTTPでEXEファイル拾わせようとしたら
うちで実行されて焦った事あったから。
0482481
NGNG「拾い終わったら電源落としといて」とか言えて便利そうだ。 仕込んどこ。
0483名無しさん@お腹いっぱい。
NGNG0484名無しさん@お腹いっぱい。
NGNGってこれじゃ青画面がでるだけか
0485名無しさん@お腹いっぱい。
NGNGint型の値でsortしたいのですが、どうしたらよいでしょうか。たとえば、
list<Block> blockList;
struct Block{
char name[80];
int num1;
int num2;
};
だとして、num1, num2はそのデータの、listの中での順番を表しますが、それぞれ
違うルールで順番付けられてます。これをnum1,num2それぞれでsortしたいのですが
どうしても自分の頭ではできません。ちょっと例を見せていただけませんか。
よろしくおねがいします。
0486>485
NGNGtypedef Block *PBlock;
とPBlock型を定義して pointer上でsortするのしか思い付かない・・
0487Visual名無しさん
NGNGsort(greater<T> pr);
を呼ぶんじゃ駄目?
0488赤ちゃん
NGNG/** 実行結果 ****************************************
*
* c : 300 : 100
* b : 200 : 200
* a : 100 : 300
*
* a : 100 : 300
* b : 200 : 200
* c : 300 : 100
*
****************************************************/
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
typedef struct{ // C++ で構造体…
char name[80];
int num1;
int num2;
}Block;
// 比較関数オブジェクト
class CompBlock
{
int type; // 実際はきちんとコンストラクタを書いて初期化してね
public:
void setType(const int t){ type = t; }
bool operator()(const Block &lhs, const Block &rhs)
{
if(type == 1){ // ま、switch の方がいいでしょうね。enum で type 作って。
return lhs.num1 < rhs.num1;
}
else{ // まあ、ここら辺はご自由に
return lhs.num2 < rhs.num2;
}
}
};
int main()
{
list<Block> lst;
list<Block>::iterator it;
CompBlock comp;
Block a = {"a", 100, 300};
Block b = {"b", 200, 200};
Block c = {"c", 300, 100};
lst.push_back(a);
lst.push_back(b);
lst.push_back(c);
comp.setType(2); // num2 を昇順にソート
lst.sort(comp);
for(it = lst.begin(); it != lst.end(); it++)
cout << (*it).name << " : " << (*it).num1 << " : " << (*it).num2 << endl;
cout << endl;
comp.setType(1); // num1 を昇順にソート
lst.sort(comp);
for(it = lst.begin(); it != lst.end(); it++)
cout << (*it).name << " : " << (*it).num1 << " : " << (*it).num2 << endl;
return 0;
}
0489初心者
NGNGx *xx = new x;
x->func();
はできるのですが、
x *xx = new x[10]
for(int i=0; i<10; i++)
{
x[i]->func();
}
というように書こうとするとできません。
こういうことはできないのでしょうか。
自分はポインタがよくわかっていないようで、
どなたがお教えください。
0490Visual名無しさん
NGNGx->func();
もホントにできるのか?
xx->func();
じゃなくて?
0491初心者
NGNGxx->func_()
でした。
申し訳ありません。
0492Visual名無しさん
NGNGxx[i].func();
だろう。
0493LSI-名無しさん86
NGNG0494初心者
NGNG#include<vector>
using namespace std;
vector<x*> xx;
for (int i=0;i<10;i++){
xx.push_back( new x );
}
for (int i=0;i<10;i++){
xx[i]->func();
}
このような形のプログラムはコンパイルを通ると思う
のですが、なんか上のとよく似ているような気がして、
(気がするというのが自分の能力のなさですが)
こういう違いがよくわかりません。
>492さん
その通りだと思いますが、なぜそうなるのでしょう(;´Д`)
>493さん
xへのポインタ…でしょうか?(;´Д`)
0495Visual名無しさん
NGNGって書いたって事は、「x型」のオブジェクトを10個作って、
その先頭のアドレスで xx を初期化ってこと。
xx[i] なら、xx の i 番目のオブジェクト(型は x )を意味する。
vector<x*> xx;
なら、今度は xx は、「xへのポインタ型」のオブジェクトを何個も持っていることになる。
そのとき、xx[i] と書けばそれは、xxのi番目のオブジェクト(型は xへのポインタ)を意味する。
説明下手でスマソ。
0496Visual名無しさん
NGNG0497名無しさん@お腹いっぱい。
NGNG現在インストールされてるDirectXのバージョンは
どのように調べればよいのでしょうか?
0498名無しさん@お腹いっぱい。
NGNGプログラムからなら、COMのインタフェースにそういうの無かったかい?
0499名無しさん@お腹いっぱい。
NGNGmssdk\samples\Multimedia\DXMisc
0500初心者
NGNGなんか少しわかったような気がします。
もう少し考えてみます。ありがとうございました。
0501名無しさん@お腹いっぱい。
NGNG"template"ぢゃないの?
英和辞典で"templete"引いても乗ってないし。
0502名無しさん@お腹いっぱい。
NGNG0503名無しさん@お腹いっぱい。
NGNG今すぐ医者へ逝け。そして帰ってくるな。
0504名無しさん@お腹いっぱい
NGNG仕様書って、何処に行けばあるんですか?
MFCとかいろいろあるけど、どれにも汚染されてない奴が欲しい.
いやーなんでかってstatic_castはC++のキャストだと思ってたんだけど
上司に否定されて、(MFCのキャストじゃないの?とか言いやがった!)
悔しいから調べてるんだけど、わかんないんだよね.
0505504
NGNG0506名無しさん@お腹いっぱい。
NGNG0507504
NGNG0508名無しさん@お腹いっぱい。
NGNGこれを消すようなオプションみたいなのってないですか?
0509>508
NGNG別のファイルが出来ていませんか? それをマウス右ボタンで・・・・
0511>504
NGNGhttp://www.google.com/search?q=static_cast+%83L%83%83%83X%83g&num=10&meta=hl%3Dja%26lr%3D&safe=off
ほんとに調べたのか?
0512名無しさん@お腹いっぱい。
NGNG4ポイントを順に得るにはどう処理したら宜しいのでしょうか。
かなり悩みましたがどうも上手くまとまりません・・・
単純に4ポイント得ると|><|の様に成る可能性があるんですよね。
0513512
NGNG0514( ´∀`)さん
NGNG本気で悩んでるのにわかったらあたりまえのようなこと。
0515501
NGNG鬱だ氏のう。マジで。
0516>501
NGNGよかったね匿名掲示板で
0517504
NGNGうがぁ。
さるですまん。サルなりに頑張ったつもりだったんだけど
だめだめだったようだ。
鬱だ氏のう。
あ、いや、たすかったっす。さんくす。
0518501>516
NGNGプログラム板の皆様、今後ともお見知りおきを。
0519名無しさん@お腹いっぱい。
NGNG0520名無しさん@お腹いっぱい。
NGNG何かお勧めの本がありましたら教えてください。
ちなみに自分の知識はHTMLをかじった程度です。
0521名無しさん@お腹いっぱい。
NGNGそういうことは参考図書スレで訊け。
というか、CGI板にいけ。
http://tako.2ch.net/cgi/index2.html
0522名無しさん@お腹いっぱい。
NGNG2ちゃんねらーらしい親切なんだけど感じ悪い答えですが
そーゆー答えを待ってました。
どーもありがとう
逝って来ます
0523名無しさん@お腹いっぱい。
NGNGhttp://tako.2ch.net/perl/index2.html
こっちじゃねーか?
0524521
NGNGとりあえず、自分を晒し上げ。
0525名無しさん@お腹いっぱい。
NGNGstrcpy( abc, "123456789012" );
printf( "%10.2f", atof(abc)/100 );
「1234567890.12」 って出したいのに
なんだかわかんない数列になるのはなんでー?
0526525
NGNG0527名無しさん@お腹いっぱい。
NGNG0528名無しさん@お腹いっぱい。
NGNGHeapCreateを使うのは、どこがどう違うのでしょうか。GetProcessHeapは一プロセス
で一度しか呼んじゃいけないという理解は正しいでしょうか。
0529名無しさん@お腹いっぱい。
NGNGHeapCreateは確保したチェインをHeapDestroyで一括破棄したいときとかに便利だね。
0530名無しさん@お腹いっぱい。
NGNGないのでしょうか。140Mダウンロードするのはちょっとキツ過ぎですので。
まだ早いのかな・・・。
0531名無しさん@お腹いっぱい。
NGNG次号のCマガとかについて来そうですね
自分、普通のネット環境ですが頑張って落としましたよ
ヘルプだけなら10Mくらいなんでそれ見て楽しむべし
バージョンが上がるごとにSDKが太っていくのは
何とかならんものですかね・・・
0532530
NGNG情報ありがとうございます!なにせ7の時は、ぜんぶ落とすまで一ヶ月
ほどかかったもので・・・助かりました。全く大きくなりすぎですよね。
ヘルプだけは楽しんでます。「ええっ、Direct3Dの項目が無いよ」とか
今回大幅に変わってますよね。今から触るのが楽しみです。
0533うむ
NGNG1太陽年は、365.2422日である。
これは何日何時間何分何秒に当たるかを計算し、
次の式で出力せよ。
出力データ : xxx△NICHI△xx△JIKAN△xx△FUN△xx.x△BYO
(xは数字、△はスペースを表しています)
▲プログラムの仕方がわかりません。教えて下さい。
0534名無しさん@お腹いっぱい。
NGNG言語の種類くらいかけよ
日本語でいいのか?
0535名無しさん@お腹いっぱい。
NGNGごめんなさい。C言語でお願いします。
0536名無しさん@お腹いっぱい。
NGNGとりあえず手で計算して答えを求めてからに
したら?
いきなり組んで結果見てもあってるかどうか
わからないと思うし・・・
0537うむ
NGNG365.2422 NICHI 365 NICHI
0.2422*24=5.8128 5 JIKAN
0.8128*60=48.768 48 FUN
0.768*60=46.08 46.1 BYO
答えはこれであってると思いますが・・。
0538名無しさん@お腹いっぱい。
NGNGint main()
{
int i;
double d=365.2422 ;
i=d;d-=i;printf("%d日\n",i);
d*=24;i=d;d-=i;printf("%d時\n",i);
d*=60;i=d;d-=i;printf("%d分\n",i);
d*=60;i=d;d-=i;printf("%d秒\n",i);
return 0;
}
0539うむ
NGNGわからないところが解けたのですっきりしました。(´Д`*)
0540X
NGNG0541名無しさん@お腹いっぱい。
NGNGそんな質問をするようでは、稼げるようになるまでに、
何年かかるか知れたもんじゃありません。
プログラムより、コンビニでバイトした方が良いです。
0542名無しさん@お腹いっぱい。
NGNGプログラムでお金を稼ぐのはあきらめましょう。
0543名無しさん@お腹いっぱい。
NGNGプログラマーには、あらゆるスキルが必要です。
数学:会議で「素数ってなに?」って言わないように
国語:2ちゃんねるを参考に
理科:CPUの中で電子が飛び回ってる図が想像できるように
英語:コメントは英語が一番。馬鹿なコメントがばれません
家庭科:徹夜が多いので、料理・裁縫は出来ないといけません
工作:自作から配線まで
体育:いわずもがな体力勝負
アルコール:酒も飲めなきゃ仕事は取れない。めざせ人間ポンプ
話術:客を煙に巻く。必殺技「仕様です」
度胸:土下座して取った仕事を、平気で納期破れるように
etc...
0544新米ギコ@国内某所
NGNG¶( ゚Д゚) <チョッ、チョット寂シンダナ
ゝ|U |┐
(,|/ |┘
U U
0545名無しさん@お腹いっぱい。
NGNG構造体の初期化ってどうしてます?
KOUZOUTAI a;
memset(&a,0,sizeof(a));
ですよね、普通。これを、
KOUZOUTAI a = {NULL};
とかやってるやつがいるんですがどう思います?
0546名無しさん@お腹いっぱい。
NGNG多分、否定的な意見が欲しいのだろうが
その場合はKOUZOUTAIの定義も書きましょう。
こういう初期化のしかたもあります、
typedef struct {
int a;
char b*:
double c;
} hoge_t;
#define HOGE_INIT { 0, NULL, 0.0 }
hoge_t hoge = HOGE_INIT;
0547名無しさん@お腹いっぱい。
NGNGERROR_CLASS_DOES_NOT_EXIST(1411)が返ってきます。
WinCE2.1上ではうまくいきます。
CE2.0では何かしなければならないことがあるのでしょうか?
(初期化、Createはしております)
0548名無しさん@お腹いっぱい。
NGNGコンストラクタで初期化する。
0549>548
NGNGmemset(&a,0,sizeof(a));
って事ですか?
0550名無しさん@お腹いっぱい。
NGNGstatic KOUZOUTAI a;
0551>545
NGNG∧△、 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ゚Д゚)< 見た目じゃなく、アセンブラの展開で比較せよ
|U U \_________
| |
)/
ν
0552名無しさん@お腹いっぱい。
NGNG0fillしてもd=0.fになる保証はない。とかいってるコンパイラは逝ってよし。
0554名無しさん@お腹いっぱい。
NGNG使ったらいけない理由は未だに不明
0555552>553
NGNGこのケースに関しては、保守性を最優先。
今のところ問題ないし、問題になるケースも思いつかない。
なんかあるかな?
0556虹
NGNG通常0.0とか書いた場合doubleになる(よね?)ので、例えば
float f=1.0f;
f*=2.0;
とか書いた場合、f*=2.0のとこがdoubleで演算してからfloat
に変換して代入するから無駄が多いってことなのかな。
この場合はf*=2.0fと書けばfloat演算になるけど、いちいちf
書いてられないし、間違えやすいし。
>>555
あるかどうかわからないけど、ないとは言い切れないから。
0557名無しさん@お腹いっぱい。
NGNGchar str[n];
でnの大きさはどれくらいまで許されるのだろうと思いました。
試しに20メガではうまくコンパイルできました。
ところが実行したところ、常駐させているメモリ監視ソフトによると
使用されたメモリはごくわずかでした。
なんででしょう?
0558名無しさん@LV5
NGNGちなみに宣言してる場所はどこ?
0559555>556
NGNG理想論ばかりも言ってられないんだよ。
それにfloat d;memset(&d,0,sizeof(d));ASSERT(d==0.f);
って最初に一回だけやれば仮定の正しさを確認できるしね。
BOOL CreateProcess(
LPCTSTR lpApplicationName,
LPTSTR lpCommandLine,
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL bInheritHandles,
DWORD dwCreationFlags,
LPVOID lpEnvironment,
LPCTSTR lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo, // さらに構造体...
LPPROCESS_INFORMATION lpProcessInformation
);
typedef struct _STARTUPINFO { // si
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFO, *LPSTARTUPINFO;
0560>557
NGNGメモリを確保しても実メモリが実際に用意される訳ではありません
実際に読み書き(書きが当然先ね)が開始されてから実メモリが
割当てられます。
あるいは実際に読み書きしても、いつまでも実メモリが割当てられる
とは限りません
0561名無しさん@お腹いっぱい。
NGNG際のシステムの動作確認をする為に最大値を取る直前の値に設定したいのですが
どうすればいいでしょうか?システムはWin98です。
0562名無しさん@お腹いっぱい。
NGNG0563名無しさん@お腹いっぱい。
NGNGマシンを50台用意して49日待てば、毎日1回テストできるね。
0564名無しさん@お腹いっぱい。
NGNG#define GetTickCount MyGetTickCountしてリビルドかける。
0565名無しさん@お腹いっぱい。
NGNGここのO(ND) アルゴリズムで見つけたSEDの経路を保存して
差分を作れるようにするにはどうすればいいのでしょうか?
0566名無しさん@お腹いっぱい。
NGNGC++で、仮想関数を持つクラスのコンストラクタで、
memset(this,0,sizeof(*this));
とした場合、仮想関数テーブルへのポインタとかは、
保障されるのでしょうか?
0567>566
NGNGまあこれは実装の問題だから言語仕様にはなかったはずだけど。
いずれにしてもメンバ変数はちゃんとコンストラクタで初期化しよう。
0568名無しさん@お腹いっぱい。
NGNGうーん、
わたしの作るクラスのメンバ変数は、ほとんど0に初期化するので、
いちいち、m_var=0;していくのはめんどくさく思っています。
可読性もmemsetに比べていまいちです。
memsetに変わる、なにか良い方法は無いでしょうか。
vtblのポインタをmemsetする前に退避するような方法だと
処理系依存になってしまいますね…
Cの構造体もほとんどmemsetなので、C++に修正する場合不安で仕方がありません。
0569名無しさん@お腹いっぱい。
NGNGおかしいのじゃない?
0570名無しさん@お腹いっぱい。
NGNGとりあえず、クラスの構造や規模は突っ込まないでください(^^;
569さんは、初期化するのが面倒な時ってありませんか?
0571名無しさん@お腹いっぱい。
NGNG559さんの言うようにASSERTを入れておいて、
移植の時に未来の自分や他人が書き直すのを期待したいです…
0572567>568
NGNG構造体を定義する人と初期化するコードを書く人が別々で、
なおかつ定義が黙って勝手に変更される可能性があるということ。
これをユーザが毎回監視してソース全体を書き換えるのはかなり危険。
それに対してクラスの場合は定義する人も初期化コードを書く人も同じなので、
定義を変更した時点で初期化コードを(しかも一箇所)書き換えることが可能。
よって面倒なだけで、危険はない。我慢しよう。
C -> C++のトランスポートだったらこんなのもありかも。
/* C */
typdef struct{
int n;
} foo;
void use_foo(foo *f);
// C++
class bar{
foo n;
bar() { memset(&n, 0, sizeof(n)); }
void use() { use_foo(&n); }
}
0573名無しさん@お腹いっぱい。
NGNG集約関係にするということですか。
0574名無しさん@お腹いっぱい。
NGNGってどうやって知ればいいでしょう。
0575名無しさん@お腹いっぱい。
NGNGldd hoge
とかじゃだめ?
hogeにリンクされてるライブラリがわかります。
0576574
NGNGそのバージョンが知りたいのです。
0577575
NGNGわからない。
バージョンってどのことを言ってるの?
FreeBSD 4.1.1-Rだと
ldd hoge
で
libc.so.4 => /usr/lib/libc.so.4
とか出るけどこれはFreeBSDのlibcバージョン4なのかなぁ?
0578名無しさん@お腹いっぱい。
NGNGそうしてみます。 <(_ _)> サンクス
0579名無しさん@お腹いっぱい。
NGNGどうも、std::string 型周辺の動作がおかしいです
えっと、環境はVC++6.0、NTsp6です
class __declspec(dllexport) TEST{
TEST(std::string str){
}
}
(VC++のプロジェクトで勝手にできる部分は省略)
これを、dll にしました
このとき作成されたlibを参照したアプリでクラスのインスタンス
を生成すると、コンストラクタの最後
basic_stringのメモリー開放部分で吹っ飛びます(渡した内容はちゃんとしてます)
これは、どこのバグなんでしょうか、dllでstring型は開放できないんですか?
dllでないときは当然ちゃんと動きますんで、コンパイラかdllの問題だと思いたいんですが・・・
0580名無しさん@+*/%-
NGNGにするのがまずい。
ランタイム環境およびインターフェースの整合性を
考慮してCOMといった規格に乗っけましょう。
もう一つ、「なぜDLLでなければいけないのか」という
部分を検討してください。
0581名無しさん@お腹いっぱい。
NGNGCマガ11月号のCOMの解説に同じ問題が書いてある。
COM使いな。
0582名無しさん@お腹いっぱい。
NGNGDLL側とクライアントのメモリマネージャが異なるからね。
(std::string が内部でどんなことをしているのか調べれば判るはず。)
どうしても必要なら、DLL側か、クライアント側かのどちらかで、
allocate関係のインタフェース全て用意する必要がある筈。
〜Create()生成
〜Resize()変更
〜Destroy()破棄
とか。
(同じコンパイルオプションならうまく行く場合もあるのかな?)
#COM…完全にWindows依存になるね。
0583会社休んだ
NGNG今回仕事で、IEを外部操作するAPを作成する事になりました。
開発環境はVC++6.0です。API,MFC等なんでも利用可。
とりあえず、ダイアログベースで作成します。
ダイアログに作成したボタンを押せば起動済みのブラウザの「進む」「戻る」ができればよいです。
全くわからず固まってます(;´Д`)
VC++は最近始めたばかりなので、どこから手をつけてよいか分りません。
どうか、さわりの部分だけでも教えていただけないでしょうか?
0584名無しさん@お腹いっぱい。
NGNGパスワードがかかっている共有フォルダにアクセスしたいの
ですが、どうしたらいいんでしょうか。
ネットワークコンピュータから一度パスワードを指定して
フォルダにアクセスしたあとで、
自分のプログラムからCreateFileでファイルを開くことは
できたんですけど…。それでは、困るんです。
0585名無しさん@お腹いっぱい。
NGNG@echo off
net use \\%1\ipc$ %3 /user:%2
とかいうバッチをたたいてやるというのはどうよ。
引数に
コンピュータ名 ユーザ名 パスワード
を渡してやればよい。
0586584
NGNGレスありがとうございます。
早速試してみたところうまくいきました。
エラーのチェックとかはコマンドの最後に > a.txt とつけて、その中に
コマンドは正常に完了しました。
とか出てることを見る…、これが正しいやり方なのかわからないですけど、
そうしてみます。
0587585
NGNGそれよりは下の関数を使うほうが良い。
エラーチェックは手抜きなので仕事ならもっとちゃんとやること。
(終了ステータスコードは、0が正常ね)
Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Const INFINITE = &HFFFF ' Infinite timeout
Public Const PROCESS_ALL_ACCESS = &H1F0FFF
Public Function doConnect(strHost As String, strUsr As String, strPwd As String) As Long
Dim lPid As Long
Dim hProc As Long
Dim lRes As Long
Dim lExitCode As Long
lPid = Shell("net use \\" & strHost & "\IPC$ " & strPwd & " /user:" & strUsr)
hProc = OpenProcess(PROCESS_ALL_ACCESS, 0, lPid)
lRes = WaitForSingleObject(hProc, INFINITE)
lRes = GetExitCodeProcess(hProc, lExitCode)
doConnect = lExitCode
End Function
0588584
NGNG2度に渡るレスありがとうございます。
そのソース見させて頂いて私の考えがかなりあほだと、
わかりました。
会社のソースにこんなん残していっていいのか、と
正直思ってましたんで。
そのソース使わせて頂きます。
0589名無しさん@お腹いっぱい。
NGNG(perlのjcode.pl/Jcode.pm, Delphiのjconvert.pasみたいな)
ってあるんでしょうか?
nkf.dllは外部ライブラリなので、組み込みで使えるやつを。
http://norihisa.washitake.com/freeware/kanji/
とか見つけたんですが、シビアな分野なので実績のあるやつがいいな、と。
0590名無しさん@お腹いっぱい。
NGNG0591名無しさん@お腹いっぱい。
NGNG{
char *c;
for (c=string;*c;c++) {
if (strchr(delim,*c)) *c=new_delim;
}
return string;
}
このfor文のところがよくわかりません。
どこからどこまで、をforで指定しているのですか?
超初心者な質問ですが、教えてください。
0592名無しさん@お腹いっぱい。
NGNGstruct _Gnut_List {
void * data;
Gnut_List * next;
};
更にこれもよくわからんです。
こんな形のtypedef初めてみました。
0593優しい名無しさん
NGNGこの for ループは string の頭から行って最初に 0 でない値に当たるまで回ります。
>>592
定石です。
単に
struct Gnut_List {
void * data;
Gnut_List * next;
};
とやると Gnut_List の未定義エラーがでるので
ダミーの struct _Gnut_List をかまします。
0594名無しさん@お腹いっぱい。
NGNG>この for ループは string の頭から行って最初に 0 でない値に当たるまで回ります。
なにを言ってるかわかりまへん。
正解は「string の頭から \0 の1個前」まで。
0595591
NGNGgnut_strdelimit(query,"*?._<>|[]{}()_=+-/!@#$%^&",' ');
に対しては、どのようにうごくのでしょうか?
string の頭から \0 の1個前までまわるということは、
なんとか理解できたのですが、
if (strchr(delim,*c)) *c=new_delim;
のところが、こんどは、よく分からなくなってきました。
お願いします!
0596名無しさん@お腹いっぱい。
NGNGつーか、個人的にifやforが1行にしかかからなくても
{}をつけるという主張をしたいんだが・・・どうよ、こういうケース
char *gnut_strdelimit(char *string, char *delim, char new_delim)
{
char *c;
for (c=string;*c;c++) {
if (strchr(delim,*c)){
*c=new_delim;
}
}
return string;
}
ほら、ちょっとだけ見やすくなったところで再チャレンジ
あと、592、typedef位調べろよ、基本中の基本なんだから!!
たぶん、どんなへぼHELPにものってるし、そのまま検索しても
良いページに当たるぞ
0597名無しさん@お腹いっぱい。
NGNGstringの文字列中にdelim中に含まれる文字が存在するとnew_delimに置換する
例えばquery = "abc*def?efg<hij>"の文字列だとすると
gnut_strdelimit呼び出し後のqueryは"abc def efg hij "
となる
0598名無しさん@お腹いっぱい。
NGNG半角スペースでインデント打ってもだめなのね・・・
次からは、全角で入れよう
0599名無しさん@お腹いっぱい。
NGNGすげー細かいが個人的には
> if (strchr(delim,*c)){
if (strchr(delim,*c) == NULL){
かなぁ
0600598
NGNG前読んだ本に、
「プログラマーは比較的IQが高いので、それを見せようとするソースを書く傾向にあるが、・・・・」
て、ところがあったけど、これもその例じゃないかな?
初心者に対しての敷居を高くしてる原因に思える。
0601名無しさん@お腹いっぱい。
NGNGこれと意味は同じ
char *gnut_strdelimit(char *string, char *delim, char new_delim)
{
char *c;
for (c=string;c=strpbrk(c,delim);c++) {
*c = new_delim;
}
return string;
}
0602596=598=600
NGNG==NULL
と書かなかったのは、それを書いたら
混乱するかな?と思った、コメントすりゃ良かったな
0603名無しさん@お腹いっぱい。
NGNG>gnut_strdelimit(query,"*?._<>|[]{}()_=+-/!@#$%^&",' ');
>に対しては、どのようにうごくのでしょうか?
queryに "*?._<>|[]{}()_=+-/!@#$%^&" の中の文字が
含まれていれば、それを ' ' で置き換える。
たとえば、 "a=b+c" が "a b c" になる。
0604591
NGNGほんとに初心者なんで、さっぱり分からなかったのですが
どうにか、やっと理解できそうです。
今、学校でソースコードの解読を突然させられてて、結構
楽しいのですが、こうも意味がわからないと、先に進めなくて
困ってたところでした。
軌道にのるまで、また、いろいろ質問させてください!
0605名無しさん@お腹いっぱい。
NGNG眠たいんか?
そのコードは NULL ポインタをさがしてるんじゃなくて、NUL文字('\0')を
探してるんじゃ。ポインタとchar型を比較してどうする。
そんなんでよくコンパイラ通せるな。
書くんだったら
if (strchr(delim,*c) == '\0){
と書け。
>>600
偉そうなこと書いてコードも読めんのか。
0606名無しさん@お腹いっぱい。
NGNGおまえも寝てるだろ
if (strchr(delim,*c) == '\0'){
が正解。
0607名無しさん@お腹いっぱい。
NGNG彼はstrchrを使ったことの無いネタ心者です。
また、厨房なのでstrchrの戻り値を調べずにアホなことを言ってます。
> 偉そうなこと書いてコードも読めんのか。
オマエガナー
0608デフォルトの名無さん
NGNG0609591
NGNG0610名無しさん@お腹いっぱい。
NGNG逝ってよし
0611名無しさん@お腹いっぱい。
NGNG全般的に寝てるだろ。
if (strchr(delim, *c) != NULL)
が正解
==NULLじゃ見つからなかったときにif節が実行される堕炉。
'\0'と比較してるやつは論外。
0612名無しさん@お腹いっぱい。
NGNGcharをstrchrに渡すのは、符号拡張が引き起こす微妙で腐った問題が
あるので、あまり好ましいとは言えない。
最低でも0xffでマスクするか、unsigned charにキャストしてから
渡すべきであろう。
NULLと明示的に比較するかどうかについてだが、俺はまずしないな。
そういう意味では元のソースの書き方の方が俺の好みに合っている。
ただし第2引数はconst char *にするし、第3引数はintにするだろう。
0613599=607
NGNG>if (strchr(delim,*c) == NULL){
ifの条件を逆にしている俺、逝ってよし
>> 偉そうなこと書いてコードも読めんのか。
>オマエガナー
オレモナー
# ネタ心者は俺か...611サンキュ
0616591
NGNG/* void gnut_list_foreach(Gnut_List * list, void (*GFunc)(void *, void *),
* void *userdata)
*
* for each element in list, call GFunc */
int gnut_list_foreach(Gnut_List *list, int (*GFunc)(void *,void *),
void *userdata)
{
Gnut_List *gltmp;
g_debug(5,"list=%p\n",list);
for (gltmp=list; gltmp; gltmp=gltmp->next) {
if ((*GFunc)(gltmp->data,userdata)==-1)
return -1;
}
g_debug(5,"returning\n");
return 0;
}
int (*GFunc)(void *,void *)の意味がまずよくわかりません。
なので、
for (gltmp=list; gltmp; gltmp=gltmp->next) {
if ((*GFunc)(gltmp->data,userdata)==-1)
return -1;
}
もわからないです。
int (*GFunc)(void *,void *)はこんな形のは初めて見ました。
0617591
NGNG変数が定義されるのですが、refというのは、
一般的に何の略になるのでしょうか?
0618591
NGNGchar *path; /* the pretty path to display */
char *upath; /* the pretty path tolower'd for searching */
char *fpath; /* the full path for accessing the file */
int size;
int ref;
time_t mtime;
};
にもrefというコトバが出てきます。
どうかお願いします。(あつかましくてすみません、
全然分からないのです)
0619名無しさん@お腹いっぱい。
NGNG0620名無しさん@お腹いっぱい。
NGNGまず、GFuncは関数ポインタ型ですね。
void (*fp)();
と宣言すると、fpという名前の関数ポインタ型変数が
出来て、void func()という関数があったとしたら
fp = func;
の様にある関数を()抜きで代入すると、fpへfuncへの
ポインタが入ります。で
(*fp)();
としてやると、func()が呼び出せます。
refは一般的にreferenceの略で、参照を意味します。
int型なので、インデックスのような気がしますが。
どちらにしろ、変数名なんて当てにしないで、コード
を読んで、変数の意味を探る必要があるでしょう。
0621デフォルトの名無さん
NGNGここでは referent 指示対象 かと
0622名無しさん@お腹いっぱい。
NGNGつか、それって仕事のコードじゃないのか?
こんな所にぺたぺた貼っていいのか?(笑)
0623591
NGNG仕事のコードじゃなくて卒論で使うソフト
の解析をしています。
失礼しました。
0624591
NGNGでも、解析が難しくて大変です。
0625むぎ茶
NGNG0626名無しさん@お腹いっぱい。
NGNGリストの検索の定石:リストの終端まで繰り返し
>for (gltmp=list; gltmp; gltmp=gltmp->next) {
またここではコールバックを行なってgltmp->data,userdataを処理している
>if ((*GFunc)(gltmp->data,userdata)==-1)
コールバック関数が-1を返した場合、処理を終了する
>return -1;
>}
# gnut_lib.c, Gnut_List.cときたから
# つぎはgnut_net.cかGnut_Queue.cかな?
0627591
NGNGありがとうございます。
gnutを解析しようとしてますが、かなり分かりません。
どこが、キーポイントでしょうか?
(かなりあいまいな質問ですが)
また、お助けください。
0628名無しさん@お腹いっぱい。
NGNGprintfで使うような書式文字列と、
カンマ区切りの文字列(カンマの個数は可変)を、
別々に(動的に)用意して、
printf文と同じように出力したいんですけど、
うまい方法ありますか?
たとえば"2ちゃんねるは%sで%sな掲示板"って文字列と
"ナウ,ヤング"という文字列から
"2ちゃんねるはナウでヤングな掲示板"と言う文字列を作る方法。
vprintf系が使えるのかと思ったら、使えなさそうだし・・・
よろしくお願いします。
#例文のセンスのなさには目をつぶって下され。
0629名無しさん@お腹いっぱい。
NGNGだれも正解書いてない様だけど…
参照(リファレンス)カウンタです。
共有アルゴリズムの基本なので、詳しくはアルゴリズムの本でも見てください。
>>627
個人のライブラリの事まで知るか。
gnut…GNU関係?
0630名無しさん@お腹いっぱい。
NGNG0631名無しさん@お腹いっぱい。
NGNG> gnut…GNU関係?
gnutellaもどき
http://www.umr.edu/~jjp/
0632628
NGNG書式文字列側は、これも切り分けるのでしょうか?
0633591
NGNGgnutをよまれたことがあるのでしょうか?
今cli_interfaceのメイン関数をかなり雑に読みきったんですが、
こういうソースファイルでは、srcに入っていても使わないc fileとか
も存在するのでしょうか?
一回もみていないようなファイルもあるのですが、
やっぱり間違えてるのかな?
やっぱり初心者にはなにかときついです。
0634591
NGNG0635591
NGNG0636名無しさん@お腹いっぱい。
NGNG0637名無しさん@お腹いっぱい。
NGNGあのねぇ〜
ずっと読んでいたけど、線形リスト・文法・関数ポインタと質問して
ついにはgnutを読んだことある人いますかって?
Cの概念全部ここで聞き出す気か?
K&Rでも読んで、ちっとは自分で勉強しなさいっ!
0638591
NGNG0639591
NGNG0640名無しさん@お腹いっぱい。
NGNG> gnutをよまれたことがあるのでしょうか?
まぁ、ざっと流し読みしたことはあるけど...
それを聞いてどうするつもり?
> こういうソースファイルでは、srcに入っていても使わないc fileとか
> も存在するのでしょうか?
lintかましてみれば、定義したけど使ってない関数とか検出できるよ
あと、解析するときのアドバイスだけど
全ソース1万ステップ超の場合、頭から追っていくだけでは多分理解できない
まず、モジュール構成図とか大まかな地図を作って、
入り組んでいる所はソースを追う様にしていった方が効率がいい
環境があるなら、動かしてみてそれをデバッガで
追っていったりする手もある
楽して人に教えてもらうより、
苦しんで自分で学んだ方がずっとためになる。
頑張れ
0641名無しさん@お腹いっぱい。
NGNGCをやる環境ならどこにでもある。
絶対誰かが持ってる。
ふと、自分のやつの見ると”第2版221刷”になってた
みなさんのは大何刷?
0642639
NGNG0643639
NGNGさんくす もうちょい自力で頑張ります。
でも、また教えてください。
0644639
NGNG0645名無しさん@お腹いっぱい。
NGNG1版の最終刷って何番なんだろう?
0646名無しさん@お腹いっぱい。
NGNGいろいろ調べてもよくわからないです。
0647名無しさん@お腹いっぱい。
NGNG0648名無しさん@お腹いっぱい。
NGNGあるプロセスがmallocしてメモリを確保したとします。
その後に fork した場合、子プロセス側でもメモリを解放すべきなのでしょうか。
さらに、その子プロセスが exec した場合はヒープはどうなってしまうのでしょうか。
0649名無しさん@お腹いっぱい。
NGNG親のデータ領域は子供にもそっくりコピーされる。そこで子が更にexec()
した場合は、データ領域はすべて破棄されて新しいプロセスがロードされる。
exec()したプログラムが元々居た奴追い払って場所ぶんどるイメージ。
ちなみにOSによってはvfork()ってのがあって、fork()した時のデータ領域
コピーを省略するシステムコールもあったりする。これはfork()してすぐ
exec()するならコピーするだけ無駄だ、という事で作られたんだけど、最近
はVMが賢くなってきてるのでfork()でも無駄がなかったりする。
まぁふつうは素直にfork()使えばいいだろう。
0650648
NGNGということですね?感謝です。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG0653奥さん、名無しです
NGNGウイルス?
0654>652
NGNG0655名無しさん@お腹いっぱい。
NGNGWindows 2000ならAPI一発なんですが…。
0656デフォルトの名無しさん
NGNGたまたま見つけたから。
TransparentWindow : a one line hack to get a window transparent
http://www.chez.com/fstark/cocoa/examples/index.html
0657名無しさん@お腹いっぱい。
NGNGありがとうございます…って公開しとらんのかい>Apple
0658新米ギコ@寄生虫
NGNG¶( ゚Д゚) <あけましておめでとうなんだな。今年もよろしくなんだな
ゝ|U |┐
(.|/ |┘
U U
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNGさっそくですが質問があります。
あるプログラム内で他のコマンド
(プログラム)を実行させその結果を始めのプログラム
内で使用したいのですが、どんな方法があるのでしょうか?
現在exec関数を調べていたのですが、どうも、exec関数では、
最初のプログラムに結果を戻すことができなさそうなのですが・・・・
どうかお願いします。
0661デフォルトの名無しさん
NGNG0662660
NGNG0663デフォルトの名無しさん
NGNGpopen
0664名無しさん@お腹いっぱい。
NGNG0665664
NGNGじゃ、pipe() して dup() して fork() して exec() で read(), write()
0666デフォルトの名無しさん
NGNGCreateProcess()で開けば色々出来るだろ
0667デフォルトの名無しさん
NGNGexecの対象はいじれないのか?
標準出力拾いたいだけなのか?
0668660
NGNGスレを見ることが出来ませんでした。
>>667
そうです!execの対象(検索エンジンなまず)をいじろうとすると、
初心者の自分には太刀打ち出来ない状況なのです。
いじらないで、できる方法があれば、教えてください!
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGってどうやって作るんでしょうか?mid→mds変換ツール
があったら教えてください。
0672デフォルトの名無しさん
NGNG0673660
NGNGをみてfork exec pipe read closeを使って標準出力を取り込むことは
分かったのですが、コンパイルを行うと
forkにより作られた子プロセスを終了させるのに使う
sigignore( SIGCHLD ); というところでいっつも
> cc a.c
/tmp/ccDo6697.o: In function `main':
/tmp/ccDo6697.o(.text+0x1e): undefined reference to `sigignore'
というエラーがでます。どういうことなのでしょうか?
行き詰まってます。
0674660
NGNGsigignore( SIGCLD );
/*子プロセスは勝手に死亡するようにする
(forkを使うときのおまじない。そのうち解説します)*/
と書いてあるのですが、これはこのまま使えるのですか?
0675デフォルトの名無しさん
NGNG0676660
NGNG0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGひとりごと
waitpid()で殺したほうが確実かと・・・
もうひとこと
ファイルインターフェースにすると楽
使ったこと無いからはっきり覚えてないけど
仮想ファイル作る方法があったはず
0679うぉろ
NGNGIIRの伝達関数が出てくる、IIRの設計ツール知りませんか?
FIRならいっぱいあるんだけど…
0680デフォルトの名無しさん
NGNG文字データを
SJIS→EUC
EUC→SJIS
に変換したいんですけど
何らかの形で実行ファイル内に
コード表実装しなければならないんでしょうか?
0681デフォルトの名無しさん
NGNGそこまでしなくてもできたような気がする。
ただ、詳しいやり方は知らん。
0682デフォルトの名無しさん
NGNGpopen()使った方がはるかに楽ちんだよ。
man popenはしてみたの?
標準出力を取り込みたいだけなら、ここまでする理由は
ほとんど無いといってよい。
どうしてもこの路線で行きたいのなら、
さしあたりsigignoreをsignal(SIGCHLD, SIG_IGN);
もしくはsigaction()で代用すると良いだろう。
0683デフォルトの名無しさん
NGNG*SJIS->EUC
if 上位バイトが0xe0以上
上位バイト - 0x40
if 下位バイトが0x40から0x9e
((上位バイト - 0x70) * 2 - 1) | 0x80
if 下位バイトが0x7e以下
下位バイト - 0x1f
else
下位バイト - 0x20
else
((上位バイト - 0x70) * 2) | 0x80
下位バイト - 0x7e
*EUC->SJIS
if 上位バイトが奇数
(上位バイト & 0x7f + 1) / 2 + 0x70
if 下位バイトが0x5f以下
(下位バイト & 0x7f) + 0x1f
else
(下位バイト & 0x7f) + 0x20
else
(上位バイト & 0x7f) / 2 + 0x70
(下位バイト & 0x7f) + 0x7e
if 以上の計算結果後の上位バイトが0xa0以上
上位バイト + 0x40
大昔に、なんか必要で作ったプログラムから見つけてきた。
なんでこんな式になったか、もう忘れた。(笑)
EUCって、JISコードにハイビットが立っただけだったと
記憶してるが、違ったかな?
0685D使いβ
NGNGMultiByteToWideCharとWideCharToMultiByte
0686D使いβ
NGNG「応用C言語」に載ってた気がしたけど忘れた・・・
0687デフォルトの名無しさん
NGNG0688名無しさん@お腹いっぱい。
NGNG0689デフォルトの名無しさん
NGNGchar型では256文字までですよね?
全然足りないのですが、
こういう場合はどうやるのがいいのでしょうか??
0690デフォルトの名無しさん
NGNGchar型では256文字しか格納できません。
全然足りなくて途中で切れてしまうのですが、
こういう場合はどのようにしたらいいのでしょうか??
教えてください。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGその結論までに至る考えをお聞かせ下さい。
0693>689
NGNGこれでエラーでますか?
0694デフォルトの名無しさん
NGNG256文字までじゃなかったんだ。
本見たらそう書いてあったような・・・・
洗脳されてたのかな?
今1000文字までためしてみましたが、成功しました。
あれ??かなり疑問ですが、よかった。
ありがとうございます。
つまらない質問で時間をとらせました。すみません。
0695デフォルトの名無しさん
NGNG配列の最大が64kって制限あったな
0696七資産
NGNG0697デフォルトの名無しさん
NGNG0698デフォルトの名無しさん
NGNG大抵のこと
GUI環境のアプリで出来ないことって
想像できないが?
0699デフォルトの名無しさん
NGNG自分が参考にしてるプログラムにでていたのですが、
本やネットで調べても分かりません。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG呼んだ方が内容を良く表してる様な気がするんだけど
皆さんどう思います?
0703デフォルトの名無しさん
NGNGそもそもCには文字列という型は(でふぉるとでは)ないと思うぞ。
0704デフォルトの名無しさん
NGNGAnsiC辞典の「翻訳限界」の項目みたら
メモリオブジェクトの大きさの限界が32767(8ダッタカモ)バイト以上なら
ANSI-C互換と名乗っていいそうな。
(つかそんなことがかいてあった記憶がある。いま手元にないもんで)
だから多分ANSI-Cでも最悪char配列の最大が32Kっつのもありうるかと。
(勿論そんな制限無いほうが望ましいとANSIの規格にも明記されてるとか)
0705デフォルトの名無しさん
NGNGクラステンプレートにのみ定義されるメンバ関数は
どう書いたら良いでしょうか?
Class template partial specialized あたりはわかるんですが、
クラスパラメータでメンバ関数の定義にだけ影響を
及ぼす書き方がよくわからないです。
使用コンパイラは gcc 2.95, VC++ 6.0 manual は
1996 Nov. ISO draft です。
0706デフォルトの名無しさん
NGNGそーゆーひねくれたことをせずに,素直に
template <class T>
class General
{
};
class Special : public General<int>
{
public:
void specialMember();
};
ってんじゃ解決できない?なんか template の使い方として違うよ
うな気がするのだが…。違うかな?
0707705
NGNGうんと・・それでいくと、下のような感じになっちゃって特定の型に
のみ定義とゆうか、新しいクラスに定義かなぁと・・
できればひとつのテンプレートに定義できれば・・クラスが増えなくて
いいのですけれど・・。(^^;
template <class T> class General {};
class Special : public General<int> {
public:
void SpecialMember(void) { ::printf("member call.\n"); };
};
int main( void) {
Special a;
General<int> b;
a.SpecialMember(); // ok
b.SpecialMember(); // error; no matching function
return EXIT_SUCCESS;
}
↓こうやってみたのですが
"cannot declare member funcion within General<T>"になっちゃいますね。(^^;
template <class T> class General {
public:
void General<int>::IntSpecialized(void);
};
0708ヒロユキ@ギコナビ
NGNGHTTPで2chにあるdatファイルの差分をダウンロードする部分を
作っていたのですが、どうも2chのサーバってRangeすると全部送って
くるんだよね。
HTTP/1.1ってRange必須じゃなかったっけ?
それとも、サーバの設定で禁止することができるのですか?
あんましサーバに詳しくないもんで。
だれかわかる人がいたら教えてください。
0709デフォルトの名無しさん
NGNGどうして一つのクラスにこだわるの?メンバ関数の面子が違うんな
ら別のクラスにした方がいいと思うんだけど。
>708
Emacs の navi2ch は,Range を使って取ってきてるよ(実際今使っ
てる)。UNIX 板の
Navigator for 2ch
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=976032951
っちゅうスレで,そこら辺話してるよ(Range がうまく働かないっ
て話も出てる)。そのまま参考になるかはわからないけど。
0710705
NGNGたとえばベクトルを例にしますね。次元と型から、ベクトルのテンプレートクラスが
できるとします。ベクトルの内積は一般に、ベクトルの次元数によらず定義できますけど
外積は3次元でしか正しい解が得られないようです。
3次元でしか扱えない操作ですが、同じ次元のベクトルどおしは
内積ができる。3次元のみ別クラスで考えてもいいですけど
ベクトルとして扱えるテンプレートが折角あるのに、、という感じです。
0711デフォルトの名無しさん
NGNGこんな感じで friend 関数にするとか(この場合は friend にする
必要もないが)。一応以下は gcc -Wall -pedantic -ansi で通った
やつ。
template <class T, int n>
class MathVector
{
friend T inner_product(MathVector<T, n> a, MathVector<T, n> b){
T result = 0;
for (int i = 0; i < n; i++) {
result += a.element[i]*b.element[i];
}
return result;
}
friend MathVector<T, 3> outer_product(MathVector<T, 3> a, MathVector<T, 3> b) {
MathVector<T, 3> result;
result.element[0] = a.element[1]*b.element[2]-a.element[2]*b.element[1];
result.element[1] = a.element[2]*b.element[0]-a.element[0]*b.element[2];
result.element[2] = a.element[1]*b.element[0]-a.element[0]*b.element[1];
return result;
}
private:
T element[n];
};
0712デフォルトの名無しさん
NGNG#include <vector>
class a
{
public:
double da;
double db;
};
int main()
{
using namespace std;
vector<a> va;
vector<char> vc;
a aa;
aa.da=3.3;
aa.db=3.4;
va.push_back(aa);
a* pa= new a;
pa->da=3.5;
pa->db=3.6;
va.push_back(*pa);
delete pa;
for(int i=0;i<va.size();i++)cout<<va[i].da<< " " <<va[i].db<<endl;
}
これでうまくいくんですが、
これはクラスaのデフォルトのコピーコンストラクタが呼ばれて
vectorにはコピーが入るって考えていいのでしょうか?
0713712
NGNGすんません。
0714デフォルトの名無しさん
NGNGまあそーいうことですな。
より詳しくは,class a で
public:
a() {}
private:
a(const a&);
としてコンパイルして,エラーの出た個所を読んでみるとかすれば
いいかも。
0715712
NGNG0716710
NGNGなるほど、特定の型を引数にとる形で特定するんですね。
同じような形で書いてみて、コンパイルできました。^^
でも、friend 構造がよくわかりませんでした。
関数テンプレートを使った
template<class T> MathVector<T,3> outer_product(MathVector<T,3> a, MathVector<T,3> b);
とは違うのでしょうか?
マニュアル、もうすこし詳しく調べてみます。(^^;
0717708
NGNG教えていただいたスレを見て、RangeしたらOKでした。
Rangeの方法を間違っていたようです。
どうもありがとうです。
0718706=711
NGNGいるから friend にしているわけ。
MathVector に
public:
T& operator[](int i) {return element[i];}
みたいな public メンバ関数を作れば,private にアクセスする必
要は無くなるから,friend にしなくてもよくなる。普通の
template 関数でいいわけだ。
ただ,一般にメンバ関数の代わりとして使う場合には,private メ
ンバにアクセス出来ないと困るだろうから,今回のような実装を例
として出したというわけ。
0719710
NGNGなるほど理解できました〜
あと friend は宣言と定義も一緒にできる・・と
知らない厨房でした、ごめんなさい(^^;
御蔭で問題をうまく解決できそうです
わかり易く教えていただいて、ありがとうございます(^^)
0720名無しさん@お腹いっぱい。
NGNGどういうロジックを組めば良いでしょうか?
なお、ファイル名は固定としたいと思います。
0721デフォルトの名無しさん
NGNG2. 書き込むサイズを取得
3. 現在のファイルサイズ + 書き込むサイズ <= 最大バイト
の場合、書き込む
で、3.以外の条件の場合どうするの?
0722720
NGNG最新の分だけでいいのです。古いやつはどっかに消しちゃう。
tempファイルに書いておいて、それをコピーという形になっちゃうんですかね。
ちなみに、ファイルのサイズを取得ってどうやるんでしょう?
環境はVC++&MFCです。
あと、書き込むサイズの取得はCString::GetLength()でいいんですよね。
0723デフォルトの名無しさん
NGNGプログラムをコンパイルして実行すると
ある程度時間がたってから、Illegal instruction(core dumped)
というメッセージがでてプログラムが強制終了します。
しゅうりょうする場所をしらべてみると、
ある関数を呼び出した、途端に、終了しているようなのですが
どういう原因が考えられるのでしょうか?
もう3日くらい行き詰まっています。助けてください!
0725ボログラマー
NGNG言語何使ってるかくらい書いてもヨサゲ。
どっかでメモリはみ出してんじゃないすか?
printf()デバッグで追うべし。
0726721
NGNG> Cならファイルのサイズはstatでとってこれる
間違いです。 statは処理系依存です。
Cならfseek()を呼んでファイルの最後まで進んで、
ftell()を使うのが最も移植性の高い方法でしょう。
0728723
NGNGプログラムはcです。
どういう状況がメモリはみでていると
判断するポイントとなるのでしょうか?
かなり初心者なので、もう少し教えていただきたいです。
0729デフォルトの名無しさん
NGNGCFile::GetLength()ちゅうのもある。
>>721
なるべくportableなコードを書いた方がいいのは確かだが、「間違い」と
言うのはちと言い過ぎだろう。
0730デフォルトの名無しさん
NGNG1 テストプログラムでその関数だけを呼び出してみて、再現性をチェック。
2 特定の引数で再現するか、core dump するまえ、関数を呼ぶまえに
引数の内容を表示させてみる。
3 illegal instruction ・・?ということは互換性のない命令が
書かれているかもしれないので 関数のソースを読んで
特定のプロセッサ向け命令が書かれているか調べてみる。
ってのはいかがでしょうか。
0731730とは別人だが
NGNGスタック内容つぶしてしまってて、戻った途端に…
てのも有り得る。
まあ、
>ある関数を呼び出した、途端に、終了しているようなのですが
てのが本当に確かなら、これは外れかな。
0732723
NGNGまだよく分かりませんが参考にさせていただきます。
後、デバッグしていたらある関数に入るや、その関数内で宣言されている
配列がとんでもない数字になっていました。そしてバッドアドレスなどと
いわれたのですが、こういう現象は何が原因なのでしょうか?
プログラム自体にエラーはないように思うのですが。
0733723
NGNG672375230, 672620932, 2, 2, 672549346, -1079267796, 134607838, 2, 672548994,
672620932, -1079268024, 3, 672375230, 672620932, 135020544, 135002948,
672344847, 1346927
という意味不明なものがいっぱいはいっているのが原因かなとおもいあたりました。
どうしたらいいのでしょうか?
かなりまいってます。
0734730
NGNGsprintf とかミスるとやばいコードになりますねー
スタックのバグはすぐに現れてこないし
コンパイラによってスタックの管理は杜撰だったりしますし・・
0735デフォルトの名無しさん
NGNG0736730
NGNG関数内で宣言されている配列が動的確保(mallocやnew)でないなら
たぶん、スタック領域に入っているでしょう。(ふつうは)
んでもって、その配列の内容が意図したものとあきらかにおかしいなら
スタック領域を何かがつぶしてます。
sprintf とか、確保した領域を越えて内容を書きこんだりする
ものもありますし、もしスタックに入っているリターンアドレス
(戻り先)がつぶされれば、とんでもないところにリターンして
意味不明な命令を読んで illegal instruction になることも
ありえるかも。
0737723
NGNGなんかまちがえてるのかな?打つだし脳。
0738デフォルトの名無しさん
NGNGファイルを開けるようにするにはどうしたら良いですか?(メモ帳みたいにしたい)
ダイアログ上ならWM_DROPFILESが取得できるのですが
エディットボックス上のWM_DROPFILESの取得の仕方がわかりません
SPY++で見るとメッセージは発生してるようなのですが・・・
ギコ猫様ご教授願います
ちなみにMFCです
0739723
NGNGc[300][100]とか指定してるのですが。
0740デフォルトの名無しさん
NGNGcの型は?
doubleとか、でかい構造体などのサイズの大きい型で、かつ
しょぼいコンパイラだとエラーが出るかもしれない
0741723
NGNG0742デフォルトの名無しさん
NGNGでないよ、エラー。VC++ と gcc でやってみたけど。
#include <stdio.h>
#define X (300)
#define Y (200)
int main(int argc, char* argv[])
{
char c[X][Y];
int n[X][Y];
int x, y;
for(x = 0; x < X; x++){
for(y = 0; y < Y; y++){
printf("[%d][%d] c = %d, n = %d\n", x, y, c[x][y], n[x][y]);
}
}
return 0;
}
0743デフォルトの名無しさん
NGNG>>723よ、とりあえず問題のソースぐらいは提示しようぜ。
0744名無しさんi586
NGNGスタックつみすぎでぐた〜り
0745デフォルトの名無しさん
NGNG静的確保と動的確保の違いは?
メモリー確保時のエラーは基本的に
取る領域が物理的に確保できない時に起こる
でも、300×200位では問題ない気がするので
740が正解かもしれない・・・
0746723
NGNGなんとかillegal instructionはまぬがれました。
デバッグしながら、みてみたら、たまにあやしげな動き
をするのですが・・・今のところバグはないように思われます。
そのあやしげな動きといのは、デバッグで、最初に問題の関数に
入ったときに変数を一つづつ、displayしてみると
733の例のような配列になっているものと、そうでないもの(初期化されて
0)に分かれ、コードをいじったら、今度は問題の変数は直ったが
さっき初期化されていた変数が733のようになっていたりといった具合です。
0747723
NGNG困るのですが・・・・
後ソースは入り組んでいてややこしい(あるプログラムを
改造したので、ものすごくややこしい)のと長いのとで
アップは見合わせています。
ありがとうございました。メモリー確保についてもっと調べて
出なおしてきます。
0748追加
NGNGちゃんと値が入るようになりました。
メモリ確保というのは、関数に入ったときに宣言されている変数
に対しておこなわれるのですね?
確保したときにメモリに入れられる値は、たとえその時点で
まだその関数内でその変数に値を入れる式が現れていなくても
(つまりデバッガで関数に入った直後でも)
最初に変数に値を入れるときの式からとってくるのですよね?
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG関数内で(staticキーワードなしに)普通に宣言した変数は
初期値は <強調> 不定 </強調> だ。
Cはその設計思想で安全性より効率をえらんだ。
よって確保されたメモリ(auto変数)をわざわざ0で初期化なんかしない。
だからソレよりまえに実行したときのゴミの値が残っている。
0751738
NGNG0752>738
NGNGCEdit派生のクラスを作り、それをエディトコントロールに割り当てる。
CEdit派生クラスにWM_DROPFILESのメッセージハンドルを追加する。
0753738
NGNGさっそく試してみます
0754さとこ
NGNGダイアログに貼り付けたスタティックコントロールを親にして
ボタンなどのコントロールを貼り付けるには、どうすればいいの?
誰かおしえてください。
0755738
NGNG752さんありがとうございました!!!!
0756名無しさん@お腹いっぱい
NGNGどこか、説明してあるHP知りたいです。
0757デフォルトの名無しさん
NGNG1っこのプログラムコードを複数のCPUが寄ってたかって
動かしてるイメージ(実際マルチCPUだとそうなる)
変数とかも共有なのでうまく排他とかしないと
どっかの掲示板みたくすぐデータぐちゃぐちゃになる。
0758756
NGNGん?って事は一つのプログラムなのにCPUを2コ同時に使用する
可能性があるんですかね?
0759デフォルトの名無しさん
NGNGつか、そのためのものじゃん。
目的はおもに2つ。
1,同時に実行したい処理が2つ以上ある場合。
ブラウザで複数同時に画像ロードしてるのはよく見るでしょ?
2,マルチCPUを有効に生かす。
せっかくCPUいっぱいついててもマルチスレッドでないと
1アプリで1CPUしか割り当てられないからもったいない。
#午後のコーダにマルチCPUオプション付いたの最近知ったオレ
0760デフォルトの名無しさん
NGNGプログラムってのは,部屋の中で誰かが作業している感じだと思い
ねえ。この「部屋」ってのがプロセス空間で,「誰かさん」がスレッ
ドね。部屋には,誰かさんが作業するためのいろんな場所(メモリ)
やらなにやらの資源が割りふられていて,蛇口をひねると OS の恩
恵も受けられる。昔はこの部屋に,人は一人しかいなかったわけ。
で,複数の作業を同時に行なう方法としてマルチタスクとマルチス
レッドってのがあるけど,マルチタスクは,こういう部屋を沢山作
るってこと。部屋の大きさによるけど,システムに負担がかかりそ
うだってことは感覚的にわかるやね。
マルチスレッドってのは,部屋は増やさずに,部屋の中にいる人を
増やすってこと。場合によっては部屋は大きくしなくちゃいけない
かもしれないけど,マルチタスクよりは負担が少なそうだね。
ただ,部屋を共有するわけだから,誰かが書きこんでる途中のノー
トに,他の人(スレッド)が割り込んで書きこんじゃって,誰かさん
の作業が滅茶滅茶になっちゃったり,といった,1プロセス1スレッ
ド時代には考えられなかった事が起こる可能性があるから,ちょっ
と大変ではあるね。
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0763新米ギコ@国内某所
NGNG¶( ゚Д゚) < 同じ時間に別々のことを実行すること >スレッド
ゝ|U |┐プロセスと違うのはメモリ共有しているとか
(.|/ |┘同じ時間っつっても見掛け上だけどな
U U
∧∧
¶( ゚Д゚) < >>761 argument(議論、主張)すると日本人は大抵引くからな
ゝ|U |┐
(.|/ |┘
U U
0764名無しさんi586
NGNG0765デフォルトの名無しさん
NGNGMFC6.0でNT4.0です。
CBitmapにデータを入れてselect_objectしてbitbltで表示ってのは
分かったのですが、CBitmapにどうやってbitmapを入れてやれば良いのかが
わかりません。
よろしこしこしこ
0766デフォルトの名無しさん
NGNG>CBitmapにどうやってbitmapを入れてやれば良いのかが わかりません。
ぼくはCreateDIBPatternBrushでCBitmapに書きこんでしまいました(馬鹿
0767デフォルトの名無しさん
NGNG俺も昔そう読んでたぞ。鬱だ死のう。
っていうか、「ひきすう」って湯桶読みだし。
0768けろ
NGNGhttp://msdn.microsoft.com/library/periodic/period97/samples/MFCPart2.exe
これでも参考にすればいい。というか、CDibクラスをそのまま使えばいい。
0769デフォルトの名無しさん
NGNG接続がされるまでこの関数から制御が帰ってこないですよね。
そのときにアプリケーションを正常終了させるいい方法はないで
しょうか?
スレッドを作ってそこでConnectNamedPipe()をすればいいのかな
とも思いますが、そのスレッドも強制終了させるようになって
しまいその後のOSの動作に支障をきたすのではないかと心配です。
0770756
NGNGおお、非常に分かりやすいっす。
細かい事は抜きにして、感覚的には理解できた気がする。
ありがと〜。
0771デフォルトの名無しさん
NGNGOverlapped I/Oを使わない場合の話だな。
定石はしらんが別の監視スレッドは必要だろう。その上で、volatileな
フラグを設定するなどした上で、監視スレッド側からクライアントとして
接続して起こせばよい(あまり美しくはないけれども)。
0772デフォルトの名無しさん
NGNG本当にプログラミングを理解しちゃった猫は居ますか?
0773デフォルトの名無しさん
NGNG( ´д`) < ギコ猫は分かったみたいだが
( ∪ ∪ | おれはだめだったもなぁ
(___)___) \__________
0774竹内 南
NGNGどうればよいのでしょうか?
教えてほしいです。
VC6でMFCは使ってません。
お願いします。
0775デフォルトの名無しさん
NGNGおきてしまいます!!!
cプログラムですが
ただdouble型を
double rkyori;
と定義した後
rkyori = 0;
kyori=strdup(network);
rkyori = atof(kyori);
といった感じ(間はかなりはしょっています。
rkyoriにはちゃんと値が入ります。)で普通にプログラムを
組んで、デバッグを行ったら
No symbol "rkyori" in current context
とまるで、rkyoriが存在していないかのような扱いを受けるのです!!!
これはやはりrkyoriが宣言されていないのかと思いなんど見返しても
double rkyori;と関数の最初で定義されてるのです。
こういうことは何故起こるのかどうか教えてください。
プログラムも卒論も前に進みません。
0776デフォルトの名無しさん
NGNGそんなわけないよなあ。どうしたらいいの?
0778デフォルトの名無しさん
NGNG同じ関数の頭で
char *t1,*t2,*kyori;
という形で宣言しております。
お願いします。
0779デフォルトの名無しさん
NGNGOSとコンパイラを教えてちょ。
コンパイル・リンクは成功してるの?
>No symbol "rkyori" in current context
と怒られるのは、いつ? デバッガで実行したときなの?
0780デフォルトの名無しさん
NGNG0781名無しさんi486
NGNGどうすればいいっすか?
そんな関数ありますか?
0782デフォルトの名無しさん
NGNGOSはfreeBSDです。
コンパイラはよく分からないです。
(コンパイラ名の調べ方がわかりません)
コンパイル・リンクは成功していると思います。
>No symbol "rkyori" in current context
と怒られるのは、いつ? デバッガで実行したときなの?
はい。そのとおりです。
普通に実行してるときはたいして問題がありません。
(結果をduplicateするだけの変数なので、実行に
は影響がないのです)
しかし、さっき試してみたら、本来プログラムに重大な影響を
もつ
char *t1
という変数にもデバッガでは同じようなことがおこりました。
プログラムは動いているのでデバッガが悪いのでしょうか?
0783デフォルトの名無しさん
NGNGint型変数をchar型に格納する方法を教えてください。
0785デフォルトの名無しさん
NGNG有難う御座いました。
0786デフォルトの名無しさん
NGNG間違ってないか。
2行目は、
sprintf(s, "%d", i);
sprintf(s, "%x", i);
じゃねーの。
0787デフォルトの名無しさん
NGNG結局どっちなのでしょうか?
0788デフォルトの名無しさん
NGNG0789デフォルトの名無しさん
NGNG>>786 が正しいが、自分で(s)printfのヘルプを見れ。
1を"01"のようにしたい(0埋めしたい)とか8進/16進で表示したい
とか色々要求がある筈なので、要求に応じてフォーマット文字列を適切に
指定する必要が有るのだ。
0埋めやスペース埋めが不要で10進表示で良いのなら、フォーマット
文字列は単に"%d"でよい。
0790デフォルトの名無しさん
NGNGあれって標準じゃないのかな?
0791新米ギコ@そろそろ新スレか?
NGNG¶( ゚Д゚) < >>780 原因は知らんが書込みゃ復活する!
ゝ|し |┐ つーか、900超えてんだから初心者スレpatr2立てろっつーの
(_|./ |┘
U U
∧∧
¶( ゚Д゚) < >>781 VB殺ったこと無いからよう知らんが、
ゝ|し |┐ 一文字づつ調べりゃすむ話じゃないのか?
(_|./ |┘
U U
∧∧
¶( ゚Д゚) < >>782 >rkyori = 0;
ゝ|し |┐ >kyori=strdup(network);
(_|./ |┘ >rkyori = atof(kyori);
U U で、rkyoriに0入れて一回も使わんうちにatof使ってるから
"代入したのに値を一回も使ってねぇだろボケェ"っつてる
だけじゃないのか?
つーか、コンパイラがwarning出さなかったか?
0792新米ギコ@風呂上がり
NGNG¶( ゚Д゚) < >>790 その通り! itoaを使えば3進数とかも逝ける
ゝ|し |┐ ただ、789が書いているが書式指定した10進数とかの
(_|./ |┘ 文字列を作る場合はsprintfの方が楽だったりする
U U
0793デフォルトの名無しさん
NGNGどういうものが、ありますか?
または、紹介されてるサイトでもいいんで教えてください。
0794デフォルトの名無しさん
NGNGどういうものがありますか?
または、紹介されてるサイトでもいいんで教えてください。
0795デフォルトの名無しさん
NGNG辞書圧縮
その後エントロピー圧縮
おしまい
0796デフォルトの名無しさん
NGNGここなんかどう?
http://www.ingnet.or.jp/~kojif/mu/comp/index.htm
せっかくだからここも紹介しとこう。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=967778156
0797795
NGNG0798794
NGNG紹介してもらったサイトにいってみます。
>797
じっくり考えてみます。
0799782
NGNGこれって初期化してるつもりなんですが、初期化は
必要ないのですか?
配列とかでも初期化でいつも全部に0入れたりしてるんですけど。
(おそらく勘違いだったのかな、自分の)
0800デフォルトの名無しさん
NGNG変数が使われる前に何らかの値を代入することが保証されているなら
必ずしも初期化をする必要はない。
0801名無しさんおっぱい。
NGNG0802774です、
NGNGについて誰か教えてくださいな、
お願いします。
0803デフォルトの名無しさん
NGNGMSDN読め
0804746
NGNGですが、やっぱりだめです。
配列を大きくすると問題が起きてしまいます。
こういうのは何でなのでしょうか?鬱です。
0805masaka sage
NGNGまさかとは思うけどコンパイラに
-g オプションつけてるよな?
0806ブチ
NGNGパレットにRGBを割り当てる形式か何かのようですが、どういったものか教えてください。
WinGLのビットマップを操作したかったんですがそこでひっかかってます。
0807虹
NGNGRGBそれぞれのビット数でしょう、多分。
0808みのもんだ
NGNG正解!
0809ブチ
NGNGすいませんまだ理解しきれてないのでもう少し教えてもらえるとありがたいです。
0810デフォルトの名無しさん
NGNG2バイトに
rrrrrggggggbbbbbとか
rrrrrgggggbbbbbxとか
で格納するってことさ
0811デフォルトの名無しさん
NGNG最近の情報処理2種(午後:C言語問題)に出てた気がする
そっち詳しくのってたはず
まあ、もう本が手に入らないかもな?
簡単に言うと
RGB(255,0,0)も(RGB(252,0,0)も赤く見えるだろ?
ってこと
0812デフォルトの名無しさん
NGNGここに書きこむべきなのかどうかアレですが・・・。
ただのサーブレットやbeen+JSPの場合はシェルのCLAPPATHにカスタムクラスパス
を含めずにstartWeblogic.shでカスタムパスを指定してやればリロードできることは
わかっているのだが、それをやるとEJBデプロイで、
「そんなクラス知らんぜ」と言われてしまう。
そこらへんのノウハウ持った人いません?
0813foo
NGNGみなさんのこだわりを語ってください
0814>813
NGNGhoge・・・馬鹿っぽい
追伸
だめだめ・・・馬鹿っぽい
くれくれ・・・同上
〜だね・・・同上
おしえてちょ・・・「ちょ」が馬鹿
0815ブチ
NGNG255(ffH) -> 252(f8h) に省略するという感じだね。
概念はわかりました。
パレットに割り当てるのはまだちょっとわかってませんがこれは自分で色々試してみます。
わざわざ答えてくれた方々に感謝。
>>813
読んだ本では foo を使っていたのでそれかな。
0816デフォルトの名無しさん
NGNG{
return ((rgb & 0xf80000) >> 9) | ((rgb & 0xf800) >> 6) | ((rgb & 0xf8) >> 3);
}
0817>813
NGNGhttp://www.selab.tutkie.tut.ac.jp/~yoshida/hoge.html
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGどこから手をつけていいのかわからなくて困っています。
おすすめの本やURLがありましたら、どうか教えて下さい。
0820デフォルトの名無しさん
NGNGWindowsなら
「Win32マルチスレッドプログラミング」
ISBN4-7561-1404-0
5100円
っていう本が一番判りやすい。
(ちょっと情報が古い様だけど。)
いままで見てきたその他の本はここまで詳細に載っていなかった。
他にもお勧めが在ったら教えてくれ。
0821819
NGNGあ、その本見たことあります、結構厚めの本ですよね。
明日にでも本屋に行って探してきます。(^-^)
でも、難易度高そうですね。。準備用に
「金魚でもわかるマルチスレッド」なんて本がほしい...
0822デフォルトの名無しさん
NGNG読み物としては「Advanced Windows」の方がいいかも。
同期オブジェクトの種類とそれぞれの解説も出てるから「するってえと
こういう時はEventで十分なわけね」とかわかるようになるんで。
ただし「Win32マルチスレッドプログラミング」よりも更に分厚い(改版重ねて
今の奴は電話帳位ある)し、お値段も高め(確か\7,800位したと思う)。
あと、コード例はかなり古いので(元々VC++2.0の頃に初版が出た本だから)
概念的な所は「Advanced〜」を読んで、実際にコード書くときは「Win32
マルチスレッド〜」を参照するといいと思う。
0823デフォルトの名無しさん
NGNG('Javascript is ececuted')">という形式のJavascriptの実行を許してしまう」という記事があった
のですが、何が悪いのか理解できません。わかるかた教えてください。
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGやりたいことが明確ですぐに始めたいなら
猫でもわかるでいいしょ?
基本からしっかりやりたかったら820の通り
でも、知識レベル次第で嫌になることもある
0826初心者で申し訳ないです
NGNG@echo off
echo MBRを読みます
pause
echo a300 > .\getmbr.scr
echo mov ax, 201 >> .\getmbr.scr
echo mov bx, 100 >> .\getmbr.scr
echo mov cx, 1 >> .\getmbr.scr
echo mov dx, 80 >> .\getmbr.scr
echo int 13 >> .\getmbr.scr
echo int 3 >> .\getmbr.scr
echo. >> .\getmbr.scr
echo g=300 >> .\getmbr.scr
echo d 100 2ff >> .\getmbr.scr
echo q >> .\getmbr.scr
debug.exe < getmbr.scr > mbr.dmp
echo 結果をMBR.DMPに保存しました。
0827826
NGNG0828デフォルトの名無しさん
NGNG自分で判断できないなら使わない方がいい。
ここで誰かが「大丈夫ですよ〜」って言っても信用できるとは限らない。
0829デフォルトの名無しさん
NGNGよろしくお願いします。
0830デフォルトの名無しさん
NGNGそのアプリがシングルスレッドなら、片方のCPUしか使わないよ。
マルチスレッドにするか、同じアプリ2個立ち上げるとかすれば両方使って
くれるけど。
まぁ無闇やたらにスレッド分割しても意味が無い場合もあるけど、829の
ような場合は上記のようにして負荷を分散させてやりゃいいでしょ。
0831デフォルトの名無しさん
NGNG「マルチスレッド=入力インターフェース用のスレッド+内部で処理するスレッド」
って感じで1つのスレッド(インターフェースの方)はほとんど動いてない状態なんだけど。
マルチCPUを逝かせるプログラム書いたことある人〜。
どんなの書いたか教えて。
それと「他のタスクが動いてるからCPUは効率良く使われている。」とかいうツッコミはいりませ〜ん。
0832新米ギコ@国内某所
NGNG¶( ゚Д゚) =3 OS側でやってくれてるんだな、BeOSは。
ゝ| つ日~~ スレッドを最大限逝かしてるかは、、、
(,|/ )
U U
0833デフォルトの名無しさん
NGNGネットワーク対応の一種の画像ローダみたいなやつ
ブラウザみたくロード中のやつからリアルタイムで見えてくる
同時に何個ロードできるか設定可
つかこのばあいCPUを有効活用ってより
回線の有効活用だな、、、Regetとか、、、
0834826
NGNGどうもありがとうです。
実はそれ、自分でつくってみたのです。
MBRのDUMPツールと比較してみたところ同じ結果がでました。
0835デフォルトの名無しさん
NGNGMFCや、VCLなどのWin32APIクラスライブラリ群は必要なくなる
様になるんでしょうか?
0836けろ
NGNGそのへん、難しいね。.NETの浸透度によるよ。
現状Javaアプリが「重い」との理由で敬遠されてる面もあるんで、
それと同様に、なかなか浸透しないかもしれない・・。
特に市販アプリなどは、今までどおりに作りそう。
WinAPIを捨てるって事は当分無さそうだし。
企業向けに作る専用アプリなんかは.NETで作るのがいいように
思うんだけど。
.NETの枠内で作るんなら、MFCやWinAPIの知識は必要ありません。
0837デフォルトの名無しさん
NGNG排他制御とかスレッド分割とかゼンブBeOS(+コンパイラ?)が面倒見てくれるわけ?
0838デフォルトの名無しさん
NGNGそれはないない。そんな天国のような環境(ワラ
ちゅーかBeOSはスレッドが常時大量に走りまくりなので
(ウィンドウ1枚に1スレッドだっけ?)
マルチCPU時にうまいこと処理が振り分けられるらしい。
0839デフォルトの名無しさん
NGNGAPIの「RegCreateKeyEx」を使ったアプリケーションを開発しています。
しかし、WinNT系OSで「制限ユーザー」として設定されている
ユーザー名でログインすると、レジストリキーが変更されません。
これは、動きとして正しいことなのでしょうか?
それとも、私のプログラムがいけないのでしょうか?
0840デフォルトの名無しさん
NGNGそれはNT本来の仕様です。レジストリのキーにもセキュリティ属性があります。
regedit32.exe(古いレジストリエディタ)で見ると各キーのセキュリティが見れます。
0841デフォルトの名無しさん
NGNGNTはいちおう、セキュリティーをうりにしてるんだから・・・
0842デフォルトの名無しさん
NGNGありがとうございます。
iniファイルに変更して、すすめてみます。
0843デフォルトの名無しさん
NGNGmain.cppファイル
#include "mydebug.h"
#include "test1.h"
void main(void)
{
MyAssert(0,"main");
Test1();
}
test1.hファイル
extern void Test1();
test1.cppファイル
#include "mydebug.h"
void Test1()
{
MyAssert(0,"Test1");
}
mydebug.hファイル
extern void MyAssert(int a,char *s);
mydebug.cファイル
#include <stdio.h>
void MyAssert(int a,char *s)
{
if(!a)
printf("%sでエラーだ\n",s);
}
Visual C++でWin32 Console Applicationで作りました。
どのように変更すればよいのでしょう?
0844デフォルトの名無しさん
NGNGエラーメッセージも書いてくれ
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGmain.obj : error LNK2001: 外部シンボル ""void __cdecl MyAssert(int,char *)" (?MyAssert@@YAXHPAD@Z)" は未解決です
test1.obj : error LNK2001: 外部シンボル ""void __cdecl MyAssert(int,char *)" (?MyAssert@@YAXHPAD@Z)" は未解決です
Debug/test.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
>>845
初心者なのでよくわかりませぬ
0847デフォルトの名無しさん
NGNGmydebug.cファイルの名前をmydebug.cppに変えるか、
mydebug.hファイルの内容を
extern "C" {
extern void MyAssert(int a,char *s);
}
にしろ。CとC++が混在しててリンカが混乱している。
コンパイル時にエラーを発見できるので
test1.cppファイルに#include "test1.h"を追加
mydebug.cファイルに#include "mydebug.h"を追加
しといたほうがいい。
0848843
NGNG混在させる時は明確に宣言する必要があるんですね
0849新米ギコ@開店休業
NGNG¶( ゚Д゚) <新スレ移行!
ゝ|し |┐http://piza.2ch.net/test/read.cgi?bbs=tech&key=980521175
(_|./ |┘
U U
0850デフォルトの名無しさん
NGNG/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなーこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0851デフォルトの名無しさん
NGNGくだらない スレ いくつも立てて喜んでるんじゃねえよ アホが
削除依頼
0852デフォルトの名無しさん
NGNGさっさと死ね
0854デフォルトの名無しさん
NGNG0855"削除"人
NGNG了解しました
重複スレに該当します
よってどちらかを削除します
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG,一-、
/ ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
■■-っ < んなーこたーない
´∀`/ \__________
__/|Y/\.
Ё|__ | / |
| У.. |
0858デフォルトの名無しさん
NGNG0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGギコ猫 うぜえから さっさと一つにまとめろや
0861うし
NGNGフォーマットなんでしょうか?たとえば,次のようなとき。
00011456: 90 20
0001499d: 10 30
0862デフォルトの名無しさん
NGNGプログラムを作るプログラムはいつできるんですか。
ちょい先にできるようなら、早めに見切りつけたいんで。
0863>862
NGNG0864デフォルトの名無しさん
NGNGもうプログラマは必要ないですか?
違う道も真剣に考えてみます。
0865デフォルトの名無しさん
NGNG他の道考えてね。
0866デフォルトの名無しさん
NGNG( ゚Д゚) (゚Д゚ )
( ゚Д゚) (゚Д゚ )
( ゚Д゚) (゚Д゚ )
( ゚Д゚)(゚Д゚ )
(゚Д゚)(゚Д゚)
(゚Д゚|゚Д゚)
(゚Д゚Д゚)
(゚||゚)
(゚Д゚)
(゚Д゚)ゴルァ
(・∀・)ナンテネ
■ このスレッドは過去ログ倉庫に格納されています