【初心者歓迎】C/C++室 Ver.8【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGただしその場合、質問者は必ず、環境を書きましょう。
【初心者歓迎】C/C++室【環境依存OK】
http://pc5.2ch.net/tech/kako/1059/10590/1059041347.html
【初心者歓迎】C/C++室 Ver.2【環境依存OK】
http://pc5.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/ (消滅?)
【初心者歓迎】C/C++室 Ver.5【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1077102238/ (html化待ち)
【初心者歓迎】C/C++室 Ver.6【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1082182233/l50
【初心者歓迎】C/C++室 Ver.7【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1086373839/l50
【ラウンジ】質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0153デフォルトの名無しさん
NGNG描画コマンドはメタファイルとして保存できる
描画結果だけならDIBセクションとか使ってDIBにBltすればいい。
0154151
NGNG実は、リアルタイム通信じゃ無かったりします
クライアント1が描いてる間、他のクライアントは絵の内容を見れません
イメージとしては
C1が絵を描く→描き終わったらSへ画像データを送信→C2が画像を見る
※C・・クライアント S・・サーバ
なので、絵を見たり描いたり出来るのは同時に1人だけです
>>153
メタファイルというのは初耳です
DIBセクションというのは、BitBltみたいな感じなんでしょうか
ちょっと調べて見ます
どうもありがとうございました
0155151
NGNG0156151
NGNGどーしてもわからないので、ちょっと現在のソースをUpしてみます
ttp://gamdev.org/up/img/980.zip
結局どこに画像のデータが入ってるのかわからずじまいです・・・
何かアドバイスをお願いします
0157デフォルトの名無しさん
NGNGlpBMP
0158デフォルトの名無しさん
NGNG空のフォルダを削除するにはどうしたらいいのでしょうか?
googleで検索してもなかなか見つからず、
やっとサンプルコードが見つかったと思ったら、ないヘッダがインクルードしてあって
結局分かりませんでした。
0159デフォルトの名無しさん
NGNGないヘッダって何?
0160デフォルトの名無しさん
NGNG環境書けやコラ
0161デフォルトの名無しさん
NGNGsuperのようなのはないんですか?
0162デフォルトの名無しさん
NGNGC++なら,
#include <cstdio>
int main () {
std::remove("hoge");
return 0;
}
Cなら,
#include <stdio.h>
int main () {
remove("hoge");
return 0;
}
とか.hogeはパスです.
0163151
NGNG言われた通りにデータ構造体に void* lpBMPを追加して
直接RGBの値(輝度?)を設定して画面全体が水色になったサーバ上の絵を
クライアントに送りました
[クライアントのデータ受信](データ受信時に画像作成)
hBitmap = CreateDIBSection(NULL, &bmi, DIB_RGB_COLORS, &g_RcvPictureData.lpBMP, NULL, 0);
こんな感じにしてみたんですが、残念なことにクライアントでは画面真っ黒な状態です・・・
サーバでは水色になってるんですが
lpBMPだけじゃダメなんでしょうか・・・
うーむ・・デバイス独立ビットマップっていうぐらいだから、DCに依存しないと思うんですが
謎です・・・困った
0164デフォルトの名無しさん
NGNG158ではないが、今のremoveはフォルダ/ディレクトリを消せるのか。知らなかったよ。
0165デフォルトの名無しさん
NGNGポインタじゃなくて中身をコピーしろよ
0166151
NGNG中身・・・ですか
サーバ側では送信データのlpBMPに対して
((char*)g_SndPictureData.lpBMP)[offset+2] = 127;
このように直接値を入れて、これをそのままクライアントに送ってるのですが
これだと中身は送られてないんでしょうか・・・
0167162
NGNGLinuxのmanによると,
>remove deletes a name from the filesystem. It calls unlink for files,
>and rmdir for directories.
と書かれています.
標準ライブラリなのでたぶん158の環境でも大丈夫だと思うんですけどね.
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGremoveは標準ライブラリじゃねーよ
0170デフォルトの名無しさん
NGNGhttp://66.102.7.104/search?q=cache:EXoeqkMCCkcJ:docs.hp.com/ja/B2355-60104-07/remove.3C.html+remove+ANSI+C&hl=ja&lr=lang_ja&inlang=ja
0171デフォルトの名無しさん
NGNGhttp://66.102.7.104/search?q=cache:aK3AwFixgYsJ:www.st.rim.or.jp/~phinloda/cqa/cqa13.html+remove+ANSI+C&hl=ja&lr=lang_ja&inlang=ja
0172デフォルトの名無しさん
NGNG----------------------------------------------------------
169 名前:デフォルトの名無しさん[sage] 投稿日:04/08/06 03:58
>>167
removeは標準ライブラリじゃねーよ
----------------------------------------------------------
0173デフォルトの名無しさん
NGNG少なくともLSI-Cや古いMS-Cでは消せなかった
0174162
NGNGじゃ,その可能性も考慮してboostで.
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
int main () {
boost::filesystem::path dir ("hoge");
boost::filesystem::remove (dir);
return 0;
}
0175デフォルトの名無しさん
NGNGWindowsならwinodws.hのRemoveDirectory
0176デフォルトの名無しさん
NGNG対象がディレクトリならrmdir()を呼ぶように実装するのが当たり前だろ?
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGBCCらしい。けどここはBCCスレでもないしWin32APIスレでもないが。
http://pc5.2ch.net/test/read.cgi/tech/1090180012/872-875n
0179デフォルトの名無しさん
NGNGばかはおまいだろ、屁理屈野郎
空のフォルダを削除するプログラムを書くのは
環境に依存しないよ
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGバカ晒しage
0182デフォルトの名無しさん
NGNGlibc5 removeで検索しれ池沼
0183デフォルトの名無しさん
NGNG環境依存だと判ってるなら環境が何か書けよ。
0184デフォルトの名無しさん
NGNG#include <stdio.h>
main(void)
{
int i;
char math;
printf("計算したい加算乗除を選択してください。\n足し算:A\n引き算:B\n掛け算:C\n割り算:D\n");
gets(math);
if (math = "a"){
printf("足し算をします。\n");
}
else {
printf("その他の計算を行います。\n");
}
return 0;
}
今はif文のテストとしてメッセージだけを表示されるように組んでます。
何故だか分からないんですけどエラーが出るんです。
どうすればいいのか、どなたか教えていただけませんか?
0185デフォルトの名無しさん
NGNGコンパイルが出来ないのか、実行時エラーなのか、エラーメッセージ書け、ヴォケ
>char math;
>gets(math);
getsの引数はchar *型を指定する。gets(&math)にすればコンパイルは通る、が実行時にアボン
>if (math = "a"){
文字列定数"a"はchar *型、char型のmathとは比較できない。
Cで文字列を比較するならstrcmpを使う。
char math[BUFF_SIZE];
とかにすれば、BUFF_SIZE-1文字までの入力なら動く。
どうでもいいが、入力を促すメッセージでは大文字の"A"なのに、
小文字の"a"との比較で良いのか?
0186デフォルトの名無しさん
NGNG裏画面つくってそこに描画してる…?
つくってるだけで終わってませんよね。
//裏画面Bitmap作製
DWORD *lpBMP;//画素データへのアドレス
HDC hBackDC=CreateCompatibleDC(NULL);
char bmbuf[sizeof(BITMAPINFOHEADER)];
BITMAPINFO &bi=*(BITMAPINFO*)&bmbuf;
BITMAPINFOHEADER &bih=bi.bmiHeader;
ZeroMemory(&bi.bmiHeader,sizeof(BITMAPINFOHEADER));
bih.biSize=sizeof(BITMAPINFOHEADER);
bih.biWidth=width;//ウィンドウ幅
bih.biHeight=-height;//ウィンドウ高さ
bih.biPlanes=1;
bih.biBitCount=32;
HBITMAP hBitmap=CreateDIBSection(NULL,(BITMAPINFO*)&bih,DIB_RGB_COLORS,(void**)&lpBMP,0,0);
ZeroMemory(lpBMP,sizeof(DWORD)*width*height);
SelectObject(hBackDC,hBitmap);
//描画は全部裏画面へ
TextOut(hBackDC,x,y,str,lstrlen(str));
//WM_PAINT等の最後では裏画面を表に転送
//hDCは表画面のデバイスコンテキスト
BitBlt(hDC,0,0,width,height,hBackDC,0,0,SRCCOPY);//裏画面→表画面にコピー
転送するのは裏画面ビットマップ全体。
画素データだけならlpBMP〜lpBMP*(DWORD)*width*heightに全部入っている。
0187デフォルトの名無しさん
NGNGif (math = "a"){
→if (math == "a"){
ってオチですか…?
比較は「==」ね。
0188デフォルトの名無しさん
NGNG185が大量に突っ込んでました…。
0189デフォルトの名無しさん
NGNGレスありがとうございます。
エラーは
「error C2664: 'gets' : 1 番目の引数を 'char' から 'char *' に変換できません。 (新しい機能 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。」
と
「error C2440: '=' : 'char [2]' から 'char' に変換することはできません。(新しい動作 ; ヘルプを参照)
この変換には reinterpret_cast, C スタイル キャストまたは関数スタイルのキャストが必要です。」
です。
ちょっと分からないんですけどchar *型って何ですか?
大文字のAと小文字のaは普通に間違えてました。指摘どうも。
>>187
比較ってしたとすると具体的にどんな事をするんですか?
0190デフォルトの名無しさん
NGNG>ちょっと分からないんですけどchar *型って何ですか?
いくら初心者歓迎とはいえ…
char型へのポインタを格納する型。
Cには「文字列型」はないので、charに文字を格納し、
charの配列で文字列を扱う。
0191デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
main(void)
{
int i;
char math;
printf("計算したい加算乗除を選択してください。\n足し算:A\n引き算:B\n掛け算:C\n割り算:D\n");
do {
math = getch();
switch (math) {
case 'A' :
printf("足し算をします。\n");
break;
case 'B' :
printf("引き算をします。\n");
break;
case 'C' :
printf("掛け算をします。\n");
break;
case 'D' :
printf("割り算をします。\n");
break;
}
} while (math != 'A' && math != 'B' && math != 'C' && math != 'D');
return 0;
}
0192デフォルトの名無しさん
NGNG勉強不足だったようです。
出直してきます。
ご迷惑おかけしました。
0193デフォルトの名無しさん
NGNG作り直していただき、ありがとうございます。
でも、192で書いたとおりです。
すいませんでした。
0194デフォルトの名無しさん
NGNG引き算の立場は?
0195デフォルトの名無しさん
NGNG加算で負数を指定させることで対応。
0196デフォルトの名無しさん
NGNG0197151
NGNGサーバでもクライアントでも、裏から表へBitBltしてます
サーバから送るのは、(void**)&lpBMP 画素データと
HBITMAP hBitmap これでしょうか
↑これが裏画面ビットマップ?
0198デフォルトの名無しさん
NGNGアドレス渡しても意味無いんだよ、Cからやり直して来い。
送るべきデータは
lpBMP〜(lpBMP+((width+3)&~3)*height)
0199デフォルトの名無しさん
NGNG-1
0200デフォルトの名無しさん
NGNGC++にさっさと移行したほうがいいんでしょうか?Cの一通りの知識は頭に入ってるとは
思います。テクニックはほとんどないですが。
できればCからのC++への移行に最適な参考書を紹介していただければ幸いです。
0201デフォルトの名無しさん
NGNGとりあえず猫でも読んどけ。
0202デフォルトの名無しさん
NGNG0203158
NGNG<環境>
WindowsXP
BCC5.5
です。
>>159
標準でついてきてないヘッダで、
DLしたサンプルにもついてないヘッダです。
>>178
BCCスレに行こうかと思ったところ、このスレの【環境依存OK】が目に入ったもので。
>>162,>>174,>>175
ありがとうございます。
試してみます。
0204デフォルトの名無しさん
NGNGプログラムをコンパイルしようとしたら、
「インクルードファイルxxx.hをオープンできない」というエラーが発生しました。
A. コマンドラインコンパイラのパスが設定した後、
インクルードファイルやライブラリファイルの場所を指定したBCC32.CFGを作成しなければなりません。
これは、List 4のようなファイルです。
List 4 BCC32の設定(BCC32.CFG)
-IC:\Borland\Bcc55\Include
-LC:\Borland\Bcc55\Lib
コマンドラインコンパイラは、コンパイルが成功すると自動的にリンカ(ILINK32)を呼び出します。
場合によっては、リンカを明示的に呼び出すことがあります。
この場合は、同様にILINK32.CFGファイルを設定してください。
また、BCC32.CFGやILINK32.CFGには、これ以外にもコンパイラやリンカに設定するオプションをあらかじめ指定できます。
このファイルはbinのディレクトリの中に作ればいいんですよね。
普通にテキストファイルじゃダメっすか?
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG以前にc言語をダウンロードした時にもpathを通すために
path=%path%;c:\progra~1\networ~1\mcafee~1c:\lsic86\binのパスや
ジャバのパス
path=c:\windows;c:windows\command;c:\j2sdk_nb\bin
などをms-dosに書き込んであるのですがそれが影響を及ぼしたりしますかね?
0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNGC言語環境で貴様の使っている、リストとかハッシュテーブルとかのライブラリを教えてくれ。
やっぱ、俺様ライブラリなん?
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNGそれのどこがCなんだよ
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGそれのどこがCなんだよ
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGCがない。だからなんだ。
0215デフォルトの名無しさん
NGNGBCC32.CFG.txtだったら殴るぞ。
0216デフォルトの名無しさん
NGNGなんか和んだ・・・
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGlist<CHoge*>::iterator p;
って、どういう意味なの?
0221デフォルトの名無しさん
NGNGlist<CHoge*>型のhogeを定義。
list<CHoge*>::iterator型のpを定義。
0222デフォルトの名無しさん
NGNGCHoge*って、ポインタを使ってるけど、なにか意味あるの?
0223デフォルトの名無しさん
NGNG色々有るんじゃない?
0224デフォルトの名無しさん
NGNGC言語でグローバルな定数を書く場合、ヘッダファイルに#defineや
enumで定義するのが普通かと思います。
これと同じことをconstを使ってやりたいのですが、単純に#defineのように
書くとリンクエラーになります。
こういった場合、どのようにするのが定石でしょうか?
お願いします。
0225224
NGNGもうちょっと調べてから書き込むべきでした。
お騒がせしてすいません。(でもまだ誰もみてないよな・・・)
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGポリモフィズムを実現するため。
関数オーバーロードでは出来ない。
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNGレスとしては不適切だが、角度とか。
0230デフォルトの名無しさん
NGNGその通りにほとんど全メンバ関数につけている。
0231デフォルトの名無しさん
NGNG少なくともprivateメンバにはvirtualは要らない。
0232デフォルトの名無しさん
NGNG俺、わりとfriend classとコンボでprivate virtual使うなぁ。
こいつの為のインターフェイスですよ。って明示的な感じだし。
0233デフォルトの名無しさん
NGNG理由が
>virtual 宣言した時と比べて 4 byte 節約・・・
かよ。virtualで宣言しているメリットと比較するとあまりに弱いな。
組み込み型でメモリとぼしいなら最初からC使っとけって気もするし。
なんだかねぇ。
0234デフォルトの名無しさん
NGNGあくまで一例だろ。
non virtualの利点が思いつかないなら、C++なんぞやらずにJavaつかっとけ。
0235デフォルトの名無しさん
NGNGちょっと読んでみたけど
> virtual キーワードがあるのは、このようにコストを減らせるようにするためです。
> int 型のデータメンバを1つしかもたないようなクラスでは、virtual にした場合、virtual
> にしないのと比べてコストが2倍になります。これはかなり大きな違いです。
アホかと思った。これ読んだ時点でその後読む気なくすなぁ・・
0236デフォルトの名無しさん
NGNGなんにも考えないですべてバーチャルにしとけばいいじゃん
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGぶっちゃけ Palm で開発してたときはそうしたけど
さすがに人に勧めるようなことは言いたくない
0240デフォルトの名無しさん
NGNG自作するにはどうすればいんですか?
0241デフォルトの名無しさん
NGNG対応するプラットフォームについて熟知すべし
0242デフォルトの名無しさん
NGNGchar *operator<<(bookmark obj1){
return obj1.title;
}
呼び出し時に cout << obj; (上のクラスオブジェクト)
という風に使います。
警告:関数の戻り値が自動変数のポインタ/参照となっています。
(return obj1.title;)
エラー:不当なオペランドです。
(cout << obj;)
って、出ます。お教えお願いします。
0243デフォルトの名無しさん
NGNGreturn os << obj1.title;
}
じゃないのか
0244デフォルトの名無しさん
NGNGreturn os << obj1.title;
}
0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNG勘違いしてました。stdクラスではない方のクラス内で定義しよう
としてた。おかげで、思うように動きました。
ありがとうございました。
メンバtitleはプライベートなので
そのままでは使えないのでメソッドでchar*を返すようにして
使ったんですけど、なんか回りくどいような気がするんですが、
どうなんでしょう。
これしか方法無いなら、無視して下さい。m(_ _)m
0247デフォルトの名無しさん
NGNGchar* bookmark::get_title(){return this->title;}
std::ostream& operator<<(std::ostream &os, bookmark& obj1){return os << obj1.get_title();}
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGC++って奥が深いんですね。(泣)
ていうか、全然分かって無い事が発覚。一からやります。
レスありがとう。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG自称友達ほど性質の悪いものはないよな。
0252デフォルトの名無しさん
NGNGメンバ関数という形をとっていないだけで、クラスbookmarkのインターフェースの一部なのだから、
privateなメンバにアクセスできても不自然ではない。
>>251
自分が相手をfriendと認めるだけであって、自称友達という表現は当てはまらない。
■ このスレッドは過去ログ倉庫に格納されています