【初心者歓迎】C/C++室 Ver.5【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGただしその場合、質問者は必ず、環境を書きましょう。
【初心者歓迎】C/C++室【環境依存OK】
http://pc2.2ch.net/tech/kako/1059/10590/1059041347.html
【初心者歓迎】C/C++室 Ver.2【環境依存OK】
http://pc2.2ch.net/tech/kako/1067/10671/1067189450.html
【初心者歓迎】C/C++室 Ver.3【環境依存OK】
http://pc2.2ch.net/test/read.cgi/tech/1069719929/
【初心者歓迎】C/C++室 Ver.4【環境依存OK】
http://pc2.2ch.net/test/read.cgi/tech/1073473867/
【ラウンジ】質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
関連スレは>>2-3
0002デフォルトの名無しさん
NGNGぼるじょあがC/C++の宿題を片づけますYO! 20代目
http://pc2.2ch.net/test/read.cgi/tech/1075217631/l50
C言語なら俺俺に聞け! Part 73
http://pc2.2ch.net/test/read.cgi/tech/1077095949/l50
C++相談室 part27
http://pc2.2ch.net/test/read.cgi/tech/1074454641/l50
★初心者にVisual C++を教えるスレ★ Part10
http://pc2.2ch.net/test/read.cgi/tech/1074933908/l50
C++Builder相談室 Part8
http://pc2.2ch.net/test/read.cgi/tech/1070222674/l50
GCCについて part3
http://pc2.2ch.net/test/read.cgi/tech/1072484422/l50
Turbo C++ 5.0 プログラミング
http://pc2.2ch.net/test/read.cgi/tech/1030878794/l50
0003デフォルトの名無しさん
NGNG【C++】template 統合スレ -- Part3
http://pc2.2ch.net/test/read.cgi/tech/1066493064/l50
プリプロセッサについて熱く語るスレ。
http://pc2.2ch.net/test/read.cgi/tech/1058203590/l50
超初心者にもわかるC言語の本ってないですか?
http://pc2.2ch.net/test/read.cgi/tech/1053091019/l50
タダで最強!フリーC/C++コンパイラ
http://pc2.2ch.net/test/read.cgi/tech/1035882599/l50
タダで使えるBorland C++ Part3
http://pc2.2ch.net/test/read.cgi/tech/1054390397/l50
Borland C++ BuilderX
http://pc2.2ch.net/test/read.cgi/tech/1065260556/l50
C統合・質問スレッド
http://pc2.2ch.net/test/read.cgi/tech/1068359871/l50
くだらない質問でもべっちょ偉そうに聞いていいスレ
http://pc2.2ch.net/test/read.cgi/tech/1069530956/l50
0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNGunistd.hが無いのでその関数が使えません。
どうにかしてC++でcrypt関数を使う事は出来ないでしょうか?
0006デフォルトの名無しさん
NGNG「C++で使いたい」じゃなくて「Windowsで使いたい」だろうが
C++で使いたいならLinuxでも入れとけ
00075
NGNG0008デフォルトの名無しさん
NGNG> 「C++で使いたい」じゃなくて「Windowsで使いたい」だろうが
それがわかるってことは>>5の書き方でも十分だろ。
0009デフォルトの名無しさん
NGNGCとC++って全然違うじゃん・・・
0010デフォルトの名無しさん
NGNG合ってるようでズレてるな、その見方。
0011デフォルトの名無しさん
NGNG正しくコマンドライン引数をメッセージとして送信するのですが
//OK:「INIファイルのリード」→「COPYDATASTRUCTを設定」
if ( ParamCount() > 0 ) {
AnsiString FilePath = ExtractFilePath(Application->ExeName) + "Sample.ini";
TMemIniFile *Ini = new TMemIniFile( FilePath );
int i = Ini->ReadInteger( "SECTION1" , "WindHand", 0 );
delete Ini;
COPYDATASTRUCT cds;
cds.dwData = 1;
cds.cbData = ParamStr(1).Length();
cds.lpData = (LPVOID)(ParamStr(1).c_str());//コマンドライン引数
SendMessage((HWND)i,WM_COPYDATA,(WPARAM)Application->Handle,(LPARAM)&cds);
}
001211
NGNG書き換わってしまいます。
//NG:「COPYDATASTRUCTを設定」→「INIファイルのリード」
if ( ParamCount() > 0 ) {
COPYDATASTRUCT cds;
cds.dwData = 1;
cds.cbData = ParamStr(1).Length();
cds.lpData = (LPVOID)(ParamStr(1).c_str());//コマンドライン引数
AnsiString FilePath = ExtractFilePath(Application->ExeName) + "Sample.ini";
TMemIniFile *Ini = new TMemIniFile( FilePath );
int i = Ini->ReadInteger( "SECTION1" , "WindHand", 0 );
delete Ini;
SendMessage((HWND)i,WM_COPYDATA,(WPARAM)Application->Handle,(LPARAM)&cds);
AnsiString n = AnsiString((char*)cds.lpData);
ShowMessage(n); →"c:\Documents a・・・"を表示
}
影響ないと思うんですが、なんででしょうか?
0013デフォルトの名無しさん
NGNG「AnsiString c_str 注意」とかで検索してみな
0014デフォルトの名無しさん
NGNGすぐ消えちゃうって事だな。なのにc_str()で使おうとしてる。
00165
NGNG0017デフォルトの名無しさん
NGNGどうやって確かめたの?
0018デフォルトの名無しさん
NGNG本人が壊れてないって言ってるんだから。
ParamStr関数置いてあるコード領域は壊れてないんだろう。
001911
NGNGで確認しまた。
>>18
>ParamStr関数置いてあるコード領域は壊れてないんだろう。
コード領域?
0020デフォルトの名無しさん
NGNGどなたかMFCのCArrayの使い方を教えていただけませんでしょうか。
「Collect」というサンプルを参考に、int型変数を要素として持つ配列を
作ろうとしているのですが、MFCで作られる全くのSDIスケルトンに、
CArray<int,int> m_iArg;
などとやってもコンパイルが通りません。
試しに、サンプルである「Collect」と同じ宣言で、
CArray<CPoint, CPoint> m_ptArray;
などとやっても全く同じエラーが出ます。ですが、同じマシンで「Collect」を
コンパイルすると通ります。何かincludeでも加えてやれば通るようになるのでしょうか?
ご存じの方がおられましたらご教授ください。
0021デフォルトの名無しさん
NGNGそれは、毎回「別なAnsiStringの実体」が返されてるだけですが。
もちろん文字列の内容は同じですが。
0022デフォルトの名無しさん
NGNG最低限、どういうエラーが出たかも書かずに回答が帰ってくると思ってるのか?
0024デフォルトの名無しさん
NGNGAnsiStringもstd::stringも、c_str()はその場限りの寿命なんだよ。
c_str()の返すポインタを他の変数に記録して後で使うってのは
どの入門書を見てもダメと書いてあるはずだ。
意味がわからなかったら cds.lpData の値とShowMessage後の
ParamStr(1).c_str()の値を比較してごらん。
0025デフォルトの名無しさん
NGNGそもそもポインタが分かってないみたいだな
億劫がらずに入門書をよく読み返してごらん
0027デフォルトの名無しさん
NGNGafxtempl.h を include
stdafx.h の中でいい
0028デフォルトの名無しさん
NGNGただの配列が使いたいなら、std::vectorを使って欲しい。
0029デフォルトの名無しさん
NGNGC:\cprog>bcc32 hello.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
hello.c:
警告 W8070 hello.c 5: 関数は値を返すべき(関数 main )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland となります。
プログラムは、
#include <stdio.h>
main()
{
printf("hello ,world\n");
}
警告 W8070 hello.c 5: 関数は値を返すべき(関数 main )はなにでしょうか。
一応実行はできました。
0030デフォルトの名無しさん
NGNG入門書よく読んでね
main関数は戻り値を省略するとint型になる
return 0;を追加しとき
0031デフォルトの名無しさん
NGNGmain関数でなくてもだけどな。
0032デフォルトの名無しさん
NGNG大量のデータを処理するプログラムを作ったので、
少しでも処理を早くしようとベンチを取っています。
コードを見やすくするためにユーザー関数を使っていたのですが
それを使わないほうが早くなると思ったのですが、
ベンチを取るたびCPUの動き具合で数秒のズレがあり、
どちらが早いか分からないです。
ユーザー関数は呼び出さないほうが早いのでしょうか?
0033デフォルトの名無しさん
NGNG003432
NGNGユーザー関数を呼び出さないほうが早いとは思うのですが一応教えていただけないでしょうか?
0035デフォルトの名無しさん
NGNGユーザー関数使うと速くなるらしいけど。
| 具体的には、普通に BASIC を起動した後、起動したいディスクを入れ
| defusr=&h180:u=usr(0):defusr=&h400:u=usr(0)
| と実行するだけです。
| ROM ソフトも後差しすればこの方法で高速モード起動可能らしいです。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNG00385
NGNGどなたかご教授お願いします、、
0039デフォルトの名無しさん
NGNGほれ
ttp://ghanyan.monazilla.org/trip.html
0040デフォルトの名無しさん
NGNG意地の悪いやっちゃ(w
0041デフォルトの名無しさん
NGNGそれなりにコストがかかる。
C++ならinline関数によってある程度カバーできるが。
template+functor+inline、これ最強。
0042デフォルトの名無しさん
NGNG一般的に、末尾に_rがつくのは、staticなバッファを返す標準的な関数を
リエントラントにするために、バッファを渡す形式に変更するもの。
0043デフォルトの名無しさん
NGNG俺は試してないけどね。
0044デフォルトの名無しさん
NGNGうーんとね、>>5氏は別のスレで同じ質問して>>39のソースについても
ちゃんとレスをもらってるのよ。
それを知ってて>>39のレスしたのかと思ったの
0045デフォルトの名無しさん
NGNGperlしか知らない初心者君が「tripが欲しいわけじゃない」とほざいてるのも知ってるし。
いい加減うざいからさ。
0046デフォルトの名無しさん
NGNGint x[a][b][x];
a=10; b=4; c=5;
といった感じで,入力に応じて配列の要素数を変えたいと考えています。
処理の途中で変数を変える処理を行なうため,マクロは用いることができません。
コンパイラはボーランドの5.5です。
初心者丸出しの質問で申し訳ありませんが,ぜひともよろしくお願いします。
0047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
NGNG2次元配列すら、実行時に変更することは出来ません。
もちろん、一次元配列でも要素数を変更することは出来ませんが。
0049デフォルトの名無しさん
NGNGポインタのポインタの配列作ってがんがるか、しなさい
0050デフォルトの名無しさん
NGNGint (*x)[4][3];
int nx = 5;
x = calloc(nx * 4* 3, sizeof(int) );
で x[nx][4][3] のように最も高い次元は、要素数定義が可能(参考文献:望洋 実践編)
ほかは出来るのかもしれんがよく知らん
0051デフォルトの名無しさん
NGNGC FAQに二次元の例があるんで参考にしてみれ
0052デフォルトの名無しさん
NGNGmalloc()で確保したメモリを、ポインタを介して
「あたかも配列のように」扱ってるだけなの。
単純な1次元のmalloc()でも同じ。
C99だと2次元以上でも変数が使えるのかな。
005346
NGNG初心者の自分にはかなり難しい話になりそうですが,なんとかやってみます。
0054デフォルトの名無しさん
NGNG配列に見えるだけで良いのなら、こんな感じ
int ***x ;
int i, j, k, a = 10, b = 4, c = 5 ;
x = ( int *** ) calloc ( a, sizeof ( x[0] ) ) ;
for ( i = 0 ; i < a ; i++ )
{
x[i] = ( int ** ) calloc ( b, sizeof ( x[0][0] ) ) ;
for ( j = 0 ; j < b ; j++ )
{
x[i][j] = ( int * ) calloc ( c, sizeof ( x[0][0][0] ) ) ;
for ( k = 0 ; k < c ; k++ )
{
x[i][j][k] = i * 100 + j * 10 + k ;
}
}
}
printf ( "%d\n", x[5][3][4] ) ;
0055デフォルトの名無しさん
NGNG答えられなくて逆ギレかよ。悲しいな。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNG>>5氏
元のスレで解決しているはずなのだが、君が勘違いしてて理解できなかっただけ。
その君の勘違いを>>42氏が正してくれている。
同じ言語のスレならアクティブな回答者はたいてい重複しているから、
中途半端にスレを移動するのは意味がないし、無用な混乱を起こしやすい。
気をつけてくれ。
006120
NGNG早速のお答えありがとうございます。解決できました。
0062デフォルトの名無しさん
NGNG複数のモードレスダイアログボックスにWM_PAINTなどのメッセージを送ろうと
考えています。今、親となるCWndにポインタ配列をメンバ関数として持たせ、
ここに登録したCDialogへのポインタに一つずつメッセージを送っていますが、
いまいち美しい方法とはいえないと思います。
SendMessageToDescendantsを使えばすべての子孫ウインドウに対してメッセージを
送ることができるようなことが書いてあったのでやってみましたが、いまいち
うまくいきません。何かよい方法はないでしょうか?
0063デフォルトの名無しさん
NGNGint main (void)
{
printf ("(′・ω・)<ショボーン\n");
return 0;
}
とやるとコマンドがナンタラカンタラといわれまつ(普通に表示はする)
コンパイラはbcpadとか言う奴でつ
0064デフォルトの名無しさん
NGNGさすがにそれは、
Win32API質問箱 Build16
http://pc2.2ch.net/test/read.cgi/tech/1073830065/l50
★初心者にVisual C++を教えるスレ★ Part10
http://pc2.2ch.net/test/read.cgi/tech/1074933908/l50
ここらへんで聞いたほうがいいんじゃねーの?
いくら環境依存OKでもさ。
>>63
なんたらかんたらを書けば、だれか答えてくれるぞ。
0065デフォルトの名無しさん
NGNG申し訳ない。移動します。
0066デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/linux/001222/j_posix2-index.html
を見ながら試してたんだけど、その中の thread3.c が思った動作をしてくれません。
o..o..o.o..o..o.o.o.o.o..o..o..o.ooooooo のような結果のはずが、
....................oooooooooooooooooooo になってしまいスレッドの意味がなく
なってしまいます。
thread_function()中の sleep(1); を pthread_mutex_unlock(&mymutex); の下に
持って来ると期待した結果になりますが、記事を読んだかぎりは、sleep の位置に関係
なく並行して動作しそうなんです。
main()の方のスレッドは、thread_function()中の unlock を待ってて、unlock され
たら main()のスレッドが動くと思ってたんですが、どうして下のような結果になって
しまうんでしょう?
0067デフォルトの名無しさん
NGNG環境にもよるのかもしれない。
http://pc2.2ch.net/test/read.cgi/tech/1037636153/
や
http://pc.2ch.net/test/read.cgi/unix/1010933537/
なら詳しい人がいるかも。
0068デフォルトの名無しさん
NGNGまた、引数が構造体の場合と構造体のポインタの場合との違いはありますか?
0069デフォルトの名無しさん
NGNG配列がポインタに格下げされるので同じ事になる。
受け取る側の仮引数の話なら
それこそ、記法の違い以外は全く同じ。
構造体の値渡しとアドレス渡しでは
実行時のオーバーヘッドと、受け取る側での変更を許可するかどうかの違いがある。
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
0070デフォルトの名無しさん
NGNG% g++ -v
gcc バージョン 3.3.3 20040214 (prerelease) (Debian)
以下のソースですが、
#include <vector>
int main() {
std::vector< int > tbl1( 10 ) ;
return 0 ;
}
% g++ aa.cpp
% LeakCheck ./a.out
でコンパイルしてメモリリークチェック付きで実行すると、
# from new @ | size # Pointer Addr
L 0x400a90db 1600 # 0x8049f78
# total allocation requests: 1 ; max. mem used 1 kBytes
# leak 1600 Bytes :-(
のようにメモリリークが見付かります。
tbl1( 10 ) の 10 を 1024 に変えると、メモリリークが出ません。
そういうものなんでしょうか??
0071デフォルトの名無しさん
NGNGその緑色の所に初期配置のコマを置いて、そのコマを緑色のマスにだけ1マスずつ
動かせるようにしたいのですが、どのようにしたらいいでしょうか。(チェッカー
というゲーム)コマを動かせるようにするには、WM_PAINTの中に書いたらマズい
ですか?コマの配置は次の通りです。
□●□●□●□●
●□●□●□●□
□●□●□●□●
■□■□■□■□
□■□■□■□■
●□●□●□●□
□●□●□●□●
●□●□●□●□
それと、対コンピュータにするのはどういう方法がありますか?(これについては
もう少しあとでもいいです。)
0072デフォルトの名無しさん
NGNG書いてしまってもそれほど問題はないよ。
思考ルーチンはきちんと別のスレッドでやる。
0073デフォルトの名無しさん
NGNG人対人なら
1.WM_LBUTTONDOWN メッセージあたりを拾う
2.マウスの座標がプレイヤーのコマに含まれているか判定(移動元)
3.次のWM_LBUTTONDOWN メッセージを拾う
4.動かせる場所かどうか判定(移動先)
5.動かす(表示)
6.プレーヤーの交代
以下繰り返し
という感じか?
0074デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/php/1075545279/374-394
>パスワードクラックしたけりゃ、Cを使えよ。Cを。
>この種の処理なら、Perlよりも数倍速いぜ。
と言ったヤシがいたけど。おかげでこのスレの住人が迷惑を被ってるわけだ。
0075デフォルトの名無しさん
NGNG二本のラインの角度をー180〜180で表記したいのですが。。。
atan2(x,y)だと一本のラインですよね。
単純に引き算したら-180〜180になってくれないんですよね。
0076デフォルトの名無しさん
NGNG引いた後に -180〜180 に直せばいいじゃん。
0077デフォルトの名無しさん
NGNGint i[4];
short s;
};
gccでこの構造体のサイズを18にする方法を教えて下さい。
0078デフォルトの名無しさん
NGNG__attribute__ ((packed))
すぐ見つかりました。これでできるみたいでした。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGようするに色々便利なプログラムがごちゃまぜになったライブラリって事?
その中のどれかが便利だと感じたら導入するって事で良いのかな?
0083デフォルトの名無しさん
NGNG2本の直線の方向ベクトルをそれぞれ(x1, y1), (x2, y2)として
2本の直線のなす角度は
atan2(x1 * y2 - x2 * y1, x1 * x2 + y1 * y2);
008475
NGNG0085デフォルトの名無しさん
NGNG(x1, y1, 0) ・ (x2, y2, 0) = x1 x2 + y1 y2 = r1 r2 cos theta
∴ theta = Tan^-1 [(x1 y2 - x2 y1) / (x1 x2 + y1 y2)]
008611
NGNGcds.lpData = (LPVOID)(ParamStr(1).c_str());
問題はParamStr関数が引数をワーク領域にコピーして
そのアドレスを返すようで、そのため壊れてしまうようです。
AnsiString as = ParamStr(1);
cds.lpData = (LPVOID)(as.c_str());
AnsiString FilePath = ExtractFilePath(Application->ExeName) + "Sample.ini";
TMemIniFile *Ini = new TMemIniFile( FilePath );
int i = Ini->ReadInteger( "SECTION1" , "WindHand", 0 );
delete Ini;
SendMessage((HWND)i,WM_COPYDATA,(WPARAM)Application->Handle,(LPARAM)&cds);
とすると問題ありません。
>>24 氏の言っている「c_str()はその場限りの寿命」というのは
c_str()の認識が間違っているようです。
------------以下 Borland Tipsサイトからのコピペ------------
c_str関数は、AnsiStringクラスの文字列領域へのポインタを返す関数です。
0087デフォルトの名無しさん
NGNG>c_str()の認識云々
アフォ顔洗って出直せ
AnsiStringクラスの文字列領域が常に不変だと思っているのか?
0088デフォルトの名無しさん
NGNG>問題はParamStr関数が引数をワーク領域にコピーして
>そのアドレスを返すようで、そのため壊れてしまうようです
意味不明なんだが?
入門書もう一辺読み直したほうがいいよ。
念のため言うておくとParamStrが返すのはAnsiString型のインスタンス
0089デフォルトの名無しさん
NGNGしったかぶりしたがるバカ初心者は無視しろって。
0090デフォルトの名無しさん
NGNGっつーか
確 実 に 釣 り だ ろ
0091デフォルトの名無しさん
NGNGもういいです。
0093デフォルトの名無しさん
NGNGParamStr(1) の返すオブジェクトの寿命は
それの含まれてる文の終わりまでだな。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG2重に間違い
1:クラスインスタンスに対しdeleteは無用、つか、したらいかん。
2:C++の文字列クラスは領域を自分で再確保する可能性がある。
>>94
だから、引数って、意味しってる?
c_str()は引数取らないよ?
悪いことは言わんから冷静になりや。
んで、C++の入門書きっちり読み。
0097デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
int main() {
const char* p = std::string("aaa").c_str();
const char* q = std::string("bbb").c_str();
std::cout << p << std::endl;
std::cout << q << std::endl;
}
009993
NGNG0100デフォルトの名無しさん
NGNGこっちは、紅茶吹いて、キーボード1枚の損害なんだぞ!
0101デフォルトの名無しさん
NGNGうーん、"引数"を"コマンドライン引数"に置換してもやっぱり変だぞ。>86
このスレの住民は口は悪いが、おかしなところを「おかしい」と指摘してくれているんで
それはすなおに聞く耳もたな。
「C++の基礎をきちんと勉強したほうがいい」というアドバイスに対してもね。
0102デフォルトの名無しさん
NGNGそんなに紅茶が気に入らなかったんなら
次は十六茶を吹け。
0103デフォルトの名無しさん
NGNG「あーむかつく」なんて書いているようじゃ聞く耳なんて持ってないだろ。
0104デフォルトの名無しさん
NGNGいや寧ろ、問題は>100の使っているキーボードが紅茶に弱いってことだろ。
と言うわけで、>100は紅茶耐性の高いキーボードを使うようにシル。
0105デフォルトの名無しさん
NGNGもしかして、テンポラリオブジェクトを作るから
壊れるという主張なのかな。
それなら正しいことを言ってるな。
ワーク領域って言葉は普通こういう風には使わないと思うけど。
0106デフォルトの名無しさん
NGNGそれは>>11に対して散々指摘されていたことなんだが・・・
どうも ParamStr(1).c_str() が、AnsiString型テンポラリオブジェクトのメンバ関数を
呼び出しているという点が飲み込めてないように見えるのだが? はて?
0108デフォルトの名無しさん
NGNGメモリの動的確保、newを多用するのはよくないんですか?
教えてください
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGできたEXEが遅くなるとか?
0111デフォルトの名無しさん
NGNGだめも何も、使わなきゃいけないときは使わないといけない。
それとな、初心者スレだからこんなコトいうのもなんだけど、
「多用しすぎる」ってなにさ?
プログラムって日本語とかの自然言語と違って、
ちゃんとしたルールの下に構築されてるんだから、
「最大xxまで」「最低xxは許される」というのが決められている。
まずそういうあやふやなことに惑わされる姿勢を何とかした方がいいよ。
0112デフォルトの名無しさん
NGNGマネージ型からアンマネージ型の変換を楽にする方法を教えてください
BYTE[]からbyte[]へのコピーとか
0113デフォルトの名無しさん
NGNG次にどこに向かえばよいでしょうか。
最終的には簡単なフリーソフト(windows)を動かしたいです。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG遅レスだが
boostは、標準から漏れた内容を次期標準とすることを
目標としたものだったと思う。
0116デフォルトの名無しさん
NGNGキーボードで入力する前に値が入力された扱いになってしまうのですが
どうしてなのでしょうか。
0117デフォルトの名無しさん
NGNGC++入門編とC応用編
011870
NGNG0119f
NGNG( ´ {}`)のいぽー
l|l|l|l|l|l|
( )
|||
(__)_)
0120デフォルトの名無しさん
NGNGvector<int> v;
v.reserve(10);
でもだめ?
0121デフォルトの名無しさん
NGNG直前に入力された文字列をscanfが読み残しているから。
fgetsを使って1行づつ読んで、数値への変換はsscanfを使えばいい。
0123デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG最低限の基礎さえ身につけた上で書き込んでいれば
ああまで煽られたりはしない。
0126デフォルトの名無しさん
NGNG知能も精神も小学生レベルだからな、どう見ても。
0127デフォルトの名無しさん
NGNGそもそもこの程度でむかつくくらいなら2chなんかに来なきゃいいだろ。
で、ちっとはAnsiStringについて理解できたのかね。
まぁ、むかつく暇はあってもまともに理解しようと勤める暇はないんだろうがな。
なーに、態度さえ変えればここの連中はちゃんと教えてくれるよ。
0128デフォルトの名無しさん
NGNGあの雑誌はどのくらいのスキルがつけば読み始めたらいいのでしょうか。
0129デフォルトの名無しさん
NGNGあれってJavaの本じゃなかったっけ?
0130デフォルトの名無しさん
NGNGCがメインみたいですけど。
0131デフォルトの名無しさん
NGNG別にどんなスキルでも。
読んでみて読む価値があると思ったら読めばいい。
全ての記事を読む必要もないし、全ての記事を理解する必要もない。
入門系連載記事に価値を求めるやつもいるかもしれないし、特集記事で
色々なトピックを知りたいだけのやつもいるかもしれない。
後は、それが価格に見合うかどうかだけじゃないかと。
特集記事については今は興味なかったり分からなかったりしても後から
役に立つことはあるかもしれない。
つまり俺が言いたいのは、そんなこと人に聞いてどうするつもりだ?ってこった。
0132デフォルトの名無しさん
NGNG今は C マガの C は Computer の C らしい。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNGpublic:
virtual void vTextOut() { cout << "CParent vTextOut()" << endl; }
};
class CExtend : public CParent {
public:
virtual void vTextOut() { cout << "CExtend vTextOut()" << endl; }
};
void main()
{
CExtend Obj;
CParent *pObj = &Obj;
}
こういうソースがあったときに、pObjを使って、
CParent::vTextOut() をコールすることはできますか?
0135デフォルトの名無しさん
NGNGpObj->CParent::vTextOut();
0136デフォルトの名無しさん
NGNGコンパイラで開発する事ってありますか?
0137デフォルトの名無しさん
NGNGドモドモ。できますた!
013871
NGNG動かせるようにしたいのですが、どのようにしたらいいでしょうか。(チェッカー
というゲーム)動かせるコマを初期のコマに設定ようにするには、WM_PAINTの中に
描いたらいいですか?コマの配置は次の通りです。(●の所も盤の色は■です)
□●□●□●□●
●□●□●□●□
□●□●□●□●
■□■□■□■□
□■□■□■□■
●□●□●□●□
□●□●□●□●
●□●□●□●□
>>73 WM_LBUTTONDOWN の中に初期のコマを描くように設定するのですか?
だとするとどんな風に書くのですか?
とりあえず、実行した時に初期のコマを設定する(オセロだったら真ん中に4つ
のコマを描く)にはどうしたらいいか、お分かりになる方はよろしかったら教え
ていただきたいのですが。
0139デフォルトの名無しさん
NGNG2次元の配列を2つか、3次元の配列を使う。
盤の配置パターンと駒の現在位置
0140デフォルトの名無しさん
NGNGまず、2次元の配列、 a[8][8] を用意して
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNGそれだと盤の配色が無い。
0x100 だと黒いマスに駒なし。
0x101 だと黒いマスに白い駒。
0x110 だと黒いマスに黒い駒。
0x000 だと白いマスに駒なし。
0x001 だと白いマスに白い駒。
0x010 だと白いマスに黒い駒。
0145デフォルトの名無しさん
NGNGいやあまり複雑にするとついてこれないかと思ってさ
0146デフォルトの名無しさん
NGNGいやあbitで処理しようとしてる時点でネタなんだけどね。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNGビットマップの座標範囲と条件文だけで実装したら
ある意味凄いかも?
014971
NGNG0150デフォルトの名無しさん
NGNG大漁だよなー。
015171
NGNGせるコマ)を設定したいのです。どんなソースを加えればいいでしょうか。
まだ大漁ではありません。
0152デフォルトの名無しさん
NGNGオレに20万円で発注しないか? 格安だぞ。
015371
NGNG0154デフォルトの名無しさん
NGNGじゃ、漏れ様が10万円で個人教師をしてやろうじゃないか。
0155デフォルトの名無しさん
NGNGCやアルゴリズムの本で勉強くらいはしてるのか?
0156デフォルトの名無しさん
NGNGまえスレの何番かな?
0157デフォルトの名無しさん
NGNGっていうか、そのうち「デバイスコンテキストって何ですか」とでも
聞きそうな感じだな。
0158デフォルトの名無しさん
NGNG連続飛びをするには? という質問も来そう
さっきチェッカーのルールをぐぐったw
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGhttp://users.pandora.be/ai/chess/download.html#StrategicGames
0161デフォルトの名無しさん
NGNG【初心者歓迎】C/C++室 Ver.4【環境依存OK】のかなり下の方にある。
0162デフォルトの名無しさん
NGNG宿題スレ20ってどこ?
0163デフォルトの名無しさん
NGNGぼるじょあがC/C++の宿題を片づけますYO! 20代目
http://pc2.2ch.net/test/read.cgi/tech/1075217631/l50
0164デフォルトの名無しさん
NGNGこれ以外に、Win32APIのソースがおちている所は無い?
0165デフォルトの名無しさん
NGNGこんなので良いのか? 有名どころだが。。
http://www.codeguru.com/
0166デフォルトの名無しさん
NGNG日本語のサイトはあまりいいのは無いけど、英語は英語で難しい。
しかも、VC++じゃなかったり。MFCだったり。
0167デフォルトの名無しさん
NGNGファイルの末尾に行を足すモードはありますが、
ファイルの先頭に行を足すにはどうしたらいいんでしょうか?
よろしくお願いします。
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGファイルAの先頭に行を足したい場合
ファイルBをwrite openしてAの先頭に入れたかった内容を書く
Aをread openしてファイルBの末尾に(Aの)内容を追加する
(closeなどの後始末して)最後にファイル名を交換する
0170デフォルトの名無しさん
NGNGありがとうございます。
それでいけそうです。
0171デフォルトの名無しさん
NGNGtypedefの有効範囲ってどこになるのでしょうか?
グローバル?モジュール内(ファイル内)?
各場所によってはclassのアクセス範囲(privateやpublic)にも
影響を受ける??
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG関数や変数の宣言と同様。
当然、「書く場所によってはclassのアクセス範囲(privateやpublic)にも影響を受ける」。
0174デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNGクラスないで自クラスを使いたいのですが…
こんな設計は無茶ですか?
0177デフォルトの名無しさん
NGNGメンバ変数として使いたいなら、ポインタにして実行時に動的に確保するようにすればいいんでない?
0178デフォルトの名無しさん
NGNGコンストラクタでnew A;して、newされたインスタンスが
コンストラクタでnew A;して、またnewされたインスタンスが
コンストラクタでnew A;して、そのnewされたインスタンスが
コンストラクタでnew A;して…
0179デフォルトの名無しさん
NGNGコンストラクタでやるなと
0180デフォルトの名無しさん
NGNGCDialogXXX::CDialogXXX(int lintUser, CWnd* pParent /*=NULL*/) : CDialog(CDialogXXX::IDD, pParent)
と最後に「 : CDialog(CDialogXXX::IDD, pParent)」を書かなければ上手くいかなかったんですけど
「 : CDialog(CDialogXXX::IDD, pParent)」の部分は具体的に何をしてるんでしょう?
リソースIDと親ウィンドウのハンドルをどこかに渡してるのだろうと想像してるのですが
コンストラクタの中に「CDialog::CDialog(CDialogAll::IDD, pParent);」と書くのとはまた違うみたいですし・・・
よろしくお願いします
0181デフォルトの名無しさん
NGNG例えば 123なら → 1,2,3
ただし、引数は1桁のときもあってそのときは、残りの2つは0とします。
例えば 1なら → 1,0,0
よろしくお願いします。
0182デフォルトの名無しさん
NGNGこんなのでいいなら
int src = 123;
int x1,x2,x3;
x3 = src / 100;
src %= 100;
x2 = src / 10;
x1 = src % 10;
printf("%d %d %d ",x3, x2, x1);
0183デフォルトの名無しさん
NGNG基本クラス(この場合CDialog)のコンストラクタを呼び出してる
0184デフォルトの名無しさん
NGNG>例えば 1なら → 1,0,0
100 → 1, 0, 0
とどう区別するの?
0185デフォルトの名無しさん
NGNG即レスありがとうございます。
大変申し訳ありませんが、いくつか複雑な条件が判明しました。
引数をNo,分解した3つの数値をFirst、Second、Third とします。
※ 引数は 1 〜 1110まで。
※ First、Second、Thirdは、0〜10の値。
※ 2桁以上では,First、Second は 0になってはいけない。
※ 2桁以下の数値では、 No = Third*100 + Second*10 + First
※ 3桁の数値のときは、 No = First*100 + Second*10 + Third
例)
00 , 0, 0
1〜101 ,0,0 〜 10,0,0
111 , 1, 0
201 ,10, 0
1231 , 2, 3
2001 , 9,10
3012 ,10, 1
111010,10,10
ちなみに、C++初心者本を2冊読見終えたところです。。。
これがわからないのはやはりまずいでしょうか。
耳から煙りが出そうです。
0186デフォルトの名無しさん
NGNG条件の追加と例の補正。
※ Secondが0でないときはFirstは0になってはいけない。
※ Thirdが0でないときはFirst、Secondは0になってはいけない。
0 →0 , 0, 0
1〜10→1 ,0,0 〜 10,0,0
11 →1 , 1, 0
20 →1 ,10, 0
123 →1 , 2, 3
200 →1 , 9,10
301 →2 ,10, 1
1110 →10,10,10
0187デフォルトの名無しさん
NGNGおそらく、この条件は間違っている
正しい条件をきちんと整理して書かないとどうにもならない
そもそも「桁」ってなにを指すの?
0188デフォルトの名無しさん
NGNG>>186を追加してもおかしいようだ。全部整理しなおして改めて書き込むべし
なお、
「C++初心者本を2冊読見終えた」
入門書は載ってるサンプルコードを全て打ち込みで走らせてみな。
そんぐらいやらないと意味がない。
0189デフォルトの名無しさん
NGNGじゃないの?
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGやっぱコンストラクタを呼び出してるのですか。
コンストラクタの中で呼び出さないのは、生成のタイミングとかなんですかね。
どうもありがとうございました
0192デフォルトの名無しさん
NGNGああ、それには禿同(w
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG。。
。 。 + ヽヽ
゜ 。・ 。 +゜ 。・゚ (;゚`Дフ。< また来ます、うわぁぁぁん
ノ( /
/ >
0195デフォルトの名無しさん
NGNGおい、ちょっとまて。
>コンストラクタの中で呼び出さないのは、生成のタイミングとかなんですかね。
派生クラスのコンストラクタは基底クラスのコンストラクタをコンストラクタ初期化子
で呼び出すって、基本の基本だじょ。きちっと勉強せい。
0196デフォルトの名無しさん
NGNGbool cond(int n,int f,int s,int t){
if(n/10 && (!f || !s)) return false;
if(!(n/100) && n!=t*100+s*10+f) return false;
if(n/100 && n!=f*100+s*10+t) return false;
if(s && !f) return false;
if(t && (!f || !s)) return false;
return true;
}
void sep(int n){
int f,s,t;
for(f=0;f<=10;f++)for(s=0;s<=10;s++)for(t=0;t<=10;t++)
if(cond(n,f,s,t))
std::cout<<n<<":"<<f<<","<<s<<","<<t<<std::endl;
return;
}
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNG呼び出さないんじゃなくて、その書き方でしか呼び出せないの。
0199デフォルトの名無しさん
NGNGレスどうもです。あれからちょっと調べてみて何となくわかりました
ありがとうございます
0200デフォルトの名無しさん
NGNG0201r
NGNGprivate:
void privateFunc() {}
protected:
void protectedFunc() {}
public:
static void foo() {
Base().privateFunc(); //この行でコンパイルエラーにならず
}
};
class Ext : public Base {
public:
static void var() {
Base().protectedFunc(); // この行でコンパイルエラーになっちゃう。
}
};
のはなんで?
0202デフォルトの名無しさん
NGNG駄目なのですか?
0203デフォルトの名無しさん
NGNGのあまりが勝手に二つ目に入力されてしまうのはどうすれば良いのでしょうか?
0204デフォルトの名無しさん
NGNG意味わかんない。
普通複数回newされればそれは別物だが・・・
A* a = new A();
new(a) A();
こういうことか?
0205デフォルトの名無しさん
NGNGfflush( stdin );
をfgets()の直前に。
0206デフォルトの名無しさん
NGNG>fgetsで標準入力を得ようと思うのですが
fgets() では標準入力そのものは得られない訳だが
0207デフォルトの名無しさん
NGNG無理だたよ。
>>206
ここは初心者に厳しいインターネッツですね
0208デフォルトの名無しさん
NGNG×Base().protectedFunc();
○Ext().protectedFunc();
protectedのメンバにアクセスできるのは自分自身と同じ型のオブジェクトを参照しているときのみ。
0209デフォルトの名無しさん
NGNGchar *test = new char[14];
クラスのコンストラクタ等でこうなっている部分ですが
char[14]をchar[20]にしなければならなくなった場合は
いったん
delete[] test;
としてから
char *test = new char[20]
としなければならないのですか?
それとも
Delete[] testは抜きで、いきなりchar *test = new char[20]をやっても
問題ないのですか?
0210デフォルトの名無しさん
NGNGnewは新しい領域を作ってそのアドレスを返すから、古い領域が大きくなるわけじゃない。
というわけで一度deleteしないとリークする。
0211デフォルトの名無しさん
NGNGthx!
0212デフォルトの名無しさん
NGNG覚えて堕落するわけだが。
0213デフォルトの名無しさん
NGNG未定義。鼻から悪魔が出てきても知らないぞ。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNG/* nを超えた分は読み捨てるfgets
char *fgets_skip(char *dest, int n, FILE *stream)
{
int c;
while(--n)
{
c = getc(stream);
if(c == EOF) return NULL;
if(c == '\n') break;
*dest++ = c;
}
*dest = '\0';
for(; c != '\n'; c = getc(stream))
if(c == EOF)
return NULL;
return dest;
}
0216デフォルトの名無しさん
NGNGなぜそれを進歩でなく堕落と呼ぶ?
0217デフォルトの名無しさん
NGNG文明の進歩とは即ち堕落が目的だ。楽をするために努力してるんだから。
0218うみがめ
NGNGRPGのソースなのですが、直したらよい所があるなら教えてください。
コメントのつけ方、関数分割、ファイル分割、構造体の使い方などを
意識し、見易さ重視で作ったのですが、そこらの部分か、
また、他にあるならお願いします。
0219デフォルトの名無しさん
NGNG> for(;friendCount<FRIEND_PARTY&&enemyCount<ENEMY_PARTY;)
whileを使え
0220デフォルトの名無しさん
NGNGHandleChangeParty関数に関して、friendCountとenemyCountは本当にポインタで受ける必要があるのか?
0221うみがめ
NGNG>>219
あっそうですね。癖で使っていました。
単純に永久ループさせたいときはそちらの方がよいですね。
>>220
必要ないです。
たしか前はそこで++を行っていてそれが残っていたようです。
今はHandleZenmetu関数で行っていますので。
0222デフォルトの名無しさん
NGNG突っ込みどころ満載だが面倒なので省略。
強いてあげれば、indentかcbなどのツールを一度使ってみるといい。
あー、ついでに言えば、英語の勉強もかな。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGSTLは表面を触って遊んでいるうちなら楽をしていると言えるんだがなぁ・・・
スマートポインタも内部の実装詳細をある程度把握してないとたまにひどい事に・・・
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGあんたみたいな読解力のない香具師を釣るためだろ。
0228デフォルトの名無しさん
NGNGなるほど、やはり無内容なオナニーでしたか :)
0229デフォルトの名無しさん
NGNG>>218必死だな。
0230うみがめ
NGNGありがとうございます。
インデントと英語(関数名のつけ方など)ですね。
今回は意識しませんでしたが、勉強せねばとずっと思っていました。
後できれば、面倒だった部分もお願いします。
0231デフォルトの名無しさん
NGNG二回目の変数に勝手に代入されなきゃ嬉しいの。
しょうがないから他の方法で済ませました。
0232デフォルトの名無しさん
NGNGホレ
http://dennou-k.gaia.h.kyoto-u.ac.jp/arch/comptech/cstyle/cstyle-ja.htm
0233デフォルトの名無しさん
NGNG釣りの餌としか思えないようなコーディングだぞ。
ネタなのか?
0234デフォルトの名無しさん
NGNGvoid InitChara(Chara*chara)
{
int i;
chara->enum_=0;
strcpy(chara->name,"");
chara->mhp=0;
chara->mmp=0;
chara->pow=0;
chara->def=0;
chara->smt=0;
chara->spd=0;
chara->luc=0;
for(i=0;i<CHARA_ITEM;i++)chara->itemEnum[i]=0;
}
↓
void InitChara(Chara *chara)
{
ZeroMemory(chara, sizeof(chara));
}
0236うみがめ
NGNG>>232
参考にさせていただきます。
>>233
そんなにダメですか?自分では精一杯なのですが。
>>234
わざわざ1個1個入れなくても構造体も一括でできたんですね。
配列とかでは確かmemsetとか使った事があったのですが。
0237デフォルトの名無しさん
NGNG0238うみがめ
NGNG私に対してですよね?
できるだけ簡単に作るという方向で作ったので、その機能は無いです。
今作っているのができたら作りましょうか?
でも相変わらず醜いコードになると思いますが。
0239デフォルトの名無しさん
NGNG>そんなにダメですか?自分では精一杯なのですが。
そ、そうなのか・・・
漏れの会社の新人プログラマーとしてどうか入社しませんように。ナムナム (AA略
0240デフォルトの名無しさん
NGNG>でも相変わらず醜いコードになると思いますが。
なんだ、自覚症状があるのか?
やっぱ釣りだなー。
0241うみがめ
NGNGひそかにまだプログラマーになりたいと思っていましたがダメですか。
なれなくても将棋ソフトで大会に出るという夢もあるのですが。
>>240
いいえ、皆さんがそう仰っていたからです。
もし作るなら完成までに少しでもLVUPしようと思いますが。
0242222
NGNGスタイルはまぁいいとして、気になるのは複文({})の使い方。
関数の名前の付け方もまぁいいとして、スペリングミスはいただけない。
で、個別の指摘は(相変わらず)面倒だから省略するが、
breakに頼りすぎているような気がする。
それと、関数の切り分けの仕方辺りかな。
0243デフォルトの名無しさん
NGNGまず数をこなしなさい。ゲームならゲームできちんと動作するものを沢山作りなさい。
それから洗練されたコードを沢山読みなさい。
定評のある書籍に載ったサンプルとかライブラリのソースとか参考になるものはいくらでもある。
それらを十分にこなしてから他人に自分のソースの評価を求めなさい。
今の段階じゃ「経験不足」という答え以外ない。
0244デフォルトの名無しさん
NGNG>それから洗練されたコードを沢山読みなさい。
そう言えば、バレンタインの頃に洗練されたコードが
大量に流出したよなぁ。。。
0245デフォルトの名無しさん
NGNG0246うみがめ
NGNGありがとうございます。
>複合括弧
if()
{oo;oo;}
とか
if() {oo;oo;}
とかですかね。気をつけます。
>スペルミス
和英辞典で調べながらやっているんですがね。気をつけます。
>breakに頼りすぎ 関数の切り分けの仕方
どこら辺か分からないのでもう一度見てみます。
0247デフォルトの名無しさん
NGNG>和英辞典で調べながらやっているんですがね。気をつけます。
リア厨?
0249デフォルトの名無しさん
NGNGこういうポインタ引数の定義のスタイルは何処にのってた?
こうだろ?
int StrWoComnd(int *item, int *spot)
{
*item = hoge;
C++ なら参照渡しで
int StrWoComnd(int &item, int &spot)
{
item = hoge;
0250デフォルトの名無しさん
NGNG一瞬何のことかと思ったけどw
メモ帳如きでかなり複雑なコードだったらしいがどんなんなのか
気になるな
0251デフォルトの名無しさん
NGNG242では無いが。
for でループさせてるのに break で抜けている。
つまりループの出口が2つある。
0252デフォルトの名無しさん
NGNG本によっては
int* item、int *itemの2通りがある。
俺は後者だけど。
おそらくSPがはっきりしてなかったんじゃないか?
そういうのもあるし
0253デフォルトの名無しさん
NGNGメモ帳如きはうみがめレベルの雑魚が作っているから仕方が無い。
カーネルに近づくほど洗練されたコードになる。
デ○ク軍団のはカナーリ洗練されたコードだと思う。
0254デフォルトの名無しさん
NGNGint* item, item2; とした場合、
int* item;
int* item2;
と見まちがえる恐れがあるので
int *item, item2; とする方が良いらしい。
0257デフォルトの名無しさん
NGNGそれを見づらいと思わない感性がダメダメ。
それから、2項演算子の前後、"," の後はスペースくらい空けないと。
for の初期化部分に沢山文を詰め込まないこと。
0258うみがめ
NGNG20代前半です(^^;。英語(国語)はまったくダメだったんで。
>>251
結構ありますね。それは例えば10ある要素からひとつでも○○であるか
調べるとき、ひとつあった地点でbreakで抜けています。
この場合はどうすればよいでしょうか。
0259うみがめ
NGNGスペースを空けないのは、VCで色が付く機能で見やすくなるからかもしれません。
メモ帳で見たときかなり見難いですが。
forで初期値を与えるのは、forで使うんだよという意味で詰め込みました。
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG国語の勉強と英語の勉強をしなさい。 きっと役に立つから。
0262うみがめ
NGNGそうです・・。今までずっと気づきませんでした。
ここ数年ずっとOllでやっていそう。はずかしすぎ・・。
これではネタと思われてもしょうがないです。
つづりの分からない英語をめんどくさがって調べないでローマ字で書いていたので、
混じることによっていつのまにか間違った使い方をしていたようです。
0263デフォルトの名無しさん
NGNGリア厨ならともかく二十歳過ぎの大人がこれじゃ
>>261だな
0265デフォルトの名無しさん
NGNG\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんな餌で俺様がクマ――!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;
0266r
NGNGシェークスピアはOllって書いてたの?
0267うみがめ
NGNG基本的に体育会系なんでと言い訳してみる・・。
バイトも肉体労働系だから、苦労することは無かったのですが。
プログラマーとなるとコーディングはもちろん、
企画とかもありますし、あきらめた方がいいのかな。
0268デフォルトの名無しさん
NGNGインターネット ⇒ Intanet
ホームページ ⇒ Homu Pege
2ch ⇒ 2 chunnele
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG>企画とかもありますし、あきらめた方がいいのかな。
Yes, I don't.
0271r/201
NGNG>protectedのメンバにアクセスできるのは自分自身と同じ型のオブジェクトを参照しているときのみ。
ってのが、具体的にどういう事なんだかよくわからんが、
とにかくありがとう。
0273デフォルトの名無しさん
NGNG継承するってことは、全ての基底クラスのメンバは派生クラスに入るだろ。
継承した時点でそれはもう派生クラスのメンバであって、基底クラスとは別物だ、ということかと。
0274デフォルトの名無しさん
NGNG上の2つは本当にこう書いたヤシが居る。w
0277デフォルトの名無しさん
NGNGぐぐって見た。あるもんだな。
E-meile 534件
Intanet 3590件
Homu Pege 103件
2 chunnele 2件
0278デフォルトの名無しさん
NGNG>>201 >>208を続けて読んでも分からん?
君が質問した部分にのみ答えているのだが。
0279デフォルトの名無しさん
NGNG> 2 chunnele 2件
ほんと?
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG0282r
NGNGほんっとうにわかんないです。
> protectedのメンバにアクセスできるのは自分自身と同じ型のオブジェクトを参照しているときのみ。
「自分自身」って言うのが何かわからない
「自分自身と同じ型のオブジェクトを参照している時」
って言うのが、どういうときなのかわからない。
>>201の例だと、
Base().protectedFunc()と書いたとき
--- 自分自身と同じ型のオブジェクトを参照していない
Ext().protectedFunc()と書いたとき
--- 自分自身と同じ型のオブジェクトを参照している
ってことなんだろうけど....全く飲み込めないです。
>>273
protectedメンバってのは、「それが宣言されたクラスと、その派生クラス」
からアクセスできるってのが特徴でしょ。
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGExt::var()において、
>Base().protectedFunc()と書いたとき
>--- 自分自身と同じ型のオブジェクトを参照していない
>Ext().protectedFunc()と書いたとき
>--- 自分自身と同じ型のオブジェクトを参照している
以上はまったく明らかなことと思っていたのだが、分からないといわれて正直呆然(w
>protectedメンバってのは、「それが宣言されたクラスと、その派生クラス」
>からアクセスできるってのが特徴でしょ
ちゃんとアクセスしてるじゃん(w
ちなみに、
class Ext : public Base {
public:
void no_static_var() {
protectedFunc();
}
};
これは、this->protectedFunc()を呼び出しているのと同じなので、
結局「自分自身と同じ型のオブジェクトを参照している」ことになる。
0285デフォルトの名無しさん
NGNGExt().protectedFunc()
これがExt型のテンポラリオブジェクトのメンバ関数を呼び出しているということが
分かってないのだろうか?
これが分からなくて散々暴れたやつがいたな(w
0286r
NGNGExt().protectedFunc()が、Ext()の一時オブジェクトのメンバ呼び出しだってのは、わかる。
えっと、わかんないのは
「Base().protectedFunc()が、Baseのサブクラスからなぜ呼び出せないのか」
ってことです。
>>284で
> >protectedメンバってのは、「それが宣言されたクラスと、その派生クラス」
> >からアクセスできるってのが特徴でしょ
> ちゃんとアクセスしてるじゃん(w
とかゆってるから、
protectedメンバを、そのメンバを宣言したクラスの派生クラスから
呼び出せる、って事は間違ってないと思うんだけど。
0287デフォルトの名無しさん
NGNG「Base().protectedFunc()が、Baseのサブクラスからなぜ呼び出せないのか」
仕様です。
はじめに書いたように
「protectedメンバは自分自身と同じ型のオブジェクトを参照しているときしかアクセスできない」
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG解決したみたいだけど、
static_cast<Ext &>(Base()).protectedFunc();
これなら通せる。(よい子は真似しちゃいけません)
ようするに「Extの一部としてのBase」としてのみアクセスできる。ってとこか。
0291デフォルトの名無しさん
NGNGすでに余談だけど(w
禿本によると、>>287は、同じ基底クラスから派生した複数のクラス間で、
相手のprotectedメンバへのアクセスを認めないというのが趣旨らしい。
基底クラスと1つの派生クラスだけで見ていると
「派生クラスから基底クラスならアクセスできてもかまわないじゃん?」
と思いがちだが、別の派生クラスの存在を念頭に置くと、やはりそれも不味かろう。
0292デフォルトの名無しさん
NGNG余談だが
Yesには必ず肯定文が、Noには必ず否定文が続く。
よって>>270 の文は文法的に破綻している。やっぱり
英語の勉強すれ。
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNGノン、インタネト(intanet)
0295デフォルトの名無しさん
NGNGOll raight
0296デフォルトの名無しさん
NGNGI have no money.
を「私はハブ(?)の物真似がうまい」とかいった香具師がいたな。
今思えば釣りなのか、真性なのか確認しようにももうあの香具師は・・
0297デフォルトの名無しさん
NGNGハブに咬まれて死んじゃった?
0298デフォルトの名無しさん
NGNG訳「飛べ飛べ天まで飛べ」
0299デフォルトの名無しさん
NGNGI have no money.
⇒ 私はお金で無い物を持っている。
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGノーバディさんはここです。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNGどの関数を使えばいいのでしょう?
0304デフォルトの名無しさん
NGNG#include <sstream>
ostringstream tstr;
tstr << "ABC";
cout << tstr.str() << endl;
0306デフォルトの名無しさん
NGNGbmpファイルが引数でもエラーが出ずに通ってしまいました。
テキスト以外のファイルをエラーとする方法はありますか?
0307デフォルトの名無しさん
NGNGファイル名の最後の4文字が".txt"かどうかを調べる
0308デフォルトの名無しさん
NGNGありがとうございます
では、ファイル名の比較はどのようにすればできるでしょうか?
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGShell API を使え。ここの Path* の API
http://nienie.com/~masapico/api_index.html
つか、ファイルを全部読んで文字以外のがあったら
テキストファイルじゃないと判断汁。
0311デフォルトの名無しさん
NGNGコンピュータにとってはどんなファイルもさしたる違いはない。
0312デフォルトの名無しさん
NGNGどんな関数使えば良いのでしょうか?
かなりがんばって検索したつもりなのですがわかりませんでした
0313デフォルトの名無しさん
NGNG#include <stdio.h>
/* #define GLOBAL */
#ifdef GLOBAL
const int DragonKiller=15000,AngelRobe=3000,DragonShield=3500;
struct _item{ char *name; int price;
}ItemList[]={
{"ドラゴンキラー", DragonKiller},
{"天使のローブ", AngelRobe},
{"ドラゴンシールド",DragonShield},
};
#endif
int main(void)
{
#ifndef GLOBAL
const int DragonKiller=15000,AngelRobe=3000,DragonShield=3500;
struct _item{ char *name; int price;
}ItemList[]={
{"ドラゴンキラー", DragonKiller},
{"天使のローブ", AngelRobe},
{"ドラゴンシールド",DragonShield},
};
#endif
return 0;
}
GCC 3.3.1 で、GLOBAL無効だとOKなんだけど、
GLOBAL有効だとコンパイルエラーになるんだ。なんで?
0314デフォルトの名無しさん
NGNG0315Addicted to C++ ◆nrBjarne.g
NGNG#include <sstream>
#include <string>
using namespace std;
int x;
ostringstream oss;
oss << x;
string temp = oss.str();
これでtempに得られる。もしくはboost::lexical_cast<>を使うとすっきりしていい。
0316デフォルトの名無しさん
NGNGエラーメッセージを貼り給え
0317313
NGNGT:\>gcc g.c
GLOBAL有効
T:\>gcc g.c
g.c:7: error: initializer element is not constant
g.c:7: error: (near initialization for `ItemList[0].price')
g.c:7: error: initializer element is not constant
g.c:7: error: (near initialization for `ItemList[0]')
g.c:8: error: initializer element is not constant
g.c:8: error: (near initialization for `ItemList[1].price')
g.c:8: error: initializer element is not constant
g.c:8: error: (near initialization for `ItemList[1]')
g.c:9: error: initializer element is not constant
g.c:9: error: (near initialization for `ItemList[2].price')
g.c:9: error: initializer element is not constant
g.c:9: error: (near initialization for `ItemList[2]')
0318デフォルトの名無しさん
NGNGCでコンパイルしてるからだな。
Cではconst intは「定数式」に使えない。
C++なら使える。
0319313
NGNG0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGものでしょうか? 私はプログラムが書けないのでよくわかりませんです。
117 : ◆Rb.XJ8VXow :04/02/15 23:34 ID:L0+olNsX
ちなみに下記は三菱製作所へ納品したソースの一部だ。
このソース1300ステップで250万円の値が付いた優れものである。
もちろん、コボラー様でも読めるように配慮している。
void MAIN_SUB()
{
char sStr[256];
int i,iSw,iCnt;
CreWorkA_SUB(); /* 展開WorkA作成 */
CreWorkB_SUB(); /* 展開WorkB作成 */
CreStrf0_SUB(); /* 出力 合作振向F作成 */
strcpy(P_Strf0,getenv("WORKDIR")); strcat( P_Strf0, "/STRF.txt" );
F_Strf0 = fopen( P_Strf0, "r" );
if( F_Strf0 == NULL ){
fprintf(stdout,PROG);
fprintf(stdout,": (MAIN_SUB)STRF.txt open Error!\n");
exit(-1);
}
0322321のつづき
NGNG/* 自動/手動 分割処理 */
/*----------------------*/
iSw=0;iCnt=0;
for(J_Strf0.cnt = 0; J_Strf0.cnt < J_Strf0.max; J_Strf0.cnt++){
fseek(F_Strf0, J_Strf0.cnt * J_Strf0.size, SEEK_SET);
if( fread(&R_Strf0,J_Strf0.size,1,F_Strf0) != 1 ) AccessErr("001");
if( strncmp(R_Strf0.ORDER_ARANGE_NO,"#" ,1) == 0 ) {
/* fseek( F_Strf1, J_Strf1.cnt * J_Strf1.size, SEEK_SET ); /* */
fwrite( &R_Strf0, J_Strf1.size, 1,F_Strf1 );
J_Strf1.cnt++;
} else {
/* fseek( F_Strf2, J_Strf2.cnt * J_Strf2.size, SEEK_SET ); /* */
fwrite( &R_Strf0, J_Strf2.size, 1,F_Strf2 );
J_Strf2.cnt++;
}
}
J_Strf1.max=J_Strf1.cnt; /* 最大件数記憶 */
J_Strf2.max=J_Strf2.cnt; /* 最大件数記憶 */
fclose(F_Strf0);
}
0323デフォルトの名無しさん
NGNG∠'A`>
|∧|
0324デフォルトの名無しさん
NGNGこれをNo.1,2の入力によって、1のときは犬に名前をつけてなかせ、2のときは猫を泣かせたいです。
これをテンプレートを使って行うにはどうしたらよいでしょうか。。
class dog{
string name;
public:
void setname(string n){name = n;}
void naku(){cout <<"U・(エ)・U{"<< name <<"だワン!)"<<endl;}
};
class cat{
string name;
public:
void setname(string n){name = n;}
void naku(){cout <<"(=^エ^=){"<< name <<"だニャ〜)"<<endl;}
};
0325デフォルトの名無しさん
NGNGテンプレートはそういう実行時の多態性の表現に向いていない。
0326デフォルトの名無しさん
NGNGテンプレートよりも抽象基底クラス使った方が
すっきりさっぱりする気がするのだが。
0327デフォルトの名無しさん
NGNGありがとうごさいます。
抽象基底クラスというのが何を指すのかよくわからないのですが、仮想関数でポインタを使う方法などは試してうまくいきました。
実は、テンプレートの使い方がよくわからなかったので、簡単な例題を知りたいと思った次第です。
1、2という振り分けでなくてもかまいわないのですが・・・。
0328デフォルトの名無しさん
NGNGclass animal{
string name;
public:
void setname(string n){name = n;}
virtual void naku() = 0;
};
>324
このクラスをdogとcatの基底クラスにしてdogとcatのnameとsetnameを削除する.
0329デフォルトの名無しさん
NGNGなんかテンプレートというものを誤解しているような
0330328
NGNG>327
抽象基底クラスというのは仮想関数を持っているクラスのことだYO!
0331デフォルトの名無しさん
NGNG普通は純粋仮想関数を持っているクラスのことじゃね?
0332デフォルトの名無しさん
NGNGテンプレートっていうのは基本的にはコードを書くときに楽するためのものだと思えば良い.
int max(int a, int b){
return a > b ? a : b;
}
double max(double a, double b){
return a > b ? a : b;
}
・・・
こういうのをいちいち全部書くより
template<typename T>
T max(T a, T b){
return a > b ? a : b;
}
って書けばこれだけで済むでしょ?って話.
(inlineにしろとか参照で渡せとか突っ込むのはなしでw)
>331
その定義の方が一般的なんですかね?俺勘違いしてたかな?
0333デフォルトの名無しさん
NGNG抽象というからにはインスタンス化できたらまずいから、
少なくとも1つは純粋仮想関数を持たねばならないのでは?
仮想関数 virtual void func() { }
純粋仮想関数 virtual void func = 0;
だよね。仮想関数はインスタンス化できちまう。
0334デフォルトの名無しさん
NGNG純粋仮想関数 virtual void func() = 0;
ですた。俺は使ったこと無いけど。
0335デフォルトの名無しさん
NGNG失礼しました。
今確認したら、「純粋仮想関数を持つクラスを抽象クラスといいます」とありました。
>>332
すみません return a > b ? a : b; のような記述は初めてみたので咀嚼するのに時間をください。
ただ使い方を勘違いしていたことはわかりました。ありがとうございました。
0336デフォルトの名無しさん
NGNG(条件式) ? a : b
これは3項演算子で、条件式が真の場合は a を、
偽の場合は b を返す式です。
return a>b ? a : b;
の場合、 a>b だったら、 return a;
そうじゃなければ return b; という意味です。
0337デフォルトの名無しさん
NGNGおぉわざわざありがとうございます。勉強になります。
今読んでる本のテンプレートの例題がよく理解できなかったので、
無理矢理自分がわかる簡単なコードに置き換えようとしてしまいました。
もっと他の本も読んでみます。
0338デフォルトの名無しさん
NGNGガンガレ。良書を複数読むと、深い理解が得られるよ。
漏れはCからC++に移行するのに、C++の本を6冊読んだ。
0339デフォルトの名無しさん
NGNGCでプログラミングの知識があるなら禿本をきちんと読めばいい。
まぁ普通の本の2,3冊分のボリュームはあるが。
0340デフォルトの名無しさん
NGNG<b><a href="?page101">2</a></b>
<b><a href="?page201">3</a></b>
<b><a href="?page301">4</a></b>
<b><a href="?page401">5</a></b>
↑こういう形の部分を全部消去したいんです。
で、パターンマッチングっていうんですか?
連番の部分の文字列をオールマイティ文字?で表す方法がわからなくて困ってます。
AnsiString Pattern =" <b><a href=\"?page" + "\\***"+"\">"+"\*"+"</a></b>";
StringReplace(HogeHTML, Pattern , "", TReplaceFlags() << rfReplaceAll);
なんか無茶苦茶テキトーですがこんな↑感じでやるんですよね?
環境はBCB6です。
よろしくおねがいします。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGFILE * fp = popen("sed -e 's;<b><a href="\?page[1-4]01">[2-5]</a></b>;;g' some.html", "r");
0343デフォルトの名無しさん
NGNGどうも正規表現の使い方を聞いてるようだが、
そもそもStringReplaceは正規表現には対応してない。
VCLにも正規表現を扱うオブジェクトはあるが、
その辺は専用スレで聞いたほうがよかろう。
0344うみがめ
NGNGXI[sai]というサイコロを転がすゲームを作りました。
コンソールアプリですが、ウィンドウズ依存です。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=31&fi=no
教えていただいた、スペース、名前の付け方、whileなどに気をつけて作りました。
名前で**Suuと個数を表すものだけは分からなくてローマ字です。
Numberとか和英に書いてありましたが、番号という意味のイメージが強くて。
また、直したらよい所があったら教えてください。
0345デフォルトの名無しさん
NGNG>>342
>>343
ありがとうございます。教えていただいたことから再検索して色々知ることができました。感謝。
0346デフォルトの名無しさん
NGNG人様に見てもらうなら、他人が見て一目で分かるようなファイル構成にしろ。
構造体・関数・マクロ他のアウトラインをまとめたドキュメントをつけろ。
そういうところに気が回らない時点ですでにオマエは能無し。ヴォケバカカス。
0348デフォルトの名無しさん
NGNGたしかにtemplateでも多態性のように異なるオブジェクト間で
共通のメソッドを利用したプログラムの共通化が図れるけど、
そもそもの利用の目的は分けて考えるべき。
templateの使い方・考え方という意味では、「C++再考」を一読
することをお勧めします。
http://www.amazon.co.jp/exec/obidos/ASIN/489471776X/249-8101483-3161126
template関連の書籍は「STLの使い方」のような完全に利用者側の立場
がほとんどで、開発者向けのものとしては「Modern C++ Design」の様な
一気に高度な応用編のようなものくらいしかないですが、この本はSTL
が成立した考え方などを順を追って解説しているので、読み物としても
面白いです。
あとはおなじみEffective C++の41項位かな。
0349デフォルトの名無しさん
NGNGドキュメント書くなら doxygen 使ってみー。無料だよ。
0350デフォルトの名無しさん
NGNGプログラミングは完全な初心者です。
現在は、
本を読む→理解できたと思ったら本を見ずにコードを記述 →
→ 失敗したらもう一度読み直し → 成功すれば(゚Д゚)ウマー
という流れで進めていますが、もっとおすすめの本や勉強法などありますか?
>>348
実は今その本の訳者が書いた「これならわかるC++」を読んでいます。
本人のHPで中級書として「C++再考」をすすめていました。
是非読んでみます。
0352デフォルトの名無しさん
NGNGそれでいいから、最後まで通読すること。これが一番大事。
その後は自分で実際にプログラムを組んでみること。
ある程度経験を積んだら「プログラミング言語C++ 3rd」を読むべし。
他の本は要らん(開発環境の参考書は除く)。
その後は、OOP、デザパタ、ジェネ、ULM、なんでも好きな方面に展開すると。
先は長いぞ(w
0353デフォルトの名無しさん
NGNGひじょーに基本的な話で恐縮なんですが、
32bitのLONG型 0xAABBCCDDをファイルに格納すると
ファイルの先頭から DD CC BB AA と格納されるのか
AA BB CC DD と格納されるのか、どちらなんでしょう?
0354デフォルトの名無しさん
NGNGそんなもん環境次第。
0355デフォルトの名無しさん
NGNGなるほど。環境依存ですか。
0356デフォルトの名無しさん
NGNG環境によってはBB AA DD CCという場合もあるそうだ。
0357デフォルトの名無しさん
NGNGバイトオーダーについて調べてみるといい
0358デフォルトの名無しさん
NGNGCC DD AA BB もあり得る。
0359デフォルトの名無しさん
NGNGprintf("0x1b[4;31m");
と記述しても
リターンキーの記号[4;31m
としかでないんですけどどうしてなんでしょうか・・・。
XPです
0360デフォルトの名無しさん
NGNGと書いて、
0x1b[4;31m
と出ない処理系って?
0361デフォルトの名無しさん
NGNG間違えた・・・。
printf("\x1b[4;31m");
でした
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGdevicehigh=%SystemRoot%\system32\ansi.sys
してみたらどうだろう
0365359,361
NGNG0366デフォルトの名無しさん
NGNG基本的には無理。諦めろ。
0367デフォルトの名無しさん
NGNGW2Kのコンソールで確認したが
やはりリターン記号になった。
0368デフォルトの名無しさん
NGNGprintf("x1b[4;31m");
これだとそのまま表示された。
0369デフォルトの名無しさん
NGNGprintf("0x");
printf("1b[4;31m");
printf("\n");
結果↓
0x1b[4;31m
Press any key to continue
これで駄目?
Win2K+Consoleです。
0370359,361
NGNG無理っていうのは環境的に無理ってことなのでしょうか?
ならあきらめます。
>>369
やってみましたデフォルトの白文字で
0x1b[4;31m
が出力されただけでした・・・。
0371デフォルトの名無しさん
NGNG>>363,364は試したのか?
0372359,361
NGNG>>363,364は自分への返信だったんですか・・・。
で、C:\WINDOWS\system32\CONFIG.NT まではいったんですが、
CONFIG.NTが開けないです・・使うアプリケーションわからないんです。
スレ違いですが教えてください
0373デフォルトの名無しさん
NGNGん? エスケープシーケンスを有効にしたいの?
0374359,361
NGNG0375デフォルトの名無しさん
NGNG関係ない行いじってこわすなよ
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG16ビットアプリだったらいける可能性があるんだが。
32ビットの場合はWindowsAPIを使うしかないということかな。
0379デフォルトの名無しさん
NGNG過去スレ読め。
その手の質問は秋田
0380デフォルトの名無しさん
NGNGC言語で
プログラムに外部のプログラムを立ち上げさせるプログラムを作りたいんですが、
(たとえばキーボード入力があったときにemacsが立ち上がるとか)
どのようにすればできるかがわかりません。
どなたか教えていただけないでしょうか?
0381うみがめ
NGNG戻り値の@return、@retvalとかは分かったのですが。
0382デフォルトの名無しさん
NGNG$ man 3 system
以上。
0383デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
using namespace std;
int myfind_first_r_of(const string &strob, const char *pch)
{
int klen = strlen(pch) / 2;
int i, pos = 0, ppos;
char ch[3];
if(klen == 0 || strlen(pch)%2 ) { cout << "指定が違います\n"; return 0; }
for(i=0; i<klen; i++) { // なぜか1度しかループしない
// cout << "klen = " << klen << '\n'; // for()の中でklenを使うと解消する
strncpy(ch, pch, 2);
ch[3] = '\0';
pch += 2;
ppos = strob.rfind(ch);
if(pos <= ppos) pos = ppos;
}
// この時点で klen が 0 になっている
return pos;
}
0384383(続き)
NGNG{
// "012345678901234567"
string ob("あいうえおえういあ");
char str[] = "いあ";
cout << myfind_first_r_of(ob, str) << endl;
return 0;
}
0385デフォルトの名無しさん
NGNGchar ch[4];
0386385
NGNG0387デフォルトの名無しさん
NGNGなんでエスケープシーケンスを使いたいんだ?
Win32 だと Console API で画面の色とかは設定するんだが。
0388383
NGNGch[4]にしても期待通りの16にならないんですが。
0389383
NGNG>386
できました。きづきませんでした。
ありがとうございます。
0390うみがめ
NGNG//! @par 機能:
//! タイマー <br>
//! 登録可能数は16まで(関数内のpiece定数で変えられる)
//!
//! @par 使用例:
//! for ( i = 0 ; i < 10 ; ) <br>
//! if ( Timer ( 1000 , "1秒毎に" ) ) <br>
//! printf ( "%d\n" , ++i ) ;
//!
//! @retval 正 時間がたった 登録の破棄も行われる
//! @retval 0 時間が経っていない 初登録時
//! @retval 負 引数が不正 タイマーをたくさん使っていて登録できない
0391デフォルトの名無しさん
NGNGで、それのどこがC/C++の話題なんだい?
いい加減に引っ込んでろ。
人並みのソースが書けるようになるまでは出入り無用。
0392380
NGNGありがとうございました。
もうすこしsystemについてお聞きしたいのですが、
たとえば
char *eth = "eth0";
system("ifconfig %s", eth);
このような受渡しはできなかったのですが、
こういう事はできないのでしょうか?
0393デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG君が真面目に勉強すればすぐに解決する
自分で調べることを覚えなさい
0396デフォルトの名無しさん
NGNGどのあたりのお話を調べたらよろしいでしょうか?
0397デフォルトの名無しさん
NGNGシェルエクステンション?
0398396
NGNGイメージとしては、対象のファイルを(例えば圧縮のような)加工するアプリに
引き渡すようなことを考えてます。
0399デフォルトの名無しさん
NGNGその程度ならレジストリに書き込むだけだ。
0400デフォルトの名無しさん
NGNG>380よ
char cmd[] = "ifconfig eth0";
system(cmd);
ってのは理解OK?
char *eth = "eth0";
char cmd[256];
sprintf(cmd, "ifconfig %s", eth);
ってのは理解OK?
...ヒントあげすぎ?
VC++6.0使用してDLL読み込みのプログラムを作成したのですが。
いざDLLを作成して起動しようとするとランタイムエラーとなって起動できませんでした。
そこで、デバッグをかけてみるのですがデバッグ上では正常に起動しています。
これは何が原因で起こっているのでしょうか?
因みにDLLは旧バージョンがもう一つあり、それだと正常に起動しています。
なのに新しく作り直したバージョンのものは上手く起動できません。
デバッグのしようがなくて大変困っております。
どなたか御教授願えませんでしょうか。
0402デフォルトの名無しさん
NGNGそら新バージョンのDLLにバグがあるか仕様が変更されているか
要求するランタイムのバージョンがあがっているかだろ。
これ以上はソース見なきゃ誰も何も分からん。
0403名無し
NGNGns2というネットワークシミュレータを使っているものです。
オープンソースでC++で書かれているシミュレータです。
質問したいのは、timeout関数というものがあり、
定期的にパケットを送る関数があるのですが、これに、受信処理を行う関数
recv()関数が存在して、そこで受信するごとに受信パケット数をカウントし、
それを送信側に定期的に送りたいのですが、定期的に送信する関数は、
タイマーがあり、ある時間がたつごとにループしています。
このループの中で、カウントが更新されていく変数received_packetを
呼び出したいのですが、更新された値が呼び出せないのですが、
何かいい方法がありましたら教えてください。
timeout(){
:
:
printf("%d\n",received_packet);
timer.reschedule(inteval); // interval時間ごとに呼ばれる
}
recv(){
received_packet++;
}
上のようなプログラムになっています。
説明不足ならご指摘いただければまた書き込みます。
よろしくお願いいたします。
ソース見せたいのは山々なのですが
バグとなっているDLLのソースはめちゃくちゃ長いんですよ。
何が原因か特定出来次第お見せしたいのですが・・・
何度もデバッグかけてるのですがそれらしいバグに
一切引っかからなくてほとほと困り果てました。
本体の方はまだ仕様変更してませんのでランタイムのバージョンを
上げる必要ないのですが・・なぜなんでしょう?
0405デフォルトの名無しさん
NGNGすまん、意味不明だわ。
質問は日本語でしてくれないか?
0406デフォルトの名無しさん
NGNGいや、だから、DLLがランタイムを必要としてる可能性があるでしょ。
つかDLLのソースがあるならDLLにデバッガかければいいやン。
0407デフォルトの名無しさん
NGNG関数間の関係をグラフで書いてもらった方がいいかね……。
あとライブラリの利用に関する質問は
どこまでがライブラリの部分でどこからが自分で書いた部分なのかも書いてほしい
それはもちろんDLLソースにデバッグかけています。
DLLにバグがあるのは分かっていましたので。
しかし、何も反応ないんですよ。
でも、アプリケーションから実行するとエラーとなってはじかれてしまいます。
>>407
本体もDLLも自作のものです。
エラーは自作DLLがわにある模様なのですが、どこがエラーなのか
デバッガかけても分かりません。
0409デフォルトの名無しさん
NGNG受信側の関数が持っているデータを送信側の関数に引き渡したいという話……なのかなあ
しかし、その変数が
1 recieved_packetは受信関数ローカルな(静的)変数なのか、
2 グローバル変数なのか
3 送信側にあって受信側に(参照で)渡しているのか
書かれていないので指針も立てられない。
ある程度複雑な処理の場合は
変数や関数の関係を簡潔に書いてくれ。
そもそも状況説明で「呼び出せない」とだけ書かれても
呼び出すコーディング方法がわからんのか
コーディングはしたがテスト段階で予想と違った振る舞いをするのか
もしくは並列に動作する環境でもって上手く動かないという話なのか
情報不足でまるでわからん。
それと不適切な指示語や言い換えや省略は
もうキリがないんで技術系MLの質問作法を一度当たってくれ。
0410デフォルトの名無しさん
NGNG>>403みたいな国語力がナガシマシゲオなやつも困るが、
こいつみたいな必要な情報を自分からは提示しようとせずに
「ご教示下さい」ってヤシも困りもんだな。
0412デフォルトの名無しさん
NGNG>いざDLLを作成して起動しようとするとランタイムエラーとなって起動できませんでした。
>そこで、デバッグをかけてみるのですがデバッグ上では正常に起動しています。
>これは何が原因で起こっているのでしょうか?
>それはもちろんDLLソースにデバッグかけています。
>DLLにバグがあるのは分かっていましたので。
>しかし、何も反応ないんですよ。
>でも、アプリケーションから実行するとエラーとなってはじかれてしまいます。
単にパス内にDLLがないだけということはないよな?
バグが起こった時最初はそれだと思って確認したのですが。正常でした。
DLLが正常に読み込まれていました。ということは、DLLのソース内でランタイムエラーの
原因があるようですね。でも何でデバッグに引っかからないんだろう・・・不思議だなあ。
0415デフォルトの名無しさん
NGNGだから、ソース見なきゃ誰にも判らんよ
ソース晒す気がないなら自力で解決しろ
なんとなく張ってみたくなった
http://www.amy.hi-ho.ne.jp/~lepton/program/prog/prog19.html
0416デフォルトの名無しさん
NGNG>でも何でデバッグに引っかからないんだろう
(´-`).。oO(単にデバッガの使い方を知らないんじゃ……)
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGスレじゃなくてサイト
ぐぐればすぐ見つかる
0419デフォルトの名無しさん
NGNGDLL に渡す領域不足なども考えられるぞ。
旧 Ver でも起こり得る潜在バグの可能性もありだな。
DLL はどうやってデバッグしてるんだ?
まさか、デバッグ用の DLL 呼び出し exe を別に作ってないだろうな?
>DLL に渡す領域不足なども考えられるぞ。
>旧 Ver でも起こり得る潜在バグの可能性もありだな。
いまいちイメージわきませんが。検討してみます。
>DLL はどうやってデバッグしてるんだ?
>まさか、デバッグ用の DLL 呼び出し exe を別に作ってないだろうな?
普通にデバッガかけてますんので、自然とそうなるのではないでしょうか?
呼出し用のexeないとデバッゲ出来ませんし。
皆様ご回答いただきありがとうございました。
0421デフォルトの名無しさん
NGNGするためのタグなんですけど、「ダウンロードデータが正しく
ありません」とエラーになってしまいます。
これはやはりファイルに問題があるのでしょうか?
ちなみにメールで送信するとちゃんと聴けます。
どこかおかしいところありますか?
<P>VoVoTau:nude</P>
<P><object data="ファイル位置" type="application/x-smaf" copyright="no" standby="DL">
<param name="disposition" value="devm39z" valuetype="data" />
<param name="size" value="98626" valuetype="data" />
<param name="title" value="Nude" valuetype="data" />
</object><BR>
0422デフォルトの名無しさん
NGNGスレタイ読め。
0423デフォルトの名無しさん
NGNG呼出し用のexeじゃなく、問題となってるexeを使えよ。
両方をデバッグしないと問題が出ないだろ。
>>DLL に渡す領域不足なども考えられるぞ。
>いまいちイメージわきませんが。
文字列末尾の'\0'分の領域が確保されていない、
とかその手のパターンだ。
ありがとうございます。
今後そちらの方面に重点を置き慎重にデバッガをかけてみます。
0425デフォルトの名無しさん
NGNG.NET Framework SDKをC++から使うことはできますか?
0426デフォルトの名無しさん
NGNGmanaged C++ なら可能だけど。
0427デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1014486422
ついでにMSDN
http://www.microsoft.com/japan/msdn/vstudio/techinfo/articles/upgrade/managedext.asp
0428デフォルトの名無しさん
NGNG一時間悩みましたがだめです。
もう寝ます。
0429デフォルトの名無しさん
NGNGおやすみなさい
きちんとしたドキュメントor参考書があれば5分で分かるんだけどね
そういうところには投資を惜しんではいかんよ。
0430デフォルトの名無しさん
NGNGと
#include <iostream>
の違いはなんですか?
0431デフォルトの名無しさん
NGNG<iostream> → 標準
0432デフォルトの名無しさん
NGNGそれっていつからなんですか?
C99?
0433デフォルトの名無しさん
NGNGCじゃねーよ
0434デフォルトの名無しさん
NGNG#include <iostream>だとnamespace stdを指定しないとならない
0435デフォルトの名無しさん
NGNGその言い方だと、「<iostream.h>だと、stdいらなくてイイ。」みたいで嫌だな。
別にstd::付いてもいいと思うけど。
0437デフォルトの名無しさん
NGNGLonghornではWinFXが出てきて、将来的にはWin32APIは
互換性のためにエミュレータ上にのみ残され動作するように
なると聞いたことがあります。
今まで環境非依存のC++を勉強してきて、やっと最近
WindowsプログラミングをWin32APIで勉強し始めたのですが、
普通にWin32APIを使えるようになった頃にはもうWin32APIは
使われていないということになりそうな気もします。
MSの動きを見ていると、Windowsプログラミングの新しい
スタイルを確立しようと、MFCを作り、.NETを作り、ついには
(C or C++)&(Win32API or MFC)主流のスタイルそのものを
捨て去り独自の言語(C#)を作り出して、結局はそれによって
プログラマ側はウィンドウズのシェアの高さに仕方なく新しい
言語の習得を強いられているのが現状だと思います。未だ
C#では他OSでまともなGUIアプリケーションを作ることもできず、
将来的にも、C#のみを習得してしまったらWindowsでしか
プログラミングできないということになりかねない気がします。
だからといってかなりのレベルまでに両方をスキルアップ
するのも荷が重過ぎる気がします。managed C++というものも
ありますが、結局過渡期・移行期間の為に用意したとしか
思えないという部分があります。そもそもC#を作ったこと自体、
Windowsプログラマの確保によるWindowsシェアの確保の
ための策略である気がします。
今はWindowsプログラミングの転換点であると思います。
この時勢に、初心者である私は今から1からWin32APIを
勉強するよりもMSの策略に乗ってC#で.NETの勉強を始めた
方がいいでしょうか?それともまだまだC++でWin32APIを
勉強する価値はありますか?
主観的な意見でも構いませんので、皆様のご意見を聞きたいと思い、
投稿いたしました。よろしくお願いいたします。
0438デフォルトの名無しさん
NGNGお前が何をしたいかだろ?
MSの策略も何も、Windows上で動くアプリが作りたいんだったら、
C++でがんばるなりC#に移行するなりすりゃいい。
MSの姿勢が気に食わんというのなら、とっととLinuxなりMacなりに
移行すりゃいい。
でもな、何のためにプログラム言語を覚えようとしてるんだ?
なにか作りだしたいものがあるからだろ?
ごちゃごちゃ愚痴書いてないで、とにかくなにか作ってみろ。
文句言うのはそれからだ。
0439デフォルトの名無しさん
NGNG<iostream.h> だと
Visual C++ 6.0 ではコンパイルエラーになります。
0440デフォルトの名無しさん
NGNGです
0441デフォルトの名無しさん
NGNGそういうつもりは無いよ。
>>430みたいな質問には、これを真っ先にいうとかなアカンでしょ。
どうせnamespaceなんか知らないんだろうから。
>>436
ヴォケ。質問からちゃんと読め。
0442デフォルトの名無しさん
NGNG私もそういうレベルに達してみたいんですが…
使い分けのノウハウを教えてください
0443デフォルトの名無しさん
NGNG俺も C++ ばかりやってきたけど、C++を捨てて
C#を勉強することにしたよ。C++の求人全然
ないんだもん。Java/C#/ASP/VB、この辺ばかり。
http://www.hellowork.go.jp/
↑自分の地域の状況を確かめてみるといい。
0444デフォルトの名無しさん
NGNG>あえてdeleteを使わず高速化する
ただの邪道
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNGC++の定数の定義は従来の#defineで定義する方法以外に
const intなどで定義することができると書かれていたのですが
皆さんはどちらの方法を使ってますか?
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGhttp://66.102.7.104/search?q=cache:5DyDyF_hcfgJ:www.kab-studio.biz/Programing/PragmaTwice/Main/059.html+const+int+define+%E5%AE%9A%E6%95%B0&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja
0450デフォルトの名無しさん
NGNG#define じゃなく、 const int を使えというのは
stroustrup も言ってたと思うんだけども、
複数のソースで使われる定数に対して
const int を使うと、同じヘッダが使えずに不便だった
記憶がある。
0451デフォルトの名無しさん
NGNG?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNG0455446
NGNGありがとうございました
0456デフォルトの名無しさん
NGNGVC++6.0 でソフト開発しているのですが、アニメーションカーソルを作って
LoadImage() をする際、LR_LOADFROMFILE でファイル指定では問題無く
動作するのですが、リソース読み込みにした場合
NT系=正常動作。
95系=LoadImage() がNULLを返して終了
と言うように上手く動作しません。同じ様な現象で、はまった方いらっしゃい
ますか?出来ればリソース読みの形にしたいのですが、何か解決方法は
あるでしょうか。
0457デフォルトの名無しさん
NGNGおそらくクラスの静的メンバ定数(っていうのか?)の場合も考慮しての発言だと思われる
0458デフォルトの名無しさん
NGNGGetLastError()はなんと言っているのか?
0459デフォルトの名無しさん
NGNGとにかく、Effective C++をお勧めします。
あなたくらいのレベルの方なら、200ページまるまる身になると思います。
0461456
NGNG怪しいアニメーションカーソルは使わない事になりました。
何だか負けた気分。。。(´・ω・`)
0462デフォルトの名無しさん
NGNG考えられるのは
・リソースの追加方法がおかしい
・LoadImage()の引数の指定がおかしい(インスタンス、イメージの種類、リソースIDの指定など)
と言った辺りですが、その辺はどうよ?
っていうか、LoadCursor()じゃダメなのか?
0463r
NGNGclass C {
static bool flag;
public:
static void foo() {
while( flag )
sleep(1);
}
static void setFlag( bool f ) { flag = f; }
};
な、静的なメンバばっかりのクラスがあるとき、
C::foo()を実行するスレッドとC::setFlag()を実行スレッドが違うとして。
foo()は、setFlag()でのflagの値の変更に、反応できますか?
flagに、volatile修飾子は必要?
0464デフォルトの名無しさん
NGNGコンパイラは、sleep(1)の呼出しによってflagの値が変わらないとは判断できないでしょう
。
でも、そのコードで別スレッドからの操作に反応するのは良くないと思います。
flagにvolatile付けるか、while( static_cast< bool volatile& >( flag ) )
とか、別スレッドからの操作に反応することをコード上で表現することをお勧めします。
0465r
NGNGあ、反応できちゃうんだ...
ショボン
つか、会社でそのコードを見つけて、
そのコードをかいた先輩に「これ、ヤバくないですか?」
って突っ込んじゃったんだよな。
んまあいいや、ありがと!
0466デフォルトの名無しさん
NGNGコード直したくないなら、アセンブリ吐かせて確認するのを忘れるなよ。
0467デフォルトの名無しさん
NGNG例えばcalss A を継承した class B をnewで領域確保して、
それをclass Aでキャストして扱う場合、キャスト後のdelete
は正常に行われているのでしょうか?
0468デフォルトの名無しさん
NGNGポインタにキャストしたときの話だよな、もちろん?
class A のデストラクタが仮想ならBのデストラクタが呼ばれる。基本事項だけど。
0469デフォルトの名無しさん
NGNG{ return 12; }
class A
{
public:
A(int a = ::func()) // <---(1)
{
}
void hoge(int a = ::func()) // <---(2)
{
}
};
A a;
a.hoge();
VC++6.0 SP5
上記の(1)の所で
error C2039: '`global namespace'' : '`global namespace'' のメンバではありません。
と出ます。(1)の::を取るとコンパイルが通ります。
なぜエラーが出るのか、なぜ(2)の::は取らなくていいのか謎です。
これはコンパイラのバグなんですか?
0470デフォルトの名無しさん
NGNGBCCだとエラーでないな。
0471デフォルトの名無しさん
NGNG0472469
NGNGありがとうございました。
0473デフォルトの名無しさん
NGNGさっさと .net 2003 買った方が幸せかも。
0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNGtemplate <typename T>
struct foo: public std::unary_function<T, bool> {
result_type f; // (1)
result_type operator()(const argument_type & arg) {} // (2)
};
g++ 3.3.2 で、上記のコードをコンパイルすると、(1)、(2)の所で、
warning: `foo<T>::result_type' is implicitly a typename
warning: implicit typename is deprecated, please see the documentation for details
と、警告が出ます。なので、(1)、(2)の行を以下の様に書き替えてから
typename result_type f; // (1)
typename result_type operator()(const typename argument_type & arg) {} // (2)
コンパイルし直すと、以下の様なエラーが出ます。
尚、(1)、(2)の行は、下のメッセージの5、6行目に相当します。
typename.cc:5: error: parse error before `;' token
typename.cc:6: error: parse error before `operator'
typename.cc:6: error: missing ';' before right brace
これは、私の書き方が間違っているのか、コンパイラのバグか、何が原因なんでしょうか?
0477デフォルトの名無しさん
NGNGstd::unary_function<T,bool>::result_type operator()(
const std::unary_function<T,bool)::argument_type & arg){}
すなおに、bool f; bool operator()(const T & arg) {} に汁
0478デフォルトの名無しさん
NGNG確かにそうすればコンパイルの通るコードになります。
ただ、私が聞いているのはそういうことではなくて、typename result_typeを使うように修正した
コードは間違っているのか、それとも規格の上では正しく、将来的にこのコードがコンパイルされる
ことが期待出来るのか、ということなのですが。
0479デフォルトの名無しさん
NGNGコンパイラの動作をよく考えて見ろ。
std::unary_function<T,bool> は不完全型だから、実体化されるまで result_type が
本当に typename かはもちろんわからない。
……ここまでなら typename キーワードで解決しそうだが、
その基底型の内部で定義されている依存型かどうかすらコンパイラに伝わっていないだろ。
0480デフォルトの名無しさん
NGNGCreateWindow(
"BUTTON",
"BUTTON",
WS_CHILD | WS_VISIBLE ,
0, 0, 80, 20,
hwnd,
(HMENU)1,
(HINSTANCE)GetWindowLong(hwnd, lParam),
NULL
);
このボタンのキャプションを変えるにはどうすればいいでしょうか?
ヒントさえ教えてくれれば後はなんとかします。
環境:VC6.0 WinXP
0481デフォルトの名無しさん
NGNG0483デフォルトの名無しさん
NGNGresult_typeは何も修飾されていないので、foo内部で定義されていなかったとき、
次に探しに行くスコープを決定出来ないということでしょうか。
なんとなくではありますが納得出来ました。ありがとうございました。
std::unary_function<T, bool>::result_typeと書く方法は、同じことを2度書くことになるので、
std::unary_functionの中のtypedefをfooの中に持ってくることにします。
std::unary_functionを継承する目的は単純にtypedefだけなので、今回に限ってはこの方法でも
問題ないかと思います。
0484476じゃないけど
NGNG| 14.6 Name resolution
| 1 Three kinds of names can be used within a template definition:
| The name of the template itself, and names declared within the template itself.
| Names dependent on a template parameter(14.6.2).
| Names from scopes which are visible within the template definition.
テンプレートの定義内で使用可能な名前は以下の 3 種類である。
・テンプレートの名前自身、およびテンプレート自身の内部で宣言された名前
・テンプレートパラメータに依存した名前
・テンプレート定義時点で可視のスコープ内の名前
result_type はこれらのいずれでもないので使用不可能。
で、>>477 みたいにテンプレートパラメータに依存した名前にしてやれば使用可能。
…ってことで OK ですか?
0485デフォルトの名無しさん
NGNGそういうこと。
少し補うと、unary_function に対して与える引数が完全型であれば
(そもそも template でなければ)その記法で問題なく参照できるはず。
それとその種の再宣言には using declaration を使う。
同名の typedef でも構わないけれど。
0486デフォルトの名無しさん
NGNG>>477も本来必要な typename キーワードが抜けている罠。
0487485
NGNGまあ要するに基底のクラステンプレートがその時点で実体化可能なら
その内部で定義されている名前も暗に利用できる、と。
>>484
お、リファレンスサンクス。
蛇足を書くと今の規格では
その時点で型名であることが不明瞭な場合は "typename" が必要と。
#ちなみに依存名について他のたいていの情報は明示的に指示することなく
#利用できるせいで良くも悪くも面白いことになるわけだが……
0488デフォルトの名無しさん
NGNG>>485
using declaration を使う場合ってどうなるんでしょうか。
#include <functional>
template <typename T>
// 1 - gcc 3.3.1 ok / BCC 5.5.1 ok
struct foo: public std::unary_function<T, bool> {
typedef typename std::unary_function<T, bool>::result_type result_type;
typedef typename std::unary_function<T, bool>::argument_type argument_type;
result_type f;
result_type operator()(const argument_type & arg) { return f; }
};
// 2 - gcc 3.3.1 ok / BCC 5.5.1 error
template <typename T>
struct foo2: public std::unary_function<T, bool> {
typename foo2::result_type f;
typename foo2::result_type operator()(const typename foo2::argument_type & arg) { return f; }
};
// 3 - gcc 3.3.1 error / BCC 5.5.1 error
template <typename T>
struct foo3: public std::unary_function<T, bool> {
using typename std::unary_function<T, bool>::result_type;
using typename std::unary_function<T, bool>::argument_type;
result_type f;
result_type operator()(const argument_type & arg) { return f; }
};
0489デフォルトの名無しさん
NGNG// test.h ここからヘッダファイル
export template <class T>
class X
{
private:
int kosuu;
T* ptr;
public:
X(); // コンストラクタ
~X(); // デストラクタ
void show(); // 表示関数
};
// ここまでヘッダファイル
// test.cpp ここから定義ファイル
#include <iostream>
using namespace std;
#include "test.h"
template <class T> X<T>::X(int a) { … }
template <class T> X<T>::~X() { … }
template <class T> void X<T>::show() { … }
// ここまで定義ファイル
0490デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
#include "test.h"
int main()
{
X<double> x;
x.show();
return 0;
}
// ここまでmainファイル
上記の三つのファイルに対して
(1)これらをmake&コンパイルすると次のようなエラーが出る
Error: 外部シンボル 'X<double>::~X<double>()' が未解決
Error: 外部シンボル 'X<double>::X<double>(int)' が未解決
Error: 外部シンボル 'X<double>::show()' が未解決
(2)テンプレートにせずに具体的な型を指定(例えばint型の配列とする)
してやれば正常にmake&コンパイル出来る
(3)三つのファイルを一つにまとめてしまえば(もちろん余分な#include <…>は消して)
正常にコンパイル出来る
という状況です。(2),(3)から分割コンパイルにおけるテンプレートの文法のみが
おかしいのだとわかるのですが、どこを修正すれば良いのかわかりません。
どなたかご指導おねがいいたします。
0491デフォルトの名無しさん
NGNGBorland C++ Compiler を使用しています。
0492デフォルトの名無しさん
NGNGBCCはexportをサポートしてない。
0493デフォルトの名無しさん
NGNG2番目はなんか1番目と宣言の仕方が違ってないか? それじゃスコープ解決演算子付ける意味ないぞ。
3番目は……依存型の場合に using declaration で済ませると implicitly typename になっちゃうな。勘違いしてた。すまん。
>>490
bcc は export 命令に対応するようになったのか?
対応していなければヘッダに定義まで書いておいて inlucde するより他はない。
多重定義の問題はコンパイラ側が解決してくれる。
0494489-491
NGNGexportがサポートされていないコンパイラでは
このような分割は無理ということでしょうか。
そうするとコンパイラを変えるか
ヘッダファイルにまとめて書くしかないのですね。
どうもありがとうございました。
0495デフォルトの名無しさん
NGNGexport は使わないのがいいかと。
0496デフォルトの名無しさん
NGNGソースコードがとても汚くなるんですよね.
こういうとき皆さんどうしてます?(特にヘッダの宣言部分と実装部分の分け方)
0497デフォルトの名無しさん
NGNG2. 1つのヘッダに書く。
のどちらかやね。
0498デフォルトの名無しさん
NGNG実装のヘッダーを別ファイルに分けている方って居ますかね?
boostでたまに.ippって拡張子を目にしたりするんですが・・・
0499デフォルトの名無しさん
NGNGえらく短い脚だな
0500デフォルトの名無しさん
NGNG> 2番目はなんか1番目と宣言の仕方が違ってないか? それじゃスコープ解決演算子付ける意味ないぞ。
foo2 は foo2<T> と同じなのでつければ依存型になって、名前の解決がインスタンス化時点になり、
基底クラスまで見に行くんじゃないかなーと思って試してみました。
| 14.6 6
| (略)
| The keyword typename shall always be specified when the member is referred to using a qualified name,
| even if the qualifier is simply the class template name.
ってなってて、Examples でも typename は必要だとなってますし。
0501デフォルトの名無しさん
NGNGListView1にはvsReportでNUM,NAME,PATHの順にアイテムが入っているのですが、
ListView1->OnSelectItemイベントでサブアイテムの値にアクセスする方法がわかりません。
下のようにやってみたんですが、Strings[n]に何を入れてもNUMが帰ってきてしまいます。
何か勘違いしているでしょうか?
void __fastcall TForm1::ListView1SelectItem(TObject *Sender,
TListItem *Item, bool Selected)
{
Label1->Caption=Item->SubItems->Strings[1];
}
0502デフォルトの名無しさん
NGNGこっち
C++Builder相談室 Part8
http://pc2.2ch.net/test/read.cgi/tech/1070222674/l50
0503デフォルトの名無しさん
NGNGわかりました。
移動します。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGを用意して、各変数x[i]が0≦x[i]≦Max[i]を動くときの処理を考えたいのですが
どのように記述すれば良いのかわからず困っています。
例えばn=2ならば
for(int x[0]=0; x[0]<=Max[0]; x[0]++){
for(int x[1]=0; x[1]<=Max[1]; x[1]++){
f(x[0],x[1]); // ←処理を関数fで表した。 }}
ということです。n=3ならばfor文は三つになります。
これをnを初めに固定せずに書きたいのですが
そのときのforの入れ子(ネスト)の部分の書き方がわからないのです。
cin>>n;
int* ptr_x=new int [n];
int* ptr_Max=new int [n];
for(int i=0; i<n; i++){ cin>>ptr_Max[i]; }
// ここにforの処理を書きたい。
すみませんがどなたか教えていただけないでしょうか。
よろしくお願いします。
0506デフォルトの名無しさん
NGNG開いてよいかわかりません。だれか教えてください。
ダウンロードページ
http://kikyou.info/tvp/
0507デフォルトの名無しさん
NGNGゆでたまごに気をつけろ。
明日はきっと暴落するよ。洗面所が。
0508デフォルトの名無しさん
NGNG#include <iostream>
bool increment_counter(int n, int *counters, int *limits)
{
for(int i = 0; i < n; i++)
if(counters[i] < limits[i] - 1) {
counters[i]++;
return true;
}
else
counters[i] = 0;
return false;
}
bool initialize_counter(int n, int *counters)
{
for(int i = 0; i < n; i++)
counters[i] = 0;
return n != 0;
}
int main()
{
int n;
std::cin >> n;
int *ptr_x = new int[n];
int *ptr_Max = new int[n];
for(int i = 0; i < n; i++) std::cin >> ptr_Max[i];
for(bool cond = initialize_counter(n, ptr_x); cond; cond = increment_counter(n, ptr_x, ptr_Max))
;// use ptr_x
}
0509505
NGNGありがとうございます!
コンパイルしたら希望通りの結果になりました!
といっても実は内容はまだ理解できていないので
これからがんばろうと思います。
本当に助かりました。ありがとうございました。
0510デフォルトの名無しさん
NGNG何をどう入れればよいのでしょうか?
「Specifies an arbitrary-size buffer that contains
the RECT structures that make up the region.」
と説明があるので、RECTのことだとは思うんですが、
それをメンバの
char Buffer[1];
に直す方法が分かりません。
0511デフォルトの名無しさん
NGNGCとC++って、どっちを先に覚えるのが良いでしょうか?
0512デフォルトの名無しさん
NGNGこの先プログラミングをみっちりとやっていくなら
Cからじっくり行ったほうが効率がいいと思います。
0513510と512
NGNG0514デフォルトの名無しさん
NGNGどっちでも。
俺はC++を先にやるべきだと思うが、>>512のような意見も多い。
これだけ意見が割れるのは、どっちでも大差がない証拠かも試練。
0515デフォルトの名無しさん
NGNG正しいようで正しくない。
OOPを学びながら進めていくべきだと思う。
0516デフォルトの名無しさん
NGNG大丈夫な奴は、どんな学び方をしても大丈夫
だめな奴は、どんなやり方をしてもだめ
な証拠。
ここで「学び方」を質問するような奴は、間違いなく後者。
0517デフォルトの名無しさん
NGNG環境依存 OK だから構わないけど、API スレで聞いたほうが回答でやすいんじゃない?
…と思ったが、むしろこっち向きかもしれない。
実は RGNDATA 使ったことないんだけどな。
おそらく不定長のデータを扱うときによく使われる方法だと思われ。arbitrary-size って不定長だし。
Buffer に何か値を設定するわけじゃないはず。
ttp://www.catnet.ne.jp/kouno/c_faq/c2.html#6
/* ↓のように余分な領域を確保しておいて… */
DWORD dwSize = sizeof(RGNDATAHEADER)+sizeof(RECT)*5;
RGNDATA *prgn = malloc(dwSize)
GetRegionData(hrgn, dwSize, prgn);
/* ↓のように Buffer を通してアクセスする */
for(i = 0; i < 5; i++) {
RECT *prc = (RECT*)&prgn->Buffer[sizeof(RECT)*i];
/* 適当に処理 */
}
実際には、dwSize の値は GetRegionData(hrgn, 0, NULL) で取得するらしい。
ttp://techtips.belution.com/ja/vc/0039/
0518デフォルトの名無しさん
NGNGprintfで表示したいのですが
配列を
for ( i = 0; i < 3; i++ ){
printf ( "%d\n", a[i] );
}
とするように
ループで一気に表示する方法はありますでしょうか?
0519デフォルトの名無しさん
NGNGそもそもどうして配列じゃダメなの?
0520デフォルトの名無しさん
NGNG無理。
変数の名前自体が似てようが1文字違いだろうが関係ない。
a, hoge, zzz を printf で(以下略)って言ってるのと変わらない。
0521デフォルトの名無しさん
NGNGちなみに俺なら配列を表示するプログラムを書くプログラムを書いて、それをコピペするね。
それじゃダメ?
0522デフォルトの名無しさん
NGNGない
0523デフォルトの名無しさん
NGNGそこでPHPだよな。
0524521
NGNGその変数を用いて書くプログラムをCで書いて
それの実行結果をソースにコピペするって意味なんだけどわかる?
まさかa0〜a10程度じゃないよな。
それくらい普通に書けよな。
0525デフォルトの名無しさん
NGNGありがとうございました。
配列で実行します。
0526デフォルトの名無しさん
NGNGもひとつCの質問です。
D\test0.text, D\test1.text 〜 D\test4.text
というテキストファイルがあります。
for ( i = 0; i < 5; i++ ){
fp[i] = fopen ( "D\\test[i].text", "w" );
}
という風に一気にファイルを開く方法はありますでしょうか?
エクセルのVBAですと " & i & " で出来たので
こっちはありそうな気がするのですが、どうでしょうか。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG/*読み込み*/
for(tate=0;tate<=kaisu;tate++){
for(yoko=0;yoko<=MAX;yoko++){
gets(moji);
moji[tate][yoko]=atoi(moji);
}
}
for(tate=0;tate<kaisu;tate++){
for(yoko=0;yoko<MAX;yoko++){
printf("%s",moji[yoko][tate]);
printf("\n");
}
}
}
/*ソート*/
for(i=0;i<kaisu;i++){
for(j=i+1;j<kaisu;j++){
if(moji[i]>moji[j]){
temp=moji[i];
moji[i]=moji[j];
moji[j]=temp;
}
}
}
/*表示*/
for(i=0;i<kaisu;i++){
printf("%s\n",moji[i]);
}
return(0);
}
0530デフォルトの名無しさん
NGNG直接fopenじゃなくて
一度ファイル名を文字列にしてから
それをfopenで開くとうまくいくよ
0531デフォルトの名無しさん
NGNG>D\test0.text, D\test1.text 〜 D\test4.text
>というテキストファイルがあります。
>一気にファイルを開く方法はありますでしょうか?
ない。
for ( i = 0; i < 5; i++ )
{
sprintf( filename, "D\\test%d.text", i );
fp[i] = fopen ( filename, "w" );
}
と、ちまちまやれ。
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG#include<stdio.h>
struct syain {
int num[2],sur[2];
char nam[2],hyo[2];
}sya;
int main(void)
{
int i;
for (i = 0 ; i < 3 ; i++)
{
printf("no >"); scanf("%d",&sya.num[i]);
printf("name >"); scanf("%s",&sya.nam[i]);
printf("salary >"); scanf("%d",&sya.sur[i]);
printf("point >"); scanf("%s",&sya.hyo[i]);
printf("\n");
}
printf("no name salary point");
printf("\n");
for (i = 0 ; i < 3 ; i++)
{
printf("%d %s %d %s", sya.num[i],sya.nam[i],sya.sur[i],sya.hyo[i]);
printf("\n");
}
return 0; }
0534533
NGNGスルーで
0535デフォルトの名無しさん
NGNGVC++6.0 で作成したアプリにて、LoadImage()を用いてDLLファイルからIconを取得しています。
Logを解析すると、あるタイミングからNULLが返ってきてしまいアイコンハンドルが取れないそうです。
再現しないためGetLastErrorの内容を取得することもできません。
ちなみに動作環境はXPです。
メモリリーク、リソースリークを起こしていない事はリリース前に確認しました。
どのような要因が考えられるか分かる方いましたらお願いします。
0536デフォルトの名無しさん
NGNGこれがどれだけ信用できるのかね。
それはともかく、メモリ破壊してない?
0537535
NGNGメモリ破壊してないとは断言できないです・・・。
0538623
NGNGcout << "何か入力すると終了します。\n";
cin >> a;
以外で、実行結果を見た後終了する方法ないですか?
VC++6の!ボタンを押して確認する以外の方法で
0539デフォルトの名無しさん
NGNG1.コマンドプロンプトから実行する
2.cin>>a;じゃなくてcin.ignore();を使う
0540デフォルトの名無しさん
NGNGsystem("pause");
0541デフォルトの名無しさん
NGNGどうもありがとうございました。
0542デフォルトの名無しさん
NGNGwindowsで、
外部からある一定の音量を感知したら任意のプログラムをキックする
ようなプログラム
ってどうやって作ったらいいですか?
バックグラウンドで動いてて必要なら別アプリを起動する、とか
あるポートにメッセージを送るとかを行いたいんですが。
0543デフォルトの名無しさん
NGNG「一定の音量を感知」するのはどうやってやるんだ?
0544デフォルトの名無しさん
NGNG方法は知らないが、
DirectX のマニュアルでも読めば分かるんでないかい?
0545デフォルトの名無しさん
NGNG>「一定の音量を感知」するのはどうやってやるんだ?
>マイクを監視すればいいんじゃない?
>方法は知らないが、
そうです。まさにそこが分からないところなんです。
つまり肝心なところがさっぱりで・・・。
とりあえずDirectXのマニュアルを読んでみます。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNGそんな用途ならMMEの方が単純で扱い易いかも。
waveInほにゃららで、全サンプル値をチェック。
0548デフォルトの名無しさん
NGNGVC++.NETで、別ファイルにinline関数を書くことはできませんか?
//function_hoge.cpp
inline void hoge(void)
{
//処理
}
//main.cpp
inline void hoge(void);
int main(void)
{
hoge();
}
外部参照が解決されてないとか言われます。
0549デフォルトの名無しさん
NGNGinline関数はヘッダに書くべし
0550デフォルトの名無しさん
NGNGinlineの意味、解ってる?
0551デフォルトの名無しさん
NGNG外部リンケージとinlineの組み合わせは文法違反です。
後は>>549さんの言われる通り。
但しinline関数はアドレスを取る事ができます。考えて
みれば奇妙な仕様だな。
0552548
NGNGこういうことですか?
//hoge.h
inline void hoge(void);
//hoge.cpp
void hoge(void)
{/*処理*/}
>>550
いちいちコードを呼び出すのではなく、
呼び出されているところに、コードを直接埋め込んでしまうんですよね?
>>551
すみません。ちょっと意味が分かりません。
別ファイルのインライン関数を呼び出せないということ?
>但しinline関数はアドレスを取る事ができます。
えっ、じゃあ、コレが合法?
inline void hoge(void)
{/*処理*/}
int main(void)
{
void (*Phoge)(void);
Phoge = hoge;
Phoge();
}
0553550
NGNGコンパイル時に実体が無いものをどうやって埋め込めと?
Effective C++読め。
0554535
NGNG続きですが、ツールを用いて
ハンドル数・スレッド数・GDIオブジェクト数の数が一定の処理の前後でリークしないことは確認しました。
その他、確認すべき点ありますか?
また、メモリ破壊についてですが、どのように発見できますでしょうか?
どなたかご教授お願いします。
0555デフォルトの名無しさん
NGNG別ファイルのインライン関数は呼び出せないのが基本。但し
多くのコンパイラはinlineにexternがついているとinline化を
やめてしまって通常の関数として扱い、表面上は通って動く
のでややこしい。
上のサンプルのインライン関数のアドレスを取っているのは
内部リンケージを持つ場合は秘かに関数の実体を作ってそ
れを呼び出す。外部リンケージの場合は上記のようにコンパ
イラによって挙動が異なるが原則的に禁止。
0556デフォルトの名無しさん
NGNGC++FAQ第2版に次のような記述を見つけた。(P189)
「inline関数が使われているソースファイルには、そのinline関数
の定義が含まれなくてはいけない。」
つまり基本的には他ファイルのinline関数を呼び出す必要は
なくなるはずなのだ。
0557デフォルトの名無しさん
NGNG問題が起こる環境がXPなの?
0558535
NGNGええ。正確にいいますとエンベデット版で必須コンポーネントのみで構築したXPなんです。
それも現象が発生したのは一度(exeを終了するまでは何度も)きりで再現してくれないんですよ。
ですからLoadImageでNullが返ってきてしまうような状況に陥る要因が教えていただけたらなと思った次第です。
0560デフォルトの名無しさん
NGNG0561デフォルトの名無しさん
NGNG591まで保存してある
0562デフォルトの名無しさん
NGNG質問(or回答)が消えたやしは再質問すればいいかと。
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNG同じコールバック関数を呼び出すイベントが発生した場合というのは
前回呼び出された際の処理が完了していなくても
コールバック関数の処理は走ってしまうんでしょうか?
0565デフォルトの名無しさん
NGNGfgetc() で読み出すのと fputc() で書き込むのではかかる時間は同じでしょうか?
HDD 上の大きいサイズのファイルを扱う場合、読み出しと書き込みの速さに差はないものですか?
同じサイズでも書き換えるよりも単純に読み出すだけの方が速いように思うんですが。
0566デフォルトの名無しさん
NGNGクラスタサイズやOSやハードディスクに大きく依存するが、通常
は書き込みの方がコストが高いと思われ。ファイルサイズが増大
する可能性があるし、その結果ファイルが分断される可能性もあ
る。
シーケンシャルアクセスとランダムアクセスとでも大きく差が出る。
ランダムアクセスは読み書きにほとんど差がないかもしれない。
0567デフォルトの名無しさん
NGNG今までVC++で開発を行って居たのですが
急遽Linuxで開発を行わなければならなくなりました。
それで、全くmakeファイルとか書けないので手も足も出ない状態なのですが
自動的に作成してくれるAutoconfと言うツールを知りました。
それで、
autoscan
autoconf
./configure
までやったのですが、makeファイルが作成されません。
ちなみに、makeしたい対象のファイルは
main.cpp、NET_SET.cpp、header.h、NET_SET.h
です。
どうかご教授ください。
0568565
NGNGお答えありがとうございます。
ファイルサイズを知る簡単な方法として
while (fgetc(fp) != EOF) l ++;
が現実的かどうか疑問に思ったんです。
0569デフォルトの名無しさん
NGNGc言語でlong以上の数を扱うにはどうしたらよいのですか?
1024bitや4096bit超の数をあつかいたいんです。
「bit 自由に設定 c言語」「bit 自分で決める c言語」などを
キーワードとしてぐぐったのですが、
出てきたサイトでは問題が解決しませんでした。
あと、べき乗をするときは^ではだめなのですか?
こちらは、math.hとpowで解決しましたが、
^が駄目な理由がわかりません。
よろしくおねがいします。
0570デフォルトの名無しさん
NGNG処理系に大きく依存。_int64とか_INT64とかlong long int(C99)
が使えないか?
べき乗に^が使えない理由?それは^がCではビット毎のXOR
演算子と定義されているからです。
0571デフォルトの名無しさん
NGNGC++で多倍長クラスを使うと楽。ぐぐったらいっぱい落ちてる。
0572デフォルトの名無しさん
NGNGCならGMPっていうライブラリがある。ぐぐってみれ。
0573デフォルトの名無しさん
NGNGちょっと検索の仕方が経たみたいなのでアドバイス
やりたいことは非常に大きな整数を扱うことだと思います
bitを自由に設定するというのはその解決方法の一例に過ぎません
こういうときは具体的な解決策で検索するのではなく、
やりたいことで検索すればいいと思います
ちなみに「C言語」と検索するよりも「C」のほうがいいと思います
模範検索例
「C 非常に大きな整数」
・ここで「RubyはCと違って組込みの多倍長整数機能があるので,非常に大きな整
数の演算も可能」という情報を入手
自分の求めている機能の名前が「多倍長整数機能」であることを知る
「c 多倍長整数」
・いろんなライブラリにヒット
0574デフォルトの名無しさん
NGNG最初の質問の内容とやりたいことが激しく一致してないと思われ
とりあえず言えることは「そんな方法は現実的ではない」
ファイルサイズが2Gとかだったらどうするんだ?
調べようとしているファイルの格納先がFDDだったり
ネットワークドライブだったりしたら?
0575デフォルトの名無しさん
NGNGfseek(fp,0,SEEK_END);
filesize = ftell(fp);
2G超えるのにも対応したいならシステムコール使え。
0576565
NGNGご指摘ごもっとも。
ローカル HDD 上のファイルを暗号化することを想定していました。
>>575
それ簡単でいいですね。2G はさすがに超えないと思います。
ありがとうございます。
0577デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1078157730/415から来ました。
【宿題】 マウスで操作できるキーボードプログラムを作れ
多分、ボタンを26個くらい配置してボタンを押したら [A]を押したキーボードの
イベントを発生させると思うんですが。
あと、その「キーボードを押した」ということがメモ帳とかに伝えられなかったら
意味ないですよね?
0578デフォルトの名無しさん
NGNG向こうで「環境書け」と言われてるだろ。書け。
0579デフォルトの名無しさん
NGNGWindowsでよろしくおながいします
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGよくわかんないけど、伝えられなかったら意味ないな。
0582569
NGNG「多倍長クラス gmp」で検索してHPを見ていったら問題が解決しました。
また、疑問が出てきたら質問させてください。
お世話になりました。
0583デフォルトの名無しさん
NGNGautoscan とかやってみたけど、手直ししないと無理だと思う。分かりません。
ファイルが 4 つとかなら、autoconf 覚えるよりも、Makefile 書いたほうが楽。
------
target : main.obj NET_SET.obj
g++ -Wall main.obj NET_SET.obj -o target
main.obj : main.cpp header.h
g++ -Wall -c main.cpp -o main.obj
@mkdir -p old/`date +"%y%m%d%k%M"` 2>/dev/null
@cp main.cpp header.h old/`date +"%y%m%d%k%M"/
NET_SET.obj : NET_SET.cpp NET_SET.h
g++ -Wall -c NET_SET.cpp -o NET_SET.obj
@mkdir -p old/`date +"%y%m%d%k%M"` 2>/dev/null
@cp NET_SET.cpp NET_SET.h old/`date +"%y%m%d%k%M"/
clean :
rm -f main.obj NET_SET.obj
------
cpp と、include してる h を一緒に書く。コマンドの行(g++,@ ,rm の行)の先頭はタブ
@ で始まってる行はバックアップつくってるだけ。コンパイル作業とはあまり関係ない。
ちゃんと書こうと思ったら、ttp://www.oreilly.co.jp/BOOK/make/ とかいいと思う。
0584デフォルトの名無しさん
NGNG>ローカル HDD 上のファイルを暗号化することを想定していました。
>2G はさすがに超えないと思います。
明からに越える可能性ありだろ。
0585デフォルトの名無しさん
NGNGTHXです。
ただ、
g++ -Wall main.obj NET_SET.obj -o target
g++: main.obj: No such file or directory
g++: NET_SET.obj: No such file or directory
g++: No input files specified
*** Error code 1
という感じでエラーが出ました。
コードのコンパイルは成功してるっぽいんですが・・・・
0586六拾
NGNG.objを.oにしる。
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGえ〜と、
makeファイルのobjを全てoに変えてみたんですが
それでも同じエラーが出ました。
一部だけ変えるんでしょうか?
0589デフォルトの名無しさん
NGNG典型的 C Programmer's Diseaseハケーン!!
最大値勝手に決めるのハゲシクイクナイ!!!
0590デフォルトの名無しさん
NGNGやっぱり変えてみても
g++ -Wall -c main.cpp -o main.o
g++ -Wall main.o NET_SET.o -o target
g++: main.o: No such file or directory
*** Error code 1
こうなりますね。
0591583
NGNGいったん、make clean するか、手動で obj ファイル削除してから、
手動で
g++ -Wall -c NET_SET.cpp -o NET_SET.obj
g++ -Wall -c main.cpp -o main.obj
g++ -Wall main.obj NET_SET.obj -o target
やるとどう? どこでエラーがでる?
それと、適当に書いちゃったけど、
main.cpp と header.h , NET_SET.cpp と NET_SET.h って組合せでいいの?
あと、ファイルとかディレクトリの書き込み権限とか、基本的なことはわかってます?
ls -l と、ls -d . の出力で確認。
わかってなかったら、http://pc3.2ch.net/test/read.cgi/linux/1079676217/1
0592デフォルトの名無しさん
NGNG手動でやると、何故か上手く行きました。
組み合わせもあってます。
あと、権限はmakeの時だけ一時的にsuユーザーになってるので問題ないはずです。
0593デフォルトの名無しさん
NGNGCXXFLAGS=-Wall
LDFLAGS=
all: build
build: main.o NET_SET.o
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o target
main.o: main.cpp header.h
$(CXX) $(CXXFLAGS) -c -o main.o main.cpp
NET_SET.o: NET_SET.cpp header.h
$(CXX) $(CXXFLAGS) -c -o NET_SET.o NET_SET.cpp
0594デフォルトの名無しさん
NGNGじゃなくて
NET_SET.o: NET_SET.cpp NET_SET.h
0595デフォルトの名無しさん
NGNGmakedepend を使ったほうが楽じゃないかな。
0596583
NGNGmake -n で処理のコマンドが表示されるから、
>>591 と見比べたりとかして、Makefile の書いてみて下さい。
info コマンドで make を調べたり、ネットや本で調べたり
>>593-594 みたいなレスもついてるし。(build: の下の行…)
あと、root 権限での make は危険なのでなるべくやらないほうがいい。
make install とか、そういった絶対に権限が必要な時だけに。
@rm -rf / とか書いてあったりすると、システムごと…
やらなきゃならない時でも、必ず make -n で確認すること。
>>595 makedepend つかったほうが楽なんだろうけど、
とりあえず、いちばん簡単な Makefile の書き方を覚えたほうがいいかと。
まだ、依存関係を把握できなくなるほどのファイル数でもないし。
0597デフォルトの名無しさん
NGNG今になって気づいた。
オブジェクトファイルが指定されていないなw
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGタダで最強!フリーC/C++コンパイラ
http://pc5.2ch.net/test/read.cgi/tech/1035882599/
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNGまさかと思うが、タイピングソフトのノリで
C言語学習ソフトみたいなものを期待してるか?
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGint main(void)
{
while(1)
{
Sleep(100);
//if(kbhit())getch();//バッファにたまらないように 入れても音はなる
}
return 0;
}
上のプログラムで、ただキーを押しただけでジーっと音が鳴ってしまいます。
scanfやfgetsなどの時に、入力のためにキーを押している時も同じ音が鳴ります。
いろんなサイトに乗っている、入力を受け、それを表示するような簡単な
ウィンドウズアプリケーションでは音はなりません。
scanfやfgetsの時は入力したものが使われているのでまだ分かるのですが、
上のプログラムは特に使われていないのに音がなるのがわかりません。
ならなくなる方法があったら教えてください。又はなぜなってしまうのでしょうか。
今まで気づかなかったのですが、パソコンを修理して音が静かになり気づきました。
0606デフォルトの名無しさん
NGNGレスありがとうございます。
色々やってみたんですが
どうやら、出来上がったファイルが
main.o?とか?が付いちゃうのが原因みたいです。
なので、makefileのリンクする場所でmain.o?とやる事で解決出来ました。
ただ、なんだか気持ち悪いのは確かです。
それと出来上がったtargetも?が付いてます。
0607追記
NGNGなんで、今まで気付かなかったんでしょうか(笑
では、どうもありがとうございました。
0608デフォルトの名無しさん
NGNG>ジーっと音が鳴る
これはノイズなの?それともBEEP音(懐かしい…)なの?
0609デフォルトの名無しさん
NGNG音なんかしねーじゃん。
0610デフォルトの名無しさん
NGNG「ジ〜」とか鳴るのかな。
なんにせよあなたのハードウェア固有の現象と思われ。
ちなみにうちのノートはUSBに一定以上の電圧がかかると電源周りが「ジ〜」と鳴く。
0611605
NGNG{
while(1)
;
return 0;
}
何の音なんでしょう。BEEP音ではないけど、>>610さんの電圧音かな。
上のプログラムでも同じ音が鳴るから、CPU率が高いとかが原因なのかも。
0612デフォルトの名無しさん
NGNGやってみたけど何も鳴らないよ。
0613605
NGNGうーん、パソコンが壊れているのかな・・。
パソコン2台あるのですが、起動音が大きいデスクトップのは聞こえないが、
静かなノートのは聞こえるので、どのパソコンでもその音はなっているが、
静かなパソコンで無いと聞こえないと思ったり。
テキストベースのゲームをコンソールアプリケーションで作るのですが、
この音が気になってわざわざウインアプリで作らないといけないと思うと
夜も眠れません。
0614デフォルトの名無しさん
NGNGだったら、getch より低レベルの関数を作ればよい。
実際、昔はそうやっていた。
0615デフォルトの名無しさん
NGNGディスプレイ?スピーカー?CPUファン?電源FAN?
コンソールアプリのみで鳴ると言うことを考えると以下の可能性が考えられる
コンソールで画面を最大化していて、
コンソールの解像度やリフレッシュレートが特殊で、
ディスプレイから音が漏れる
っていうか、もうちょっと詳しくレポートしないと解決できんぞ
コマンドプロンプトとMS-DOSで動作の違いが出るかとか、
WindowsとLinuxで比較してみるとか、いろいろあるんだが名
0616デフォルトの名無しさん
NGNG何の命令も打たずに勝手に音がなるなんて!!
0617605
NGNGインアセとかでやるのかな。探してみます。
>>615
音が鳴る位置は、どこかはうまく説明できないけど、
普通の起動音が鳴る位置と同じです。
コンソールアプリケーションを実行したとき、MS-DOSを実行したとき
共に動作は同じで、通常サイズ、フルスクリーン時も共に同じです。
マシンによるのは、ウィンしか持っていないので分からない。
>>616
ワラタ
0618デフォルトの名無しさん
NGNG念のため複数のマシンで試したけどどれも音せず
君のマシンはマザーボードがちゃちで、音源ボード/チップがノイズがを拾ってるんでしょ
夜も寝られないくらいならPC買い替えな
0619デフォルトの名無しさん
NGNG0620デフォルトの名無しさん
NGNGプログラムを走らせるとCPUとかバスのノイズを
どっかで拾って音が出てしまうだけ。
熟練するとその音で何のプログラムが走っているかを判断できるとかいう
ジョークだかなんだかもあった。
0621デフォルトの名無しさん
NGNG大昔のFM-77でそういう現象があったな。
共有メモリにアクセスすると「ギューギャー」と鳴いた。
0622デフォルトの名無しさん
NGNGカセットテープのピーガー音でMLOADかCLOADかLOADかを
聞き分けてたなぁ。
0623デフォルトの名無しさん
NGNG>インアセとかでやるのかな。探してみます。
アセンブラなぞ使わずとも、ポートを叩くだけで済む筈。
適当にポートをいじれば Windows が勝手にエミュレーション
してくれると思う。
0624デフォルトの名無しさん
NGNGマウスを動かすとぎゅもぎゅも音が鳴ってた。
今はラインを整理してシールドしてやったので静か。
0625605
NGNG>君のマシンはマザーボードがちゃちで、音源ボード/チップがノイズがを拾ってるんでしょ
音が静かで説はまったくの的外れだったのですね。
>夜も寝られないくらいならPC買い替えな
ぐっすり寝ちゃってましたw。
何回も故障しているマシンでもあるから、ホント買い換えたいんですけど。
>>619
ワラ
>>623
勉強になります。探してみます。
>今はラインを整理してシールドしてやったので静か。
うちのでもできるかな。探してみます。
基本的にちゃんとしたマシンなら鳴らないみたいなので、
我慢してそのまま制作を続けます。
お答えいただいた方、ありがとうございました。
0626デフォルトの名無しさん
NGNGFreeBSDでg++で開発を行ってるんですが
>implicit declaration of function `int close(...)'
って出るんですが、close()ってどれをインクルードすれば良いんでしたっけ?
0627デフォルトの名無しさん
NGNGman close で出てこない?
Linux だけど、unistd.h って出てきた。
# 昔 BSD インストールしたけど挫折した。(笑)
0628デフォルトの名無しさん
NGNGおお!THX!です。
unistd.hでした。
0629デフォルトの名無しさん
NGNGfind /usr/include -name '*.h'|xargs grep -wl close /dev/null
close()だとコメントにもマッチしそうだけど、結構この手は使ってる。
0630デフォルトの名無しさん
NGNG日本語のコードについて調べていたら、
MSDNのヘルプは「unicode」=「ワイド文字」、「シフトJIS」=「マルチバイト文字」と言い替えてます。
MSは勝手だ。と思っていたらLinuxのマニュアルでもこのような言い替えをしているんです。
素直に「これはunicodeだ」とか「シフトJISだ」とか呼べば良いのに、意味が分かりません。
それからunicodeからシフトJISには
WideCharToMultiByte()とwcstombs()の2種類があるのですが、
なぜ2種類もあるのですか?
よろしくお願いします。
0631デフォルトの名無しさん
NGNG>MSDNのヘルプは「unicode」=「ワイド文字」、「シフトJIS」=「マルチバイト文字」と言い替えてます。
>MSは勝手だ。
MSが付けたもんじゃねぇだろ。
もっとよく調べろ!タコ!
ワイド文字 → コード長固定
マルチバイト文字 → コード長1バイト以上
と言う違いがある。
ちなみに、
>「unicode」=「ワイド文字」、「シフトJIS」=「マルチバイト文字」
と言う方程式ではなく、それぞれの代表的なコード体系と言うだけの事。
0632デフォルトの名無しさん
NGNGマルチバイト文字⊃シフトJIS
0633デフォルトの名無しさん
NGNGunicodeはワイド文字だけど、ほかに有名なコードが今のところない。
ということなのですね。
MSは勝手だと最初思い込んだのはいろんな人が悪口ばかり言ってるからです…
0634デフォルトの名無しさん
NGNGCPPファイルのトップのほうでヘッダーと共に
定義されている#ifdef_DEBUG
の行って何の為にあるんでしょうか?消したらまずいですか?
デバッグできなくなる とか?
0635デフォルトの名無しさん
NGNG>定義されている#ifdef_DEBUG
>の行って何の為にあるんでしょうか?消したらまずいですか?
そのソースを書いたヤツに聞け。
# ソースに書いてあるのは、何らかの意図を持って人が書いたもの。
# 真偽のほどは書いた人にしかわからない。
## 恐らく、デバッグ用とリリース用を分けるためのものだろうがな。
0636デフォルトの名無しさん
NGNG書いた人ってのが僕なんすよ
つかスケルトンで勝手にかかれちゃうみたいです
要はあってもなくてもOKっていうことですねえ
コメントにしても問題なくコンパイルとデバッグできてます
0637デフォルトの名無しさん
NGNGっていうかプリプロセッサの勉強汁!
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGでは そこにコードかけば
原因不明の解析不能メモリリークもいっぱつ解決ですね
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG困ったときは便利な頭脳でたすけてくーれるー
不思議なネットでたすけてくーれるー
あんあんあん とっても大好き 2ちゃんねらー
0643デフォルトの名無しさん
NGNGC/C++スレとしてすれ違いに成ってしまうが、スマン、漏れにも教えてくれ。
コード長固定ってなんですか?
unicodeって文字のバイトが平仮名で2バイト、漢字で3バイトになったり
可変長ってきいたんだけど
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNGunicodeを内部表現として扱いたいときは、固定長で扱うと便利。
MSでは2バイトで扱うucs2というのが標準的。
4バイトのucs4というのもある。
外部に出力するために長さを圧縮したいときは、
utf-8というフォーマットに変換して可変長にすることが多い。
(日本語が主体だと逆に大きくなることもあるけど)
0647デフォルトの名無しさん
NGNG可変長だとワイドキャラクタにはなりえないので、
その場合は、マルチバイトとして扱うしかないです。
ワイドキャラクタは必ず固定長で、一文字の大きさは環境依存です。
VCでは2バイトです。
ワイドキャラクタで使うキャラクタセットは環境依存です。
VCでは、2バイトユニコードです。
0648デフォルトの名無しさん
NGNGint main(void)
{
printf("\160,%c",128);
return 0;
}
8進法の160と10進法の128は同じですよね?しかしこの場合、違う値が表示されるのはなぜですか?
ご指導お願いします。
0649デフォルトの名無しさん
NGNG>printf("\160,%c",128);
printf("%d, %d", 0160, 128);
のつもりか?
0650デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGオススメな参考書があったら教えてください。
0653デフォルトの名無しさん
NGNGこういうのを見ると、2chなら何でもありだと思ってる馬鹿が増えたとづくづく感じるなあ。
0654デフォルトの名無しさん
NGNGint main(void)
{
printf("\160,%c",128);
return 0;
}
8進法の160と10進法の128は同じですよね?しかしこの場合、違う値が表示されるのはなぜですか?
ご指導お願いします。
0655デフォルトの名無しさん
NGNG犬でもわかるCプログラミング
まぢおすすめ
>>652
スレ違いです。
0657651
NGNGいいから氏ねよクズ
二度と書き込むな。
0658649
NGNG\/ ● 、_ `ヽ ======
/ \( ● ● |つ
| X_入__ノ ミ そんなエサで俺様がクマ――!!
、 (_/ ノ /⌒l
/\___ノ゙_/ / =====
〈 __ノ ====
\ \_ \
\___) \ ====== (´⌒
\ ___ \__ (´⌒;;(´⌒;;
\___)___)(´;;⌒ (´⌒;; ズザザザ
(´⌒; (´⌒;;;
0659デフォルトの名無しさん
NGNG>printf("\160,%c",128);
printf("%d, %d", 0160, 128);
のつもりか?
0660デフォルトの名無しさん
NGNGLSI C-86 試食版使用。windowsXP
#include <stdio.h>
#include <math.h>
void main(void);
void main(void)
{
double x,y;
x = 1.44;
y = sqrt(x);
printf("%f",y);
}
これを実行しようとしてもundefine symbol sqrt_と出て実行できないのは
何がいけないんですか?
0661デフォルトの名無しさん
NGNG0662sage
NGNG分かりやすいように書いただけです。
0663デフォルトの名無しさん
NGNGいらない。
他から呼び出されないから。
0664デフォルトの名無しさん
NGNGsqrt()って、あれ使わなきゃいけないんじゃなかった?
0665デフォルトの名無しさん
NGNGsqrtが入っているライブラリをリンクさせる。
0666660
NGNGリンクは自動的になると書いてあるのですが
0667デフォルトの名無しさん
NGNGint main(void)
{
printf("\160,%c",128);
return 0;
}
8進法の160と10進法の128は同じですよね?しかしこの場合、違う値が表示されるのはなぜですか?
ご指導お願いします。
0668デフォルトの名無しさん
NGNGhttp://www.lsi-j.web.sh.cwidc.net/freesoft/index_2.html
0669デフォルトの名無しさん
NGNGもしかして_lcc.defに-intlib.libなんて書いてない?
0670デフォルトの名無しさん
NGNGじゃね、逆だ、-lmathlib.lib が抜け落ちているとか。
0671デフォルトの名無しさん
NGNG>>670
その通りでした。理解できました。ありがとうございます。
0672デフォルトの名無しさん
NGNGtime_t *nowtime;
time(nowtime);
printf("time---%d\n", nowtime)
って感じで書いたのですが
常にnowtimeは0になってます。
どうすれば今の時間を取得出来るのでしょうか?
0673デフォルトの名無しさん
NGNGね
0674デフォルトの名無しさん
NGNGtime_t nowtime;
nowtime = time(NULL);
printf("time---%d\n", nowtime);
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNGつーかよく落ちなかったな。
あと%dで表示するならnowtimeはintにキャストして渡せよ。
0678デフォルトの名無しさん
NGNG>スマソ
>>>673は俺です。
>書いてるコードではちゃんとやってますw
いや、君、ポインタをまったく理解してないw
0679675
NGNG全然理解してないから
xxx = time(NULL);
ではなく
time(xxx);
という形式で取得できないんだよ。
0680デフォルトの名無しさん
NGNGポインタを返すかどうか知らなきゃポインタ理解してても>>672見たいな事するでしょ
0681デフォルトの名無しさん
NGNGtime()のプロトタイプってどんなんだっけ?
戻り値も、time(HOGE)のHOGEも同じだと俺は思ってたが・・・
どうやら違うようだな
っていうか、
0682デフォルトの名無しさん
NGNGいや、ポインタに関してはあってるだろ
問題は、値の入る場所 だ
0683デフォルトの名無しさん
NGNGtime()の()の中はポインタの値ではなく、ポインタが入るんだぞ?
0684デフォルトの名無しさん
NGNGtime_t t, *nowtime = &t;
みたいになってたら、ちゃんとわかっていると言えるが
その場合「*nowtimeが常に0」とはならず、こんな質問をするわけがない。
0685デフォルトの名無しさん
NGNGtime_t time(time_t *timer);
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGtime()の()の中にアドレスを指定すれば時間を入れてくれると勘違いしたと思われ
で
time_t *nowtime;//ポインタ宣言して
time(nowtime); //ここでアドレスに時間入って
printf("time---%d\n", *nowtime); //アスタリスクつけて値を表示
って考えたんだろ
0688デフォルトの名無しさん
NGNG理解していないのは「ポインタ」ではなく「呼び出し規約(値渡し)」だな。
もちろん、これもどんな入門書にも書いてある。
0689デフォルトの名無しさん
NGNGモチツケ
落ち着いて自分の文章見ると凄く面白い事書いてる事に気づくと思うぞ。
俺は俺だ くらいのノリだ
0690688
NGNGchar *p;に対して
p = malloc(...);
p++;
free(p);
などとしてみたり、
delete p;
でpがクリアされると思ったり、pという変数bェ無効になると試vってしまったb閨B
0691デフォャ泣gの名無しさb
NGNGtime(nowtime);
printf("time---%d\n", *nowtime);
と
time_t nowtime;
time(&nowtime);
printf("time---%d\n", nowtime);
を同じだと思ってると見たw
まぁ、俺が大昔勉強し始めた時に2番目にやった間違いなのだがな
0692デフォルトの名無しさん
NGNG折角だから1番目と3番目がなんだったのか白状し給え。
0693デフォルトの名無しさん
NGNGこれが正解なんだが、こんなのは>>672を見れば一目で分かるはず。
えらくレベルの低い連中が集まってるな。
これも春のせいか?
0694デフォルトの名無しさん
NGNG諸悪の根源はtime_t *nowtime;が何も指し示していないこと(正確には何を指しているのか不定)
つまりtime_tの実体をどこかで宣言しなければならないってこと。
もう一つ、Cの関数の引数の渡され方が分かっていないという考え方も出来る。
両方とも間違っているので、どちらがより分かっていないかでアドバイスの内容が変化する。
>>675=679
関数の値渡しについての言及
>>678
おそらくポインタを宣言しただけでは実体は存在しないと言うことを言いたいのだと思われる
>>682
>>678の発言を「関数の値渡し」という点からみてあっていると判断
実際は>>678といっていることは同じ(ポインタが指しているところが不定という言及)
>>684
実態が存在しないことについての言及
>>691
総まとめ
漏れの視点からだとここに挙げていないレスをしている人たちは
言葉の言い回しから微妙に理解できていない部分があると思われる
0695デフォルトの名無しさん
NGNGおつかれさま。
0696676
NGNG0697デフォルトの名無しさん
NGNGint convert(void);
int doll,pond;
int main(void)
{
printf("換算する数値[ドル]を入力してください: ");
scanf("%d", &doll);
convert();
printf("%d ドルは, doll");
printf("%d ポンドです, pond");
return 0;
}
int convert(void)
{
pond = doll/2;
return pond;
}
1ポンド2ドルと仮定したときの為替換算プログラムを作りたいのですが、
うまく動作しません。
間違えの指摘よろしく。
0698デフォルトの名無しさん
NGNG>間違えの指摘よろしく。
基本も何も、全然勉強せずにソースを書こうとするのが大間違い。
変数、関数、引数、戻値
これらをきっちり勉強すること。
ソースを手直しすることは簡単なんだが、
手直しするのがものすごく虚しいのよ(w
0699デフォルトの名無しさん
NGNGprintf("ドルは=%d",doll);
zyanaika?
学校の授業でLinuxのgccでC歴1年、
C++は林晴比古の本読んで文法が
判るようになったぐらい。
一昨日買ったVC.net2003で
ヘッダファイルをincludeしようとしたら、
どのファイルであろうと「ファイル内で
予期しないEOFが云々…」て怒られる。
なんで?
識者の方、解説きぼん。
0700デフォルトの名無しさん
NGNG勉強のためにソースを書いているんでつが・・・(´・ω・`)
おっしゃる通り、まだまだ勉強が足りてないでつが。
ちなみに独習C第一章の練習問題でつ。
>>699
指摘サンクス。解決しました。
0701デフォルトの名無しさん
NGNGプリコンパイルドヘッダー
0702デフォルトの名無しさん
NGNGstdafx.hを一番上にインクルードしてみ
0703デフォルトの名無しさん
NGNGどうでもいいけど
せめて、printf()の文字列リテラルには改行コード入れようぜ
\nな
0704697=700
NGNGprintf("%d ドルは, doll");
printf("%d ポンドです, pond"); を
printf("%d ドルは, doll\n");
printf("%d ポンドです, pond");に汁!!ってこと?
エスケープ文字は数十ページ先で扱われているので、
697を書いた時点では当然知りませんでした。
っていうレベル。
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG【独習C】猿60【猿C言語教室 part6】
ttp://pc5.2ch.net/test/read.cgi/tech/1080010285/
0708デフォルトの名無しさん
NGNG文字列リテラルも分からんようだし。
意地悪言うつもりはないぞ。>697
うまく行かないと思ったら、問題点が分かるまで何度も読み返すんだ。
それが勉強だ。
0709デフォルトの名無しさん
NGNG○ 間違いの指摘よろしく。
0710デフォルトの名無しさん
NGNG何もincludeしなければビルドできるの?
0711697
NGNGprintf("%d ドルは\n", doll);
printf("%d ポンドです", pond);
で桶?だよな…
一応、>>697は修正→コンパイル→動作確認しますた。
>>706
(・∀・)ノシ
…でも、頭の頭痛がしまつ。
>>707
今度からはそっちのスレも覗いてみまつ。�dクス。
>>708
一応全てのサンプルコードを打ち直ししてコンパイルしてはいるんだけど。
まあ、同じ間違いを2度も繰り返したらそう思われても仕方ない罠。
プログラミングにおいては、ささいなミスも命取りになるし、
今後はさらに注意をはらいたいと思いまつ。
>>709
…どうも。
0712デフォルトの名無しさん
NGNG{ double *p;
int N;
public:
a(int i){
N=i;
p = new double[N]};
};
とかコンストラクターでメモリーを当てた時deleteしなくてもプログラム
終了時メモリーは解放されますか?
0713デフォルトの名無しさん
NGNGうだうだ考えずにデストラクタでdeleteしておきなさい。
0714デフォルトの名無しさん
NGNGついでにコピーコンストラクタも忘れずに定義しておけ。
0715デフォルトの名無しさん
NGNG激しく処理系依存の香りがするが、
WindowsではOKだと言うことは確実だ
だがクラスでそういうことするのは止めておけ
たとえプロセス中にインスタンスが一つしかなかったとしてもだ
0716デフォルトの名無しさん
NGNGdollars, pounds
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGそれに類する間違いを仕事で見つけたから指摘したことがあるのだが、
余計なお世話だと罵倒されて依頼鼻で笑って放置することにしてるんだよ。
0719デフォルトの名無しさん
NGNG俺ならあえて何度でも繰り返し言うな
「あぁなるほど、この人形(?)を半分にすれば、池(?)になる、というわけでつね。」
「で、この人形(?)や池(?)が表示されないのはなぜか、と?」
0720デフォルトの名無しさん
NGNGあれば 変な変数名も変えやすくなるんだが、面倒くさすぎ
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGで、eclipseのCDTって使い物になるの?
ぐぐってみたら JDTではリファクタリングできるけど
それ以外じゃ無理 みたいな情報があったんだけど
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNGどういうつもりで書いたのか理解に苦しむ
0726デフォルトの名無しさん
NGNGどうせ、元々メンバ変数だったのを何らかの事情でグローバルへ持ってきた。
んで、名前直すのが面倒だったからそのままにした
ってとこだろ
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGそんな突っ込みは勘弁・・w
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNGつい正しい綴りで書いてしまって、コンパイルエラーが出るたびに、また溜め息。
探すは serch じゃないぞ。ぼけ。
のろわれろ>creat()って名づけたやつ。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG識別子なんか作った奴が適当に決めた短縮名もいっぱいあるから、いちいち綴りがどうとか気にしてもしょうがないと思う。
>>732 の方法で充分だろ。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG>>691って一緒じゃなかったんだ・・・
え〜と、出来れば解説お願いします。
アドレス指定するのって同じに見えるんですが・・・
0736デフォルトの名無しさん
NGNGポインタ変数を宣言したら、必ず実体を作らなければならない。
C++だったら
time_t *nowtime;
nowtime=new time_t;
こんな感じで・・・
0737デフォルトの名無しさん
NGNGchar型のポインタ型だったら、宣言した時に文字列リテラルを代入して初期化するってのもアリだ。
ちなみに、char str[5];
は
char *(str+5);
と同等だ。
0738737
NGNG宣言の時と関数内での[]は全く別物なので
間違いがないように
0739デフォルトの名無しさん
NGNGなんか、凄く誤解を生む書き方だな。
>>738見ても、全くわからない人からすると>>737は宣言の時に同等のように見えるぞ。
0740デフォルトの名無しさん
NGNGchar str[6];として、str[5];と*(str+5);は同じ。
と書け。
0741デフォルトの名無しさん
NGNGnewで確保した領域をdeleteすると、そのものがなくなってしまうのでしょうか?
deleteした後、同じ変数をnewしたりしたいのですが・・・
というのも、
test(プロセス名) in free(): warning: chunk is already free
とFreeBSDが画面に表示するんで・・・
0742デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGおまえみたいなワカランチンのために>>694氏がちゃんと
整理してくれてるだろうが。
0745デフォルトの名無しさん
NGNGなにを言っているか分からん。
具体的にソースを示せ。
0746デフォルトの名無しさん
NGNGmemset()とかは?
0747デフォルトの名無しさん
NGNG{
pchannel_db = new CHANNEL_DB;
_pchannel_db = new CHANNEL_DB;
}
SYSTEM_SET::~SYSTEM_SET()
{
delete pchannel_db;
delete _pchannel_db;
}
こんな感じで別にnewしたポインタ変数の指すアドレスが何故か一緒になります。
どうすれば良いのでしょうか?
0748デフォルトの名無しさん
NGNGありえない。何か勘違いしているか、別のところに問題があるか。
0749747
NGNG別の場所で、原因はSTLのイテレーターの使用ミスでした。
どうもです。
0750デフォルトの名無しさん
NGNGイテレーターは、insert()すると、どこも指さなくなるのでしょうか?
再びbegin()で指定しないと、Busエラーになりました。
0751デフォルトの名無しさん
NGNGIteratorの賞味期限を過ぎてるな。
0752デフォルトの名無しさん
NGNG普通にラベル貼り替えやってますが何か?
0753デフォルトの名無しさん
NGNG何も入ってないリストでbegin()の位置にinsert()して、イテレーターが1つ後ろにずれ込んだと思われる。
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGSTLのlistなんですが
begin()の位置にinsert()すると、今までその位置にあったデータは自動的に後ろ側に下がってくれますか?
0758デフォルトの名無しさん
NGNGリスト構造において「後ろに下がる」という表現が妥当かどうかはなはだ疑問だが、
答はイエスと言って差し支えなかろう。
何でこんな持って回った表現になるのか疑問に思ったら、リスト構造がどういうものか
勉強してくれ。
STLの基本的なイディオムがまだ飲み込めてないみたいだね。
そういう時は億劫がらず本を読んで基本をきっちり押さえておいた方がいいよ。
0759デフォルトの名無しさん
NGNGTHXです。
なるほど、もう少し勉強してみます。
あと、分からないのですが、erase()すると、そこに入れてある変数を
deleteはしなくて良いのでしょうか?
newで作ったものなんですが・・・
0760デフォルトの名無しさん
NGNGリストに入っているのはポインタかい?
それなら「ポインタが破棄されてもそれが指すインスタンスは破棄されない」。
インスタンスを破棄するなら当然deleteすべし。
0761デフォルトの名無しさん
NGNGC言語の関数として提供された様々なAPIを使う時であるといえる。
また、ポインタのvectorをソートする場合は、C標準のqsort()が威力を発揮する。
というより、algorithmのsort()が使い物にならんし、
その他のアルゴリズムもポインタコンテナでは無力なんだよなぁ。
そんなわけでインスタンスを確保するコンテナ(非vectorでも可)と、
ポインタコンテナ(vector)の2つを併用するのが最強ではないかと思う。
0762デフォルトの名無しさん
NGNG> というより、algorithmのsort()が使い物にならんし、
> その他のアルゴリズムもポインタコンテナでは無力なんだよなぁ。
なんで?
vectorの中身がポインタでも、sortもその他のアルゴリズムも問題なく使えるでしょ?
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG0765761
NGNGスマソ。自己解決。
他のスレに書いた。ここには書かないw
C++相談室 part28
http://pc5.2ch.net/test/read.cgi/tech/1077985164/798
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG必死だなw
0771rino
NGNGVIDE
http://www.objectcentral.com/vide.htm
VIDEでSDIアプリを作ろうと思ったんですが、
Canvasは1つしか表示できないのでしょうか?
少なくともTextCanvasとTextEditorの両方を表示したいの
ですが。
フリーのツールをインストールしたんですが、例が少なくて
かえってむずかしい。。。
0772デフォルトの名無しさん
NGNGそら、さすがにスレ違いだろう。
0773デフォルトの名無しさん
NGNGこのようにint型ポインタを宣言したときに
変数ptrから3という個数を得るにはどうしたらいいでしょうか?
つまりvectorにおけるsize関数に相当するものです。
0774デフォルトの名無しさん
NGNG###
$ ./runConfigureICU CygWin --enable-threads=yes
###
でConfigureした後にmakeするわけですが、
二日間、ずっとビルドできずに悩んでいます。
##########
$ make
rm -rf config/icu-config
/usr/bin/install -c -m 644 ./config/icu-config-top config/icu-config
process_begin: CreateProcess((null), /usr/bin/install -c -m 644 ./config/icu-config-top config/icu-config, ...) failed.
make (e=3): 指定されたパスが見つかりません。
c:\MinGW\bin\mingw32-make.exe: *** [config/icu-config] Error 3
###
MSYSでのビルドが無理そうなので(ビルド中にUnreferenced Errorの嵐)
Cygwinもインストールしたのですが、
CreateProcessがうまくいってないのはわかりそうなものの
どう対策していいものかわかりません。ネットでいろいろ調べる限り
CygWinでのコンパイルは特に問題なさそうな気がしているため
何か解決策はあると思うのですが、いかんせん自分の知恵が限界です。
どなたかヘルプお願いします。
0775デフォルトの名無しさん
NGNGint (*p)[3]=reinterpret_cast<int (*)[3]>(new int[3]);
sizeof(p)はsizeof(int)*3なので、sizeof(p)/sizeof(int)で3が求められる
こんなのじゃだめっすか?複雑っすね…
0776デフォルトの名無しさん
NGNG無理。3を覚えておけ。
0777デフォルトの名無しさん
NGNG{
char moji[10];
moji[0] = "0";
return 0;
}
C言語初心者です。
これをビルドすると
「error C2440: '=' : 'char [2]' から 'char' に変換できません。」
とerrorが出るのですがどこを直せば分かりません。
環境はVisualStudio.NETのVC++のWin32アプリケーションです。
どこが悪いのか教えてもらえると助かります。
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG'0'とすれば解決するでしょう。
"〜"とすると末尾に暗黙的に'\0'が付きます。
0780デフォルトの名無しさん
NGNGありがとうございました。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNGありますでしょうか。
0783デフォルトの名無しさん
NGNGたくさんありますが、どれを使ってもセキュリティーホールになるのでお勧めできません。
自前で作ったほうがまだましと思われます。
0784デフォルトの名無しさん
NGNG0785デフォルトの名無しさん
NGNGWin32APIだけを使って、iniファイルの読み書きは出来ないでしょうか?
0786デフォルトの名無しさん
NGNGGetPrivateProfileうんちゃらとか、WritePrivateProfileうんちゃら。
0787デフォルトの名無しさん
NGNGTHXです。
0788デフォルトの名無しさん
NGNG別の文字列の尻に合体させたいのですが、
どうも上手くいかないので助けてください。
Bufにはなにか適当な文字列が入ってるものとしてみてください。
おねがします。
char Buf[1024],d[10],str[10];
int data[10]={0,1,0,0,1,2,3,0,1,0};
str=sprintf(d,"%d",data[4]);//とりあえず適当に5番目
strcat(Buf,str);
0789デフォルトの名無しさん
NGNGコンパイル時に警告出ないか?
sprintf()の戻り値が何かちゃんと調べれ。
0790デフォルトの名無しさん
NGNG警告じゃなくコンパイルエラーじゃね?
0791デフォルトの名無しさん
NGNG整数の配列を文字列に変換するというのが、具体的にどういった操作なのか判らないので答えようがない。
コードを見る限り、問題を引き起こしているのはsprintfの戻り値を配列に代入しようとしているところだろう。
配列型の変数には代入演算子で直接代入することは出来ない。sprintfの結果は第一引数(この場合はd)に
書き込まれるので、Bufの後ろにdを繋げてやればいい。
0792デフォルトの名無しさん
NGNGchar buf1[256] = "hoge", buf2[256];
int data[10]={0,1,0,0,1,2,3,0,1,0};
sprintf( buf2, "%s%d", buf1, data[4]);
0794デフォルトの名無しさん
NGNGコードを見る限り、問題を引き起こしているのはsprintfの戻り値を
配列の先頭要素へのポインタに代入しようとしているところだろう。
配列の先頭要素へのポインタは左辺値ではないので代入演算子で代入することは出来ない。
仮に左辺値でなかったとしてもstrの型はchar *であり、sprintf関数の戻り値はint型だ。
sprintf関数はその文字列に変換した処理結果を一引数(この場合はd)が指す領域に
書き込むので、Bufの後ろにdを繋げてやればいい。
>>791よすまんな、勝手にフォローさせてもらった
0795デフォルトの名無しさん
NGNG>>791の方が正解に近い
0796デフォルトの名無しさん
NGNG?
0797デフォルトの名無しさん
NGNG>>794じゃありませんけど質問です。
>「配列の先頭要素へのポインタ」という表現は完全に誤り
ということは、正しくはどう表現すればよいのでしょうか。
0798デフォルトの名無しさん
NGNG0799795
NGNG「ポインタ」と言えば、「ポインタ変数」の意味かと思ったが
「アドレス値」という意味でも使われるようだ。
配列名は、「配列の先頭要素へのポインタ」であり、
>>794の表現が正しい。
0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNGの方がよくないか?
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGっていうコンパイルエラーで躓いてるのですが
これはそうやったらなおるでしょうか
拡張子が CPPではなくCのファイルのみこの事象が発生してます
0804803
NGNG要は追加したファイルに対して プリコンパイラを使用するなと
0805デフォルトの名無しさん
NGNGあくまで配列型は配列型であって、場合によってはポインタに変換される、
って考えるほうが、わかりやすくないか?
名前そのものとは限らないから、「配列名」という表現も不自然な気がする。
0806デフォルトの名無しさん
NGNGDOSのコンソール画面でBASICのLOCATEのような、
カーソルを移動させる方法ってあるのでしょうか?
また、文字に色を付ける方法はあるのでしょうか?
よろしくお願いします。
0807デフォルトの名無しさん
NGNG┌──┐. ┌──┬──┬──┬──┬──┐
│ ・───→│ │ │ │ │ │
└──┘. └──┴──┴──┴──┴──┘
な感じがして、違和感を感じる。
0808デフォルトの名無しさん
NGNGDOS エスケープシーケンス
でぐぐれ。ただしWin9x系しか使えないそうだ。
0809デフォルトの名無しさん
NGNGまじっすか。書き込む前にぐぐって、どうもうまくいかないんで
書いたんですけど・・・
Win9x系しか使えないとは・・・。こりゃこまった。
0810デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpfileio/html/_win32_setconsolecursorposition.asp
0811デフォルトの名無しさん
NGNG素人故、つまらない所で躓いています。どうか助けてください。
【 OS 】 WindowsXP HomeEdition SP1
【 コンパイラ 】 Borland C++ Compiler 5.5
【 エディタ 】 BCC Developer
【 内容 】
WinMain()内にてメインウィンドウのハンドルはhwnd、エディットはEdithWndに格納してあります。
エディットの文字数制限を100にしようと思い、SendMessageを投げつけました。
コンパイルも通り、期待した通りに表示されたのですが、
エディットの入力可能な文字数はいくらやってもエディットの右端までなのです。(全角で約17文字)
どこか間違えているのでしょうか。
EdithWnd=CreateWindow( "EDIT",
"",
WS_CHILDWINDOW | WS_VISIBLE | WS_BORDER | WS_TABSTOP,
10,
10,
300,
24,
hwnd,
(HMENU)NULL,
hInstance,
0);
SendMessage(EdithWnd,EM_SETLIMITTEXT,100,0);
v=SendMessage(EdithWnd,EM_GETLIMITTEXT,0,0);// vは int v; と宣言してあります
if(v==100){MessageBox(NULL,"MAMKO","TYMPO",MB_OK);}
// ここ以降にShowWindowやメッセージループを記述しています。
// ちなみに、メッセージループ内はWM_DESTROYのチェックをさせているだけです。
0812デフォルトの名無しさん
NGNG>>788の場合、完全に変換済みの値が関数に渡されるのだが…
>>807
いや、まさしくそれだろう
0813デフォルトの名無しさん
NGNGこれって笑うところ?
0814デフォルトの名無しさん
NGNGエディットコントロールをスクロール可にしないと
ウィンドウサイズ分しか入力できない。
WS_CHILDWINDOW | WS_VISIBLE | WS_BORDER | WS_TABSTOP に
| ES_AUTOHSCROLL を追加しる。
0815デフォルトの名無しさん
NGNG早速のご回答、ありがとうございます。
情報が小出しにならないように自分なりに気を付けていたつもりだったんですが
>>814さんに言われて気が付いた事がありました。
エディットなのですが、「複数行」ではなく「1行エディット」のつもりで書いていました。
ただ「エディット」ではなくて「1行エディット」みたいに書けばよかったですね。
折角ご回答下さったのに申し訳ありませんでした。
0816デフォルトの名無しさん
NGNGchar* p = "abcdefg";
と
char a[] = "abcdefg";
が同じだと思っているんじゃなかろか?
0817デフォルトの名無しさん
NGNG改めて、>>814さんありがとうございました。
0818デフォルトの名無しさん
NGNGおいおいおいおいおいおい、そんな違いは知っててあたりまえ
で、その後pとaはすべての文脈において混同されるのよ
void foo(char *a);と宣言されていたとして、
foo(a);とすれば、
コンパイラは配列の先頭要素のポインタの定数をfoo関数の引数とするわけ
つまり、暗黙のうちに無名のchar *const型の変数が生成され、それが引数として渡されるわけ
結局、pの型はchar *型だし、aの型はchar[]なのだが、
以降、単独でaと書かれるとそれはchar *constなわけ(sizeofが例外と書いたほうが分かりやすい?)
(正確に言えばc++の場合pの型はconst char*なのだが、まあこれはこの話題には関係無しか)
0819デフォルトの名無しさん
NGNG>>816って違うの?
誰か説明お願いします。
0821デフォルトの名無しさん
NGNGTHX!
[]つけると、その場所から任意の数の分だけ領域を確保し
*だと、どこかわからない領域を指すアドレスを格納するって事ですね。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG>コンパイラは配列の先頭要素のポインタの定数をfoo関数の引数とするわけ
>つまり、暗黙のうちに無名のchar *const型の変数が生成され、それが引数として渡されるわけ
この辺からポインタを理解してないということが感じられる。
0825デフォルトの名無しさん
NGNGすまんが教えてくれ、どこが違うのかさっぱり分からん
char str[10]; と宣言されているとき、
式の中では、pは「先頭要素へのポインタ」に読み換えられる。
つまり、pは&p[0]に置き換えられる。&p[0]の型はchar *constだよな?
ちなみに例外は、sizeof演算子のオペランド、文字列リテラルの初期化時、
& 演算子のオペランドの式に出てきたときだ。
この説明が間違っているというやつらは
文字列リテラルの初期化の例外を挙げているが、
それこそ理解していない証拠だろう。
俺の理解が間違っているのならいいんだけど、(むしろスキルを伸ばす絶好の機会だ)
間違っていると言うのなら論拠を出して欲しいものだ。
ISO/IEC 9899:1999からその論拠となる部分を探そうとしたが、
すまんが時間が無くて探せなかった。また今度時間があるときにな。
0826825
NGNG左辺値=変更可能なオブジェクトだと思っていたのが間違いだった
論拠を見つけたのでここに記載する
ISO/IEC 9899:1999 6.3.2.1の3より転載
Except when it is the operand of the sizeof operator or the unary & operator, or is a
string literal used to initialize an array, an expression that has type ‘‘array of type’’ is
converted to an expression with type ‘‘pointer to type’’ that points to the initial element of
the array object and is not an lvalue. If the array object has register storage class, the
behavior is undefined.
0827デフォルトの名無しさん
NGNG○ char p[10]; と宣言されているとき、
だよね?
0829デフォルトの名無しさん
NGNGもう判っているかもしれないが、おまいさんはconstと右辺値を混同していると思われる。
&p[0]の型はchar *constではなくて、char *だ。
このときchar *const(あるいはchar *)型の変数が生成されるわけではなく、
単にchar *型の値(右辺値)が生成されるだけだ。
&&p[0]がエラーになることからもこれが判るだろう。
>>824
Cではアドレスのことを「ポインタ型の値」とも言うと思うが。
0830825
NGNGそういうことですか、分かりました。
ところで、値のうち、左辺値ではないものはすべて右辺値と考えてよいのでしょうか?
左辺値は「Locator value」つまり「オブジェクトを指し示す値」と解釈したのですが、
右辺値は「value of an expression」、つまり「式の値」なわけですよね?
変更可能な左辺値は左辺値のうち配列型でないもの、不完全型でないもの、
const修飾子のないもの、構造体か共用体の場合はそのメンバにもconst修飾子無いもの。
つまり、char p[10];が例外によって置き換えられなかったら変更不可能な左辺値であって、
置き換えられた場合は右辺値になる。という解釈でよいですか?
sizeof(p); // pは変更不可能な左辺値、sizeof(p)は右辺値
strlen(p); // pは右辺値、ついでにstrlen(p)も右辺値
0831デフォルトの名無しさん
NGNG同じシンタックスであっても、配列とポインタでは意味が全く違うのがよくわかる。
ローカル変数だとわかりにくい場合があるので
グローバルに確保した配列要素とポインタ変数経由での出力を比較してみるといい。
char s1[] = "ABCDE";
char *s2 = "ABCDE";
char f1(int n) { return s1[n]; }
char f2(int n) { return s2[n]; }
0832デフォルトの名無しさん
NGNGどのような本を読めばいいですか?
0833デフォルトの名無しさん
NGNGプログラミングWindows
http://www.amazon.co.jp/exec/obidos/ASIN/4756136001/
0834デフォルトの名無しさん
NGNG( ゚д゚)ポカーン
0835デフォルトの名無しさん
NGNG本もあるがまずwebで猫でも嫁。
http://www.kumei.ne.jp/c_lang/
0836デフォルトの名無しさん
NGNGあまりにも基礎的な質問すんな。以下に、模範ソースを示す。
これ以外は一切ありえない。謹んで参考にするように。
#include <stdlib.h>
void main()
{
system("notepad.exe");
}
0837デフォルトの名無しさん
NGNG>>829 じゃないけど。
>ところで、値のうち、左辺値ではないものはすべて右辺値と考えてよいのでしょうか?
基本的にはそれで良いと思います。
ただ、規格を厳密に解釈しようとすると微妙になってくるかも。
そもそも、C の規格上では右辺値は注釈(と索引)にしかでてきませんが、
「式の値」として記述されると書いてある一方で、左辺値は「式」であると
書いてあります。
従って、全ての「値」は右辺値であり、(右辺)値を生み出す式の中に左辺値となる
ものがある(また、6.3.2.1-2 より特定の文脈以外では(右辺)値に変換される)、
という解釈が可能です。
もっとも、6.5.2.3-3,4 には
>The value is that of the named members (...), and is an lvalue
と、値は左辺値である、みたいな表現があるんでなお混乱を呼びますが。
とりあえず、C の範囲内ではオブジェクトを参照しているか否かで左辺値と
右辺値を区別可能でしょう。
ref. ttp://www.embedded.com/story/OEG20010518S0071
なお、C++ では右辺値も規格で定義されており、式は左辺値か右辺値のいずれかだ
となっています。
ところで、ISO/IEC 9899:1999 の変更点のところに
>conversion of array to pointer not limited to lvalues
こんなんがあるんで、旧規格を持ってる人は調べてくれると嬉しいっす。
0838デフォルトの名無しさん
NGNG>>832の要求は「作る」だ。
...ちなみにもれのマシンでnotopad.exeを実行するとEmEditor(free)が起動するのはナイショだ。
0839デフォルトの名無しさん
NGNG^^^^^^^^^^^^^
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNG能登パッドってフリーのソフトでも使ってるとか?
0842デフォルトの名無しさん
NGNGなんてな。
0843デフォルトの名無しさん
NGNGしかし、いつの時代にも例外というものがある。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char buf[256];
sprintf(buf, "copy C:\\windows\\notepad.exe %s.exe", argv[1]);
system(buf);
return 0;
}
0845デフォルトの名無しさん
NGNGみんな、極秘の超ウルテクだぞう!メモの容易を忘れずにネ!
0846デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGこの流れは、>>832の素朴な質問が発端か。
いい加減にしろよ、お前らw
0852832
NGNG0853デフォルトの名無しさん
NGNG...仕様書も議事録もイラン。
0854デフォルトの名無しさん
NGNG...仕様書よ議事録よイラク。
0855デフォルトの名無しさん
NGNG探したのですがいい説明サイトが見つかりません。
どこか知りませんか。ファイルのある場所に移動すらできません。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\3> _| ̄|○
cドライブのcというフォルダのtest.cに行きたいです。
0856デフォルトの名無しさん
NGNGホントにサイト検索したのか?
ぐぐればいくらでもでてくるぞ?
今回だけはサービス
ttp://www.atmarkit.co.jp/fwin2k/operation/command001/command1.html
ttp://mailsrv.nara-edu.ac.jp/~asait/latex/msdos.htm
0857デフォルトの名無しさん
NGNGリストビューコントロールを貼り付けて、レポートに設定した後
LVITEM lvi;
int iItem;
ZeroMemory(&lvi, sizeof(lvi));
lvi.mask = LVIF_TEXT;
lvi.iItem = 0;
lvi.iSubItem = 0;
lvi.pszText = "テキスト";
iItem = SendMessage(hDlg, LVM_INSERTITEM, 0, (LPARAM) &lvi);
lvi.mask = LVIF_TEXT;
lvi.iItem = iItem;
lvi.iSubItem = 1;
lvi.pszText = "テキスト2";
SendMessage(hDlg, LVM_SETITEM, 0, (LPARAM) &lvi);
をcase WM_INITDIALOG:に書いたのですが
追加された文字が表示されません。
何故でしょうか?
0858デフォルトの名無しさん
NGNGコマンドプロンプトの使い方で、ググッたら一番上にそれなり分かりやすいサイトきたが?
おまいは、本当に探したのかと子一時間・・・
つーかどうやって検索したんだ?
まぁ、窓の手とか使うと、コマンドプロンプトが簡単に使えるようになって便利だぞ。
0859デフォルトの名無しさん
NGNGBOOL ListView_RedrawItems( HWND hwnd, int iFirst, int iLast);
つか、単にLVM_REDRAWITEMS飛ばすマクロだが・・・
てーか、これでリドロウかけても表示されないんなら、他のとこまちがってるんじゃね?
まぁ、大抵はリドロウしなくても表示されるんだが・・・。
WP_PAINTでBeginPaint,EndPaint書いてみるとか・・・。
0860デフォルトの名無しさん
NGNGLVS_NOCOLUMNHEADERかListView_InsertColumnってとこかな。
0862デフォルトの名無しさん
NGNGcd c:\c [enter]
というかネタだよな!?
0863855
NGNGおいらはコマンドプロンプトが何のためにあるのか分からないんので勉強してきます。
C言語の手前でつまずいちゃったよ(´・ω・`)
0864デフォルトの名無しさん
NGNGバッチでだけど。
0865デフォルトの名無しさん
NGNG貧乏人の味方、コマンドプロンプト
0866右クリックcd
NGNG[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k \"cd %L\""
[HKEY_CLASSES_ROOT\Drive\shell\cmd\command]
@="cmd.exe /k \"cd %L\""
0867デフォルトの名無しさん
NGNGWindowsXPでLSI-c86 3.30cをつかってます。
コンパイルしたときに"snytax errror near 'end of file'"
と出るんですけどこれは何がいけないんですか?
バイナリファイルを使ったプログラムを作ったら毎回でます。
本を見てプログラムをうつしたので間違ってはいないとおもいます。
教えてください。
0868デフォルトの名無しさん
NGNG「error」もまともに綴れないのか?
0869デフォルトの名無しさん
NGNGエラーメッセージも読めないのか?
0870デフォルトの名無しさん
NGNGオレの予想
・ 本には「この1つ上の行までがプログラムのソースです」って意味で
「end of file」と書いてある
・ >>876は「end of file」もソースの一部だと思ってる
0871870
NGNG0872デフォルトの名無しさん
NGNGコンパイラが'end of file'を一続きの言葉として見るはずはないだろ。
0873867
NGNG#include <stdio.h>
int main(int argc,char *argv[]){
FILE *fp;
char ch;
if(argc != 2){
printf("パラメータの数が違います。\n");
return 1;
}
fp = fopen(argc[1],"r");
if(fp == NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}
while((ch = fgetc(fp)) != EOF){
putchar(ch);
}
fclose(fp);
return 0;
}
なにがいけないいんですかわかりますか?
0874デフォルトの名無しさん
NGNGプログラムの最後の1、2行を見直してみろ。
あるいは括弧や引用符の釣り合いを確認しろ。
それでも分からなければソースをさらせ。
0875デフォルトの名無しさん
NGNG>バイナリファイルを使ったプログラムを作ったら
どう使ったのだろう?
0876デフォルトの名無しさん
NGNGargc[1]をargv[1]にして、最後に改行を入れてみてもだめ?
0877デフォルトの名無しさん
NGNG引数の数で開いてどうすんだw
0878867
NGNG#define NUM 5
int main(void){
FILE *fp;
int test[NUM];
int i,j;
fp = fopen("test1.bin","rb");
if(fp == NULL){
printf("ファイルをオープンできませんでした。\n");
return 1;
}
for(i=0;i<NUM;i++){
fread(&test[i],sizeof(int),1,fp);
}
for(j=0;j<NUM;j++){
printf("%d\n",test[j]);
}
fclose(fp);
return 0;
}
これも同じエラーがでます。test1.binはちゃんとあります。
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNGだめみたいでした。
0881857
NGNGリソースエディタでコントロールを配置する形でやってるんで
プロパティーのNoColumHeaderをTrueにしてみましたが
全く表示されません。
>>859
やっぱり表示されません・・・
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGだめでした。
わざと間違ったコードをかいてみたんですが、
はじめのエラー以外指摘されもしません。
0884デフォルトの名無しさん
NGNGとりあえず、出たエラーはそのままコピペしろ。
0885デフォルトの名無しさん
NGNGsnytax error near 'end of file'
だけです。
0886デフォルトの名無しさん
NGNGコンパイルエラーかリンクエラーなどを示す文字列や行番号などもあるだろ?
あと、「snytax」じゃなくて「syntax」だ。
0888デフォルトの名無しさん
NGNGです。
test3.cは>>878のファイル名です。
0889デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void) { return 0; }
これだけでも出るってことだな。
0890デフォルトの名無しさん
NGNG>>878はtest3.cをコピペしたもの?
改めて打ち直したものじゃ意味無いよ。
と念のため言ってみる。
0891878
NGNGアドバイスくれたかたどうもです。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG読み込めなかったみたいです。
0894デフォルトの名無しさん
NGNG異常終了時に念のため全てのファイルを閉じるつもりで fopen() 前のファイルを fclose() するとエラーが出ます。
これを回避する良い方法があればお教えください。
0895デフォルトの名無しさん
NGNGC++ならクラスでラップする。
Cなら構造体でラップする。
0897デフォルトの名無しさん
NGNG0898894
NGNG宣言と同時にNULLを代入するんですよね。
それも考えたんですがひょっとしたら自分の知らない別の方法があるかと思って。
ちなみに閉じるためにこんな関数を用意しました。
void _fclose(FILE ** fp)
{
if (*fp) {
fclose(*fp);
*fp = NULL;
}
}
これを調子に乗って fopen() 前に使ったらエラーになって困ってたんです。
0899デフォルトの名無しさん
NGNG> これを調子に乗って fopen() 前に使ったらエラーになって困ってたんです。
そういうことする時は、普通
FILE *fp = NULL;
ってやると思うが...。
(fopen() の前って、ファイル開いてない時だし...。)
0900894
NGNGお手数おかけしました。m(_ _)m
0902デフォルトの名無しさん
NGNG>ファイルの文字コードがANSIから
どんな文字コードよ?
0903857
NGNGやってみました。
でもダメでした。
あの、疑問なんですが
その貼り付けたコントロールの名称を指定せずにどうやってそのコントロールにメッセージ送ってるのでしょうか?
ダイアログに複数リストコントロールを貼り付けたらどっちに行くかわかりませんし・・・
指定してるのはWindowハンドルだけですし・・・・
何か指定しないとダメなのでしょうか?
0904デフォルトの名無しさん
NGNGHWND コントロールのハンドル = ::GetDlgItem( ダイアログのハンドル, コントロールID );
0906デフォルトの名無しさん
NGNG悪いことは言わない、プログラマになるのは諦めたほうがいいぞ、きっと・・・。
趣味なら別なもんみつけとけ・・・。
0907デフォルトの名無しさん
NGNG昔は、「lvalue, rvalue の両方を持つ式とrvalueしか持たない式がある」という
ふうに考えたものですが。
++x は lvalue, rvalue の両方を持つ。
x++ は rvalue しか持たない。
lvalue を持つ式は = の左に現れることができる。
lvalue を持つ式は & の被演算子となることができる。
0908デフォルトの名無しさん
NGNG私は >>837 なのですが、
>昔は、「lvalue, rvalue の両方を持つ式とrvalueしか持たない式がある」という
>ふうに考えたものですが。
本来、私もこっち派です。
なので、右辺値⊃左辺値みたいなことを書こうとしたのですが言い回しが…。
また C++ だと
|ISO/IEC 14882:2003 (1998 でも同じ)
|3.10 Lvalues and rvalues
|1 Every expression is either an lvalue or an rvalue.
と、なってましたのでトーンダウンしてしまいました。
「右辺値(左辺値)を持つ式」という表現はいい感じですね。
オブジェクト(代入先)を指す左辺値と、値自体を表す右辺値の二重性をうまく
表現できていると思います。
C++ の場合でも 4.1 Lvalue-to-rvalue conversion 等による左辺値→右辺値の
変換を含めて考えれば、「lvalue, rvalue の両方を持つ式とrvalueしか持たない式がある」
という言い方はできそうです。
>lvalue を持つ式は = の左に現れることができる。
>>826 も書いている通り正確には変更可能な左辺値ですね。
0909デフォルトの名無しさん
NGNGそういうならお前は原因わかるんだな?
同じように何故かわからないんだったら、お前も一緒だぞ?
ちなみに じゃあお前わかるのか? とか言われそうだから先に言っとくが
俺もわからん。
0910デフォルトの名無しさん
NGNG何がどうだめなのか、何も書いてないしな。
0911デフォルトの名無しさん
NGNG0912906
NGNGLPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // 既定の言語
(LPTSTR) &lpMsgBuf,
0,
NULL );
// lpMsgBuf 内のすべての挿入シーケンスを処理する。
// ...
// 文字列を表示する。
MessageBox(NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION);
// バッファを解放する。
LocalFree(lpMsgBuf);
エラーがでてるならこれで分かる。エラーないなら、猫でも分かるをコピペしてできるかどうか確かめるべし。
>>909
まぁ、どっかにソース(プロジェクト?)でもUPってもらわんかぎり、わかんねーよ。
0913デフォルトの名無しさん
NGNG自動メンバ表示みたいな機能ある?
宣言または参照されてる構造体のメンバをタグ名を入力したら選択できるように表示されるとか
参照するヘッダーで定義されている関数や、自分で定義した関数など
「関数名+(」を入力したら引数の型や数が表示されるような機能。
インテリセンスって奴ですけど、もしご存知でしたら教えてください。
お願いします。
0914デフォルトの名無しさん
NGNG>Cのエディターって、例えばマイクロソフトのVisualC++
「VisualC++」はエディタじゃない。
まずは「エディタとは何か?」から調べ直せ。
0915デフォルトの名無しさん
NGNGせっかくだから俺も粘着。
>>>906
>そういうならお前は原因わかるんだな?
>同じように何故かわからないんだったら、お前も一緒だぞ?
著しく論理的思考能力に欠ける人みたいですね。
もしあなたが10代ならしゃべり場に出演されてみてはいかがでしょうか。
番組のレギュラーメンバーと同レベルだと思われますので。
0917デフォルトの名無しさん
NGNGLVM_INSERTCOLUMNで適当なColumn追加。
0918デフォルトの名無しさん
NGNGそこで、質問ですが、たとえば、プログラム中に不要なヘッダファイルが
includeされている場合、その定義をはずすと、メモリやスタックの容量が減るいうことは
あるのでしょうか?
ご存知の方がいらっしゃいましたら、ご教授ください。
0919デフォルトの名無しさん
NGNGヘッダファイルの中でよほど邪悪なことをしていない限りそういうことはない。
0920デフォルトの名無しさん
NGNGローカルででかい配列でも使ってるんじゃないの?
0921913です
NGNG>>914
VisualC++とかについてるエディターって意味でした、すみませぬ。
どのスレに書いたらいいか分からなくて
宜しくお願いします
0922デフォルトの名無しさん
NGNGインテリセンスが必要なら素直にVCで開発しとけ。
0923デフォルトの名無しさん
NGNGDev-c++は構造体のメンバの補完ができる。
0924sage
NGNG今日
Microsoft
Visual C++.NET
Standard Version2003アカデミック
を買ってきて、Service Pack4をダウンロードしたのですが、
ここからどうすれば良いのか分かりません。
ファイルを開くと、
インストールされているWindowsのバージョンは、インストールしようとしている更新に一致しません。
と出ます。
誰か教えてください。
0925924
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG今日
Microsoft Visual Studio.NET 2003
をダウンロードしたのですが、
ここからどうすれば良いのか分かりません。
誰か教えて下さい。
0928デフォルトの名無しさん
NGNG0929927
NGNG0930913
NGNGVC++がいいでしょうか。
インテリセンスって関数の引数なんかもパッと表示されますか?
自分はVBAの経験しかないです。
今cもはじめた所で、入門の本を二冊読みました。
ボーランドのフリーコンパイラを使っていますが、メモ帳で書いてますので
結構めんどくさいというか、ちょっとミスでコンパイラエラーになってしまって。
エディタさえフリーでいいの有ればなあと思ってたんですが・・・
ご返事ありがとうござります。
0931デフォルトの名無しさん
NGNG入門書を読んでるレベルなら、インテリセンス/入力補完機能はいらないから
普通にC/C++対応のエディタをvectorあたりで探して使えばいい。
開発環境を購入するのは入門レベルを脱してからで十分。
>結構めんどくさいというか、ちょっとミスでコンパイラエラーになってしまって。
ちときついこと言わせてもらうと、それならVBAだけやってたら?
入門書のサンプルコードぐらい直打で全部走らせてみる根性がなければ
どうせ身につかないよ。
0932デフォルトの名無しさん
NGNG>入門書を読んでるレベルなら、インテリセンス/入力補完機能はいらないから
いる/いらないを判断するのは>>913だと思うが。
>ちときついこと言わせてもらうと、それならVBAだけやってたら?
>入門書のサンプルコードぐらい直打で全部走らせてみる根性がなければ
>どうせ身につかないよ。
お前はそうかもしれないが、自信満々に断言することじゃないだろ。
俺は個人的には入門レベルでの無駄な努力は排するべきだと思う。
0933デフォルトの名無しさん
NGNGスパークラスに書いたoperator演算子のオーバーライドは
継承クラスでは、明示的に定義しないと使用できないのでしょうか?
例〜
class A
{
public:
int a;
void operator = (int b){ a = b; }
};
class B : public A
{
public:
int dummy;
};
[実行]
B clsb;
clsb = 5; //←この処理はclassAのoparetorが動かないの?
*((A *)&clsb) = 5; //←こんな事すれば呼ばれますがさすがに・・
0934デフォルトの名無しさん
NGNGでも、他の演算子は大体継承されるよ。
0935933
NGNGそうなんですか・・・
継承されるのとされないのがあるんですね orz
本当はoperator newやdeleteの継承なんですけど、
これも継承してないって事はダメっぽいんですね・・
レスありがとうっす〜
ああ・・どうしよう(鬱
0936デフォルトの名無しさん
NGNGをいをい、new/deleteを継承?
コンストラクタ/デストラクタでなく?
0937933・935
NGNG少し説明が足りませんでしたか・・・
でも、operator newって書いたから分かるかと思って・・
さっきの例を改造するなら、
例〜
class A
{
public:
void *p;
void *operator new (size_t size){ p = new(size);return p; }
};
class B : public A
{
public:
int dummy;
};
っていう意味です・・
0938933・935
NGNGoperatorが抜けてた・・orz
void *operator new (size_t size){ p = ::operator new(size);return p; }
訂正しときます。
まぁ、例なんで、どうでもいいけど(;´∀`)
0939デフォルトの名無しさん
NGNG>void *p;
>void *operator new (size_t size){ p = new(size);return p; }
void* operator new(size_t size) { void* p = ::operator new(size); return p; }
じゃだめかな
0940デフォルトの名無しさん
NGNG>少し説明が足りませんでしたか・・・
説明が足りないっつーか用語の使い方を間違ってる
>でも、operator newって書いたから分かるかと思って・・
エスパーの存在を期待しない方がよい
>まぁ、例なんで、どうでもいいけど(;´∀`)
どうでもよくない。一番重要。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGcoutとcinの語源ってなに?
1年Cを勉強してきたが、C++もおもしろそうだな・・。
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGあ、なるほど。
coutは(out)出力って事かw
サンクス!
0946デフォルトの名無しさん
NGNG>>932
まあ、おっしゃる通りなんだけど
マダはじめたばかりで、手動でコンパイルやデバッグ(デバッグといっても多くて50行くらいだし)することには
別に苦じゃないんだ。
ただうっかりミスや自動メンバ表示みたいな機能があったらいいのになぁと思って・・
ベクターでは探してみたんですけど、3つくらいしかなくて紹介だけではあんまりよく分からない。
で、誰かいいの知ってる人いたら教えてもらいたかっただけなんです。
自分がc使いこなせるかどうか分からないし、vc++買って無駄になったらもったいないし
フリーで試してみたかっただけです。
ごめんなさいです。
0948デフォルトの名無しさん
NGNG>ただうっかりミスや自動メンバ表示
「自動メンバ表示」はわかる。「ただうっかりミス」とはどんな機能なんだ?
0949デフォルトの名無しさん
NGNG>ベクターでは探してみたんですけど、3つくらいしかなくて
>紹介だけではあんまりよく分からない。
使ってみれば分かるんじゃない?
0950デフォルトの名無しさん
NGNG{
for (int i = 0; i < cnt; ++i) {
#ifdef BAR
ClassB foo;
#else
ClassA foo;
#endif
foo.put();
//だとかなんだか、諸々の処理
}
}
概ねこげな関数がある。
今はマクロでClassA/ClassBを使い分けてるが、
これをbool barを引き数として渡して動的に使い分けるようにしたい。
なんかいい手はないもんだろか。
0951デフォルトの名無しさん
NGNGClassAとClassBの関係は?
っていうか、素直にオブジェクトを見直したら?
0952デフォルトの名無しさん
NGNGclassAとclassBの間に継承関係はある?
あるのならもちろん仮想関数で解決できる。
今ない場合も共通のインターフェイスを継承するようにすれば解決できる。
これが一番言語的なサポートを受けられて簡単かな。
フリー関数でラップしてそのポインタを利用する。
より高度な枠組みとして簡単な deligate 風の仕組みを作る方法もあるが。
0953デフォルトの名無しさん
NGNG早速の回答THX。
元のソースがcで、ClassAは既存構造体と関数をクラスにまとめたもの。
で、ClassBはそれとI/Fが同じになるように実装した。
となると、>952の共通のI/Fを継承するって線かな。
0954デフォルトの名無しさん
NGNGclass Base {
public:
virtual void put() = 0;
};
class A: public class Base {
void put();
};
class B: public class Base {
void put();
};
Base *p = bar ? new classB : new classA;
p->put();
delete p;
0955デフォルトの名無しさん
NGNG条件演算子内の異なる new 式は
それぞれの記述部分で基底クラスのポインタにキャストしないと gcc-3.2 で警告が出た。
あとは本物のコードで put が例外投げることを気にするなら std::auto_ptr あたりでラップ、だな。
0957950=953=956
NGNGこちらにも感謝。
今回は元がcのコードなのでput()が例外投げるなんて事もないけど、
今後のためにstd::auto_ptrも調べてみるよ。
0958デフォルトの名無しさん
NGNGえーと、例えば行末のセミコロンの付け忘れとか、引数の型が違ったり
全角スペースみたいなのがあったり、
コマンドからコンパイルの命令してるから、エディタでフォーカスが外れるときに
チェックしてくれるとか、改行するときにおかしな所を知らせてくれるとか。
VBAにあるような感じのエディタ
0959デフォルトの名無しさん
NGNG>コマンドからコンパイルの命令してるから、エディタでフォーカスが外れるときに
>チェックしてくれるとか
意味不明
0960959
NGNGエディタのウィンドウが非アクティブになったとき
またはソース編集中に改行したとき、
・ セミコロンのつけ忘れ
・ 引数の型
・ 文字列リテラル以外の全角スペース
をチェックして警告してくれるエディタ
ってこと?
プログラミングもいいけどコミュニケーションの練習もしたほうがいいね。
0961デフォルトの名無しさん
NGNG一応C++で書いているのでここで質問させてください。
質問
完成させたプログラムを他人に見せる・説明する・提出する場合に
どのように体裁を整えるべきでしょうか。
状況としては
・面識の無い他人に説明する
・相手にする人数は数人か、多くとも10人未満
・双方に取って金銭的な利益・不利益は一切生じない
・結果だけではなく(プログラミングの)過程に関しても説明する
いい例かわかりませんが、例えば大学の卒業論文や修士論文などを
提出・発表する際には、論文の他にアブストラクト(要約書)を用意し、
また論文の中身については表紙、目次、はじめに、などを加えるのが
普通だと思います。
あるいはフリーソフトではHelpとread meファイルは大抵付いていると思います。
このようにプログラムのソース以外の部分についての常識といいますか
最低限これだけは付加しておくべき、という項目のようなものがありましたら
是非教えていただけないでしょうか。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG質問,ツッコミが入りそうなところをまとめておいたほうがいいと思う。
どんなプログラムかわからないから、不要、無関係なものもあるだろうけど。
・プログラムの目的、予想される結果、実際の結果
・結果としてデータとか出力するものなら、それの説明と考察
・実行時に与えるコマンドライン引数、もしくは実行中に与える入力例
何か数値を与えるなら想定してる範囲と、範囲外のときの処理
・プログラムのフローチャートみたいなもの
・利用,作成した 関数,変数,クラスなど の(おおまかな)説明
・実行,コンパイルできる環境 (OSとかコンパイラーとか)
・なぜその言語や、出力手段(グラフとかグラフィックとかいったプレゼンの方法)を
選択したのか
・(あっちゃいけないのかもしれないけど、)改善できそうな点
説明とかで↑の内容が抜けてたら、私は質問すると思う。
0964デフォルトの名無しさん
NGNG完成までに要した時間(期間)とか人数なんかも気になる。
>・結果だけではなく(プログラミングの)過程に関しても説明する
ってのに含まれるのかな
0965デフォルトの名無しさん
NGNGこれ要らない。スレ違いの議論回避のため、理由は割愛。
0966デフォルトの名無しさん
NGNG.NETフォームのWindowハンドルを取得するにはどうすれば良いのでしょうか?
メッセージでのやり取りをしたいので・・・
0967デフォルトの名無しさん
NGNGSDKドキュメント読むべし
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclasshandletopic.asp
0968967
NGNGと言うかこんなスレがあります
managed C++ やろうぜ!!
http://pc5.2ch.net/test/read.cgi/tech/1014486422/
0970961
NGNG言われてみれば確かに板違いの内容だったかもしれません。
以後気をつけたいと思います。どうもすみませんでした。
>>963-965
大変参考になりました。
フローチャートは用意する予定だったのですが、必ずしもそれが
良い行為であるとは限らないという感じでしょうか。
ただこれ以上はみなさんの迷惑になりそうなので、後は何とか
自分なりにまとめてみようと思います。
みなさんどうもありがとうございました。
0971デフォルトの名無しさん
NGNG埋めるぞ
0972デフォルトの名無しさん
NGNG6 荒しの定義
保守荒らしや埋め立て、1000取りも無駄にサーバリソースを消費する行為なので、禁止します。
0973デフォルトの名無しさん
NGNGこんなのあったんだ?いつからだろ
0974デフォルトの名無しさん
NGNG少なくとも2004年2月14日(土)12時41分31秒には既に存在していたらしいな
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG時差について勉強しましょう。
0977デフォルトの名無しさん
NGNGかなり最近のルールなんだな。
0978デフォルトの名無しさん
NGNGttp://web.archive.org/web/*/http://www.2ch.net/accuse2.html
0979デフォルトの名無しさん
NGNGJST の方が 9 時間早いんだからあってるんじゃないの?
0980デフォルトの名無しさん
NGNG時差について勉強しましょう。
0981デフォルトの名無しさん
NGNGコンパイラはbcc5.5でOSはWinXPです。
'Winmain'が未解決というエラーを無くすには、どのようにすればよいのでしょうか。
0982デフォルトの名無しさん
NGNGWinMain関数が定義されていないので定義してやればいい。
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
return 0;
}
0983デフォルトの名無しさん
NGNGもう一つ質問してもいいですか?
PSDKをインストールしたのですが、
これをbccで使うにはどうすればよいのでしょうか。
0984デフォルトの名無しさん
NGNG最新のAPIを使うのでなければ、BCC付属のモノを使った方が楽。
ヘッダファイルはともかく、インポートライブラリをcoff2omfとかで変換したり、
作成したりするのはかなりの手間。
0985デフォルトの名無しさん
NGNGコンパイラ bcc32 に -wc オプションをつけてコンパイルする
IDEを使っているなら、ターゲットを
「Windowsアプリケーション (-w)」
から
「コンソールアプリケーション (-wc)」
に変更する
0986デフォルトの名無しさん
NGNGなるほど、凄い量ですしね。
簡単にインポートできるようなソフトでもない限り、
bcc付属のやつを使ったほうがよさそうですね。
ありがとうございました。
0987デフォルトの名無しさん
NGNG986は>>984へのレスです。
>>985
なるほど、オプションを変えてみるのも手ですね。
やってみます。
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGhttp://replay.hypermart.net/okusuri.mpg
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG埋めないの?
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。