【初心者歓迎】C/C++室 Ver.13【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【歴代スレ】
1:http://pc5.2ch.net/tech/kako/1059/10590/1059041347.html
2:http://pc5.2ch.net/tech/kako/1067/10671/1067189450.html
3:http://pc2.2ch.net/test/read.cgi/tech/1069719929/ (消滅?)
4:http://pc2.2ch.net/test/read.cgi/tech/1073473867/ (消滅?)
5:http://pc5.2ch.net/test/read.cgi/tech/1077102238/ (dat落ち)
6:http://pc5.2ch.net/test/read.cgi/tech/1082182233/(dat落ち)
7:http://pc5.2ch.net/test/read.cgi/tech/1086373839/(dat落ち)
8:http://pc5.2ch.net/test/read.cgi/tech/1091264964/(dat落ち)
9:http://pc5.2ch.net/test/read.cgi/tech/1094494997/l50
10:http://pc5.2ch.net/test/read.cgi/tech/1097416187/
11:http://pc5.2ch.net/test/read.cgi/tech/1099190154/
12:http://pc5.2ch.net/test/read.cgi/tech/1101100031/
【ラウンジ】質問、回答が長い時はココを使うと見やすい
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
関連スレは>>2-5ぐらい
0002デフォルトの名無しさん
NGNGhttp://dayomon.org/
0003デフォルトの名無しさん
NGNG★初心者にVisual C++を教えるスレ★ Part16
http://pc5.2ch.net/test/read.cgi/tech/1101022051/
■ MFC相談室 MFC12.dll■
http://pc5.2ch.net/test/read.cgi/tech/1096848771/
C++Builder相談室 Part12
http://pc5.2ch.net/test/read.cgi/tech/1099238936/
GCCについて part5
http://pc5.2ch.net/test/read.cgi/tech/1103057320/
cygwin + mingwn + gcc 相談室
http://pc5.2ch.net/test/read.cgi/tech/1058134693/
タダで使えるBorland C++ Part4
http://pc5.2ch.net/test/read.cgi/tech/1091066805/
タダで使えるVisual C++ $2
http://pc5.2ch.net/test/read.cgi/tech/1086287039/
Borland C++ BuilderX
http://pc5.2ch.net/test/read.cgi/tech/1065260556/
Turbo C++ 5.0 プログラミング
http://pc5.2ch.net/test/read.cgi/tech/1030878794/
0004デフォルトの名無しさん
NGNGC言語なら俺に聞け! Part 98
http://pc5.2ch.net/test/read.cgi/tech/1104114259/
C++相談室 part38
http://pc5.2ch.net/test/read.cgi/tech/1101473340/
ぼるじょあがC/C++の宿題を片付けますYO! 37代目
http://pc5.2ch.net/test/read.cgi/tech/1103913840/
【C++】template 統合スレ -- Part6
http://pc5.2ch.net/test/read.cgi/tech/1101384692/
C++は難しすぎ 難易度:2
http://pc5.2ch.net/test/read.cgi/tech/1071697977/
C言語の第一歩
http://pc5.2ch.net/test/read.cgi/tech/1031374980/
★C言語で遊ぼう!★
http://pc5.2ch.net/test/read.cgi/tech/1028269762/
プリプロセッサについて熱く語るスレ。
http://pc5.2ch.net/test/read.cgi/tech/1058203590/
C統合・質問スレッド
http://pc5.2ch.net/test/read.cgi/tech/1068359871/
フリーコンパイラー使えよ。
http://pc5.2ch.net/test/read.cgi/tech/1061384369/
C、C++の最適化について語るスレ
http://pc5.2ch.net/test/read.cgi/tech/1084676298/
0006デフォルトの名無しさん
NGNGだれか向うの方削除依頼出した?
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG> 【初心者歓迎】を入れ忘れた程度で
致命的
0010デフォルトの名無しさん
NGNG俺にはそう思えないが、そう言うならそうなんだろうな
0011デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG確かに。こちらが本スレかな。
0014デフォルトの名無しさん
NGNGあるタイミングでDLLからEXEへPostMessageしています。
その引数内で、構造体(DLLでnewしている)のポインタを渡していて、
EXEでdeleteしたいのだが、delete時に異常終了してしまいます。
そもそも上記のようなことってできるのでしょうか?
開発環境 VC++6 SP6 WinXPです。
0015デフォルトの名無しさん
NGNGどうしてもそういうことやりたいならAPIでメモリ確保してplacement newすればいけるかもしれんが。
0016デフォルトの名無しさん
NGNGそのDLLは別スレッドで動くので、アドレス空間が違う。だからPostM~の代わりにPostThreadM~使う必要。でもポインタは使えない。構造体ならWM_COPYDATAかCreateFileMa~の共有メモリ使え。
0017デフォルトの名無しさん
NGNGtmp = tip[j].x;
tip[j].x = -tip[j].y;
tip[j].y = tmp;
}
C++でこんなコードを見つけたのですが3行目の -tip[j].y の意味がわかりません。
数学と同じマイナスの解釈でいいのでしょうか。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG左様。後は自力で考えな
0021デフォルトの名無しさん
NGNG>>19をキーワードにしてぐぐったらわかりました。
0022デフォルトの名無しさん
NGNGヘルプも使え、ボケ
002314
NGNGどもでした。
えーと、仕様の練り直しです。。
0024デフォルトの名無しさん
NGNGその構造体がPODならHeapAllocとHeapFreeで
メモリ確保・解放するようにすれば平気だよ。
それがいいかどうかはともかく。
0025デフォルトの名無しさん
NGNG大嘘書くなよ。
EXEとDLLはDLLが内部的に別スレッドを生成したりしない限り基本的に同一スレッドで動くし、
そもそも別プロセスならともかくマルチスレッドなら全てアドレス空間は同じ。
0026デフォルトの名無しさん
NGNGわかるかたいたら教えてください。
void Test( int * );
↑に対して
Test( (int*)&{1,2,3,4} );
↑のようなかたちで呼び出したいということです。
ちなみにこれではエラーになります。
外に出せば全て解決するのは十分承知の上ですが、
以前適当に書いたらできたような記憶があって、
いろいろやってみたんだけど、どうしても思い出せなくて気持ち悪いです。
環境はVC++で通ればいいんですが、
Cの一般的な文法として認められてるやり方があればいいなと。
0027デフォルトの名無しさん
NGNG>Cの一般的な文法として認められてるやり方があればいいなと。
VCのことは知らんが、Cにそんな構文は無い。
002827
NGNG(int[]){1, 2, 3, 4}
C99なら↑でいける。
002926
NGNG以前GCCで書いたときもそんな感じだった気がしますが、VC++6.0ではできないようです。
残念。
0030デフォルトの名無しさん
NGNG三辺の長さがわかっている直角三角形の
直角以外の角を出す関数って無いんですか?
sin(87/654) = 0.123456の時、0.123456からsinに使う2辺の角度を知りたいのです。
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNGThx.
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGconio.h の最初の
#ifdef __cplusplus
extern "C" {
#endif
と、最後の
#ifdef __cplusplus
}
#endif
を入れた人の身にもなってやれ。>>33
0037デフォルトの名無しさん
NGNGVC++6.0を使用しています。
コーディングしているとたまに、全く反応が無くフリーズしたような状態になります。
フリーズ時間は数十秒〜1分くらいで、発生頻度は一定していません。
全く出ないときもありますし、30秒に1回くらいのペースで発生するときもあります。
自動保存にしては頻度が高すぎます。
フリーズするのはVCだけで、他のソフトは普通に操作できます。
CPU負荷にも変化は無いので、CPU100%で重くなっているというわけではないようです。
OSはWinXP SP2ですがSP1の頃からずっと発生していました。
0038デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1101022051/
0039デフォルトの名無しさん
NGNGchar c;
c = (char *)i;
上記のコードですが、
* が付いていると、どう言う事になるんでしょうか。
0040デフォルトの名無しさん
NGNGそのコードは激しく感心しない
0041デフォルトの名無しさん
NGNG実体をポインタ型にキャストするのはやらない方が良い。結果は実行環境による。知りたければnasmで難解なアセンブリ学べ
004239
NGNG先輩教えてもらったのですが、何が何だか分からなくて...
0043デフォルトの名無しさん
NGNGアドレス0xa0番地のメモリにアクセスするために(char*)0xa0と書く。でも最近のOSはメモリ保護のために例外を投げてしまう。char*p=(char*)NULL; *p=0x7f;などは確実に失敗する。
0044デフォルトの名無しさん
NGNG藻前は >>42 のソースを 100 万回ほど朗読しろ
0045デフォルトの名無しさん
NGNG×>>42
○>>39
orz
0046デフォルトの名無しさん
NGNG乙!!
0047デフォルトの名無しさん
NGNG何も答えられないが最適解ですね。
0048デフォルトの名無しさん
NGNGvirtual void Show() = 0;
とあるんですが、=0;ってなんなんでしょうか?
仮想関数で返り値なしのshow()に=0;ってのがよくわからないんですが・・・
派生クラスには
virtual void Show() { myData->Show(); myNext->Show(); }
というのがあります。
関数に代入とか出来ないですよね?
0049デフォルトの名無しさん
NGNG純粋仮想関数でぐぐれ
0050デフォルトの名無しさん
NGNG即レスthx
解決しました
0051デフォルトの名無しさん
NGNG質問なんですが、純粋仮想関数みたいな感じで、
派生クラスに引数を取るコンストラクタの実装を強要することってできますか?
今組んでるプログラムが、幾つかのフォーマットのファイルを扱う予定なんですが
各フォーマット共通の部分を基底クラスのパラメータとして持って、
各フォーマット固有の部分を派生クラスで扱いたいんです。
派生クラスのインターフェイスを統一するために、派生クラス全部に
同じ引数を取るコンストラクタを実装したいと思ってます。
解決策があったらお願いします。
0052デフォルトの名無しさん
NGNG純粋仮想関数の利点ってなんでしょうか?
0053デフォルトの名無しさん
NGNG派生クラスにオーバーライドを強要できる(しないとエラーになる)
基底クラスのインスタンスを作れなくなる(インターフェースクラスに使える)
0054デフォルトの名無しさん
NGNG>派生クラスに引数を取るコンストラクタの実装を強要することってできますか?
.基底クラスに引数ありのコンストラクタ以外用意しないではだめなのかな?
良心的な人なら、派生クラスのコンストラクタでもその引数を受け取るようにするでしょう。
0055デフォルトの名無しさん
NGNGMicrosoftのC/C++のコンパイラって
[Visual C++ 6.0] → [Visual C++ .net] → [Visual C++ .net 2003]
って変わったんですか?
.netって6.0の次ですよね?
0056デフォルトの名無しさん
NGNG.net 2003 = 7.1
0057デフォルトの名無しさん
NGNGあ、そうなのか、どうりで.net 2003は良く検索で出てきたけど
.netはあまり出なかったわけだ
謎が解決しました、ありがとう
0058デフォルトの名無しさん
NGNGメッセンジャーのような複数の相手とP2P接続させたいのですが
参考になるサイトとか書籍などありましたら教えてください。
0059デフォルトの名無しさん
NGNGRegnessemのソース。
Delphiだけど読むだけならそれほど困難ではない。
0061デフォルトの名無しさん
NGNGと
#include <iostream.h>
の違いを教えてください
あと
#include <cstdlib>
と
#include <stdlib.h>
の使い分けについても教えてください
0062デフォルトの名無しさん
NGNGなんでこの程度のことも調べられないの?脳みそ腐ってんのか?
0063デフォルトの名無しさん
NGNG2.ファイル一覧にフォルダがあればそのフォルダ内のファイル一覧も取得。
3.2を繰り返して指定フォルダ以下のツリーを作成。
ということをやりたいんですけど、2以下をどうすればいいか思いつきません。
参考になるサイトとかあったら教えてください。
コンパイラはBCC5.5です。
0064デフォルトの名無しさん
NGNGスレ違いだべ
Windows -> http://www.google.co.jp/search?hl=ja&q=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E6%A4%9C%E7%B4%A2+%E5%86%8D%E5%B8%B0+FindFirstFile&lr=lang_ja
C++ -> ↑を boost::filesystem で
(しかし boost::filesystemって日本語使えてなかったような…)
0065デフォルトの名無しさん
NGNGかなり参考になりますた。
0066デフォルトの名無しさん
NGNGboost::filesystemを使った例。
#include <algorithm>
#include <fstream>
#include <string>
#include <boost/filesystem/path.hpp>
#include <boost/filesystem/operations.hpp>
std::ofstream myout("一覧.txt", std::ios::out);
struct pred_p{bool operator()(const boost::filesystem::path& x){return !boost::filesystem::is_directory(x);}};
void scan_folder(const unsigned int level, const boost::filesystem::path& scan_path, const std::string& lines)
{
std::vector<boost::filesystem::path> folders((boost::filesystem::directory_iterator(scan_path)), boost::filesystem::directory_iterator());
folders.erase(std::remove_if(folders.begin(), folders.end(), pred_p()), folders.end());
std::vector<boost::filesystem::path>::const_iterator first(folders.begin());
std::vector<boost::filesystem::path>::const_iterator last(folders.end());
if (first != last)
{
for ( ;first != last - 1; ++first)
{
myout << lines << "├" << first->leaf() << std::endl;
scan_folder(level + 1, *first, lines + "│");
}
myout << lines << "└" << first->leaf() << std::endl;
scan_folder(level + 1, *first, lines + " ");
}
}
int main()
{
scan_folder(0, boost::filesystem::current_path(), "");
return 0;
}
0067デフォルトの名無しさん
NGNGProgram Files下のファイルに対してfopen関数にてファイルを開こうと試みたのですが出来ませんでした。
理由と解決方法が知りたいのですが、よいサイト等ご教授願えないでしょうか?
環境は Windows2000 VC++6.0 です
0068デフォルトの名無しさん
NGNG0069初心者
NGNGですが、OpenGLの画像を2つのwindowで表示したいのですがうまく表示できません。
そこで、可能かどうかと、可能ならばよい解決方法を教えていただきたいです。
どうかよろしくお願いします。
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGレスありがとうございます
No such file or directoryと返されました
ファイル名等は間違えていないのですが…
errnoに関してはひとつ利口になりました、どうもありがとう
0072デフォルトの名無しさん
NGNGまさか fopen("C:\Program Files\...") とか?
0073デフォルトの名無しさん
NGNGfopen(C:\Program Files\.....")となってます
0074デフォルトの名無しさん
NGNG「事実上は」ってのがよくわからないけど、
fopen("C:\\Program Files\\...") にしたら開けたりするのかな?
0075デフォルトの名無しさん
NGNGエスケープシーケンスによるエラーとかではないとは思っています
コンパイル自体は通っています
0076デフォルトの名無しさん
NGNG007767
NGNG#include <errno.h>
#include <string.h>
int main()
{
FILE *file;
int c;
char string[512];
char FileName[256];
char *err;
int swich = 1;
printf("ファイル名を入力してください\n>>");
scanf("%s", &FileName);
errno = 0;
if((file = fopen(FileName, "r")) == NULL)
{
err = strerror(errno);
perror(err);
printf("File Open miss.\n");
return -1;
}
007867
NGNG{
while(swich == 1)
{
file = fopen(FileName, "r");
printf("Open succses.\n");
while((fscanf(file, "%s", &string)) != EOF)
{
printf("%s\n", string);
}
printf("reLoad?\n>>");
scanf("%d", &c);
if(c == 1)
{
swich = 1;
}
else
{
swich = 0;
}
fclose(file);
}
}
return 0;
}
ソース出してみます
任意のフォルダ内のファイルは読めたのですが
Program Files下のファイルが読めなくて困っているところです(目的のファイルはProgram Files下のファイルです)
0079デフォルトの名無しさん
NGNG- scanf("%s", &FileName);
+ scanf("%[^\n]", FileName);
0080デフォルトの名無しさん
NGNGscanfでスペース含んだ名前は入力できないような気がする。
perror(FileName); にしてみな。
0082デフォルトの名無しさん
NGNG008379
NGNGscanf 使わなければ
scanf("%s", &FileName); を
fgets(FileName, sizeof(FileName, stdin);
FileName[strlen(FileName) - 1] = '\0';
008467
NGNGまずは通常アクセス出来るかProgram Filesを試したところアクセスすら出来なくて困っていたというところでした
また頑張ってみます
>>79-81
レスありがとうございました
0086デフォルトの名無しさん
NGNG私はDドライブに市販ソフトを
インストールするようにしてるよ
CドライブはOSのインスコのみ
こんな椰子もいるから
0087デフォルトの名無しさん
NGNG市販ソフトはレジストリを使うから、
ファイルさえあればいいってものじゃないんで
結局C:\Program Filesに入れている。
0088Rubyist!
NGNGしかもscanfかい
0089デフォルトの名無しさん
NGNG>他ソフトでアクセス中のファイルにこのプログラムでアクセスする方法を模索しておりまして
アクセス中のファイルにアクセスするな。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG自動変数・メンバ変数なら、変数自体のメモリはスコープアウトで解放される。
ポインタがぶら下がってる場合はデストラクタでどうにかしないとダメ。
0092デフォルトの名無しさん
NGNGありがとうございます
0093デフォルトの名無しさん
NGNGint Len(const string& str)
{
return str.length();
}
このような関数がある場合、
Len(string());
という呼び出しをしても大丈夫でしょうか?
string()で作成されたインスタンスが、呼び出した関数内で有効なのか教えてください。
0094デフォルトの名無しさん
NGNG有効です
0095デフォルトの名無しさん
NGNGありがとうございました!
0096デフォルトの名無しさん
NGNGネットや書籍で調べたのですが、見つけられなかったので質問させてください。
デフォルトコンストラクタと、その他引数つきのコンストラクタをいくつか
宣言した場合、いくつかのコンストラクタで共通する初期化リストも
それぞれに書かなくてはならないのでしょうか?
初期化リストがかなり長大なため、出来るだけ共通する部分は簡略化
したいと思っているのですが、どなたか教えてください。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNGメンバの構成をいじらない限りは、書かなくてはならない。
構成に手を入れてもいいなら、
共通の初期化を行うメンバをひとつのクラスにまとめてコンストラクタを書いたり、
private なコンストラクタ+インスタンス生成用static関数を作ったりできる。
>>97
メンバに「初期化」が重要な意味を持つクラスがあると、そう簡単にはいかない。
0099デフォルトの名無しさん
NGNG>共通の初期化を行うメンバをひとつのクラスにまとめてコンストラクタを書いたり、
あ〜、なるほど〜。今回はこの方法でいけそうです!!ありがとうございました。
0100デフォルトの名無しさん
NGNGWindowsのプログラムを書くときってfstreamは使わないほうが良いのでしょうか?
それともCreateFileのほうが使い勝手が良いだけなんでしょうか?
「使用を避けるべき」なのか「使用可だがCreateFileのほうがベター」なのか
どなたか教えて下さい。出来れば理由もおねがいします。
0101デフォルトの名無しさん
NGNG指定するパラメータがある。
意図的に「共有」を指定しない限り、(不用意にファイルを上書きしないように)
ファイルを開くときには「排他モード」になる
0102デフォルトの名無しさん
NGNGWindows前提なら好きなほうを選べばいい。
他のプラットフォームを意識するなら fstream にして
移植性を高めることの利点が大きいかもしれない。
0103デフォルトの名無しさん
NGNGCreateFileはWindowsの世界に作られていて、fstreamはC++の世界に作られている。
要するにお前はどっちの世界の住人になるかだ。
それぞれメリット・デメリットがある。
それとWindowsプログラミングのサイトではCを対象にしていることが多いので大抵fstreamとかは出てこない。
Cのfopenもあるが、どうせならAPIの解説を……、ってことで特にCreateFileに偏っていると思う。
0104デフォルトの名無しさん
NGNG以下のようなコードはやめたほうがよいのでしょうか?
DWORD HAGE::Delete(){
m_dwRef = m_dwRef - 1;
if( m_dwRef == 0 ){ delete this; }
return m_dwRef;
}
0105104
NGNG以下のコードなら大丈夫でしょうか?
DWORD HAGE::Delete(){
m_dwRef = m_dwRef - 1;
if( m_dwRef == 0 ){
delete this;
return 0;
}
return m_dwRef;
}
0106100
NGNGみなさん、本当にありがとうございました。これで疑問が解消しました。
個人的にはWindowsAPIをあまり使いたくないので、必要に迫られない限り
fstreamを使いたいと思います。
0107デフォルトの名無しさん
NGNGm_dwRef==0だったら?
m_dwRefの値の遷移図を書いてみろ
0108デフォルトの名無しさん
NGNGそのコード自体に問題はないよ。
delete this の是非や、Delete() が戻り値を持つことの是非は気になるけどね。
0109デフォルトの名無しさん
NGNGelse if{}
else if{}
を繰り返すのと
switchをつかって処理分岐するのは
機械語からみたら同じ処理ですよね?
自分で操作できるぶんif〜elseのほうがパフォがいいと思うんですが
合ってますか?
0110デフォルトの名無しさん
NGNGコンパイラッキー。
確率論勉強しろょ
0111デフォルトの名無しさん
NGNGswitchの方が可読性が良いと思うから、switchを使えるならswitchにしてほしい。
それにswitchだとジャンプテーブルになることが多いという話もかなり聞く。
0112デフォルトの名無しさん
NGNG> 機械語からみたら同じ処理ですよね?
コンパイラによる
> 自分で操作できるぶんif〜elseのほうがパフォがいいと思うんですが
制約が多い分switchのほうがパフォがいい(ことが多い)
0113デフォルトの名無しさん
NGNG0114104
NGNGm_dwRefってのは参照カウントです
このクラスのポインタが3箇所で参照されていた場合はm_dwRefの内容が3になります。
それぞれの箇所でこれが不要になったに場合Delete()を実行し、
すべての箇所で不要になった場合(m_dwRefの内容が0になった場合)
メモリから削除されるという仕様にしたかったのですが。
0115デフォルトの名無しさん
NGNGCOMでは普通にする。
あと m_dwRef = m_dwRef - 1; はキモイから
if( --m_dwRef == 0 )
にしてくれ。
0116デフォルトの名無しさん
NGNGDelete() は void じゃダメなのかな?
もっというと、 boost::shared_ptr 使えってことになるんだが。
0117104
NGNGassertでウインドウが出た場合Direct3Dのフルスクリーンが解除されてしまうので
その代わりにエラーログを出す処理を追加しました。
調べてみた結果boost::shared_ptrは速度が遅くなる恐れがあるようですね。
0118デフォルトの名無しさん
NGNGあの似顔絵ウィザードも含めて、HomeStyle+ って
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.NET Framework で書かれてるんですね。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
逆アセンブルしてみたら気づきました・・・・。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ああいうのを作品に組み込むのも面白いかも(笑)
MSの製品を逆汗するような奴をMSはMVPに選んでいるんです。MSは逆汗を認めていると
0119デフォルトの名無しさん
NGNG散々既出
激安で買えるVisual Stdio.NET theSpoke Disc.9
http://pc5.2ch.net/test/read.cgi/tech/1103381010/
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGwav サウンドを、sndPlaySound を使って再生しています。
そこで、2つの wav ファイルを同時に再生させることはできないでしょうか?
引数として SND_ASYNC を与え非同期で動かしても、
2つめのサウンドを再生すると、1つ目のサウンドの再生が止まってしまいます。
よろしくお願いします。
0122デフォルトの名無しさん
NGNG自前でミキシングするかDirectSound使うんじゃないかな?
0123120
NGNGまた色々と勉強が必要そうです。
急を要するので、ひとまずは midi か mp3 でも使っておきます。
ありがとうございました。
0124デフォルトの名無しさん
NGNG編集をしたいのです
ダブルクリックすると、編集可能になるお手本の
とおりにやりたいのですが、どういう手段を使えばいいのでしょうか
// ダブルクリック反応用
m_listctrl.SetExtendedStyle(LVS_EX_TWOCLICKACTIVATE);
i = m_listctrl.GetHotItem();
これだと、一番左の行の場合しかiに値が入らず、編集もできないです
リストビューのどこのカラムでもダブルクリックで編集できるような方法を教えてください
0125124
NGNGVC++スレにいってきます 失礼しました
0126121
NGNGDirectSound を使ってみているのですが、
>LPDIRECTSOUND8 lpds;
>DirectSoundCreate8(NULL, &lpds, NULL);
ここで早速、
〜.cpp(62) : error C2065: 'LPDIRECTSOUND8' : 定義されていない識別子です。
と出ます。
>#include "mmsystem.h"
>#include "Dsound.h"
の2つはインクルードしているのですが……。
他に何かインクルードする必要があるでしょうか?
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG「LPDIRECTSOUND8」を含むファイルの検索を行う
と言う発送は出てこないのですか?
0129121
NGNGDirextX のバージョンは 9.0c なので大丈夫なはずです。何が抜けてるんでしょう……。
dsound8.h でぐぐっても0件でした。
0130127
NGNGDsound.h→dsound.h
これが原因ぽい
0131デフォルトの名無しさん
NGNGヘッダの検索順序はDirectXSDKのヘッダファイルを先に探すようになってるか?
その9.0cがSDKじゃなくてランタイムのバージョンだったら(ry
0133デフォルトの名無しさん
NGNG省略して書くと、
class B;
class A { B* pB; void Test(){ pB->Do(); } }
class B : public A { void Do(){...} }
これだとpB->Do()のところで「認識できない型Bが使われています」と弾かれ、
class A;
class B : public A { void Do(){...} }
class A { B* pB; void Test(){ pB->Do(); } }
これだとclass Bの定義で「定義されていない基本クラスが宣言されてます」と弾かれ、
どちらにしてもコンパイルが通りません…。
VC++.net2003です。
0134デフォルトの名無しさん
NGNGA*じゃだめ?
0135デフォルトの名無しさん
NGNGDoをvirtualメソッドにして、ポインタは基底クラスのもの、A*を代表させるといいのでは?
0136133
NGNGありがとうございあmす。ただ実際にはテンプレートを使っていて
class A { list<shared_ptr<B>> pB; ... }
みたいな感じなので、ダウンキャストできないんです。
というわけで、できればB*のままで持たせたいのですが・・・
0138133
NGNGもうすこし考えてから書き込むべきでした。すいません…
0139デフォルトの名無しさん
NGNG> Dsound.h→dsound.h
そんな馬鹿な。Windowsでは大文字小文字の区別はないはず。
0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGsprintf
0142デフォルトの名無しさん
NGNGboost::lexical_cast<std::string>()
0143デフォルトの名無しさん
NGNGstd::ostringstream
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNGサンクス
142みたいなのを探してたんだけど、>>144もいいっすね
0146デフォルトの名無しさん
NGNG#include "stdafx.h"
#include <windows.h>
#include "Shlwapi.h"
int _tmain(int argc, _TCHAR* argv[])
{
char buffer_1[ ] = "C:\\TEST\\file.txt";
char *lpStr1;
lpStr1 = buffer_1;
int retval;
retval = PathFileExists(lpStr1);
return 0;
}
とすると,
error LNK2019: 未解決の外部シンボル __imp__PathFileExistsA@4 が関数 _main で参照されました。
fatal error LNK1120: 外部参照 1 が未解決です。
というエラーをはきます.どうすれば解決できるでしょうか?
あと,
#include<Shlwapi.lib>や#include<Shlwapi.dll>
とすると,
fatal error C1083: include ファイルを開けません。'Shlwapi.dll': No such file or directory
と怒られます.
0147デフォルトの名無しさん
NGNGライブラリをリンクさせたい時は
#pragma comment(lib, ライブラリ名)
と書く
この場合なら
#pragma comment(lib, "Shlwapi")
0148147
NGNG0149デフォルトの名無しさん
NGNGありがとうございます.ようやくコンパイル通りました
0150デフォルトの名無しさん
NGNGコンパイルできない。
0151デフォルトの名無しさん
NGNG素直にsprintf しとけ
今後もそれつかうぞ絶対
0152デフォルトの名無しさん
NGNGコンパイルエラーが出るとエラーメッセージが意味不明すぎて困っています
どうすれば委員でしょうか
委員?俺は委員なのでしょうか
だとすれば何の委員なのでしょうか
0153デフォルトの名無しさん
NGNG諦めましょう。
0154デフォルトの名無しさん
NGNGモチツケ。そしてEffectiveSTLを読んでみろ。
エラーの解読方法が書いてある。
0155デフォルトの名無しさん
NGNGわかりました紀伊国屋いってきます
0156デフォルトの名無しさん
NGNGその項だけ立ち読みすればいいと思われ
ていうか、ただ「似てる部分はまとめろ」ってだけだけど
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGFILE *fp;
char keyword[80];
char line[256];
char* sp;
int size = 0;
if( argc<3 || (fp=fopen(argv[1],"r") ) == NULL){
printf("can not open file");
exit(1);
}
strcpy(keyword,argv[2]);
size = strlen(keyword);
while(fgets(line,256,fp) !=NULL){
sp = strncmp(line,keyword,size);
if(sp==0){
printf("%s",line);
}
}
fclose(fp);
return 0;
}
----------------------------------------------------------------------
文字列処理のプログラムなんですが、keywordが1文字だった場合、
keywordに空白を追加して文字列比較(strncmp)の処理を行いたいのです。
どのようにすればよいでしょうか?
0160デフォルトの名無しさん
NGNGsizeが1だったらstrcatで" "を追加。動作はデバッグして調べよ
0161デフォルトの名無しさん
NGNG○痴かよド畜生が!
main()
{
char name[7] = {"NURUPO"};
char *add;
int i;
add=name;
for(i=0; i<6; i++){
printf("%Xは文字%cを表している。\n",add,*add);
add++;
}
printf("\n");
printf("逆に並べ替えると\n");
for(i=5; i>=0; i--){
printf("%Xは文字%cを表している。\n" );
}
}
NURUPOを反転表示させたいのですが、どのようにすればいいでしょうか?
0163デフォルトの名無しさん
NGNGmain()
{
char name[] = "NURUPO";
char *add = name;
int i;
for (i = 0; i < 6; i++) {
printf("%Xは文字%cを表している。\n", add, *add);
add++;
}
printf("\n逆に並べ替えると\n");
for (i = 5; i >= 0; i--) {
printf("%Xは文字%cを表している。\n", add, *add);
}
}
0164デフォルトの名無しさん
NGNG#include <string.h>
#include <algorithm>
int main()
{
char name[] = "NURUPO";
printf("%s\n", name);
std::reverse(&name[0], &name[strlen(name)]);
printf("%s\n", name);
return 0;
}
0165デフォルトの名無しさん
NGNG#include <cstring>
#include <algorithm>
using std::puts;
int main()
{
char name[] = "NURUPO";
puts(name);
std::reverse(name, name + strlen(name));
puts(name);
return 0;
}
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGという関数を実行したとき返り値を必ずどこかに格納しなくてもいいんでしょうか?
例
int* a = func(); を func();だけにする。
0168デフォルトの名無しさん
NGNGいなければ構わないよ。
0169デフォルトの名無しさん
NGNG言い方悪くない?
>>167
そのポインタが指すオブジェクトを、
呼び元が解放しなければならない場合は駄目。
そうでなければ構わないよ。
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG解決しました。レスありがとうございます
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNGif(search_flug == 0){//もしもsearch_flug=0ならば新ノード作成
New_nord = (struct word *)malloc(sizeof(struct word));//そのノードの次ノードを作って。
strcpy(New_nord -> name,word_name);//単語を登録
(New_nord -> appear)++;//出現回数に1を加算
New_nord -> Next_pt = NULL;//Next_ptをNULLに(次がないんだからネ)
Now_nord -> Next_pt = New_nord;//んで、さっきまでNULLだったノードのNext_ptを新ノードへのポインタに
}
else{
(Now_nord [hash_num].appear)++;
}
という所で、一番頭の
if(search_flug == 0){
の所で構文エラーが出るのですが。
原因がわかりません。
全角文字を使ってるとか、{}の数が足りてないとかスペルミスとか色々試してみたがどうも
ピンと来ないのですが、わかる方ご教授お願いします。
この記述の直前にdo whileでループを書いてるんですが、それとか関係ないですよね・・・?
コンパイラはVC++6.0です。
0174デフォルトの名無しさん
NGNGすいませんッ
0175デフォルトの名無しさん
NGNG構文エラーが出たならエラーの内容くらい書いとけ。
0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNG直しておきます。失礼!
エラーなんですが
error C2059: 構文エラー : 'if'
とだけで、自分もかなり面食らってます
0179デフォルトの名無しさん
NGNG前をもそっと
0180デフォルトの名無しさん
NGNGどうも申し訳ございませんでしたっ!
なんか鬱です。ごめんなさい。
0181デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGVisual Studio .Net
C++
以上の環境で、MFC、Win32API、ATL、C標準関数なんでもござれなアプリを作る予定です。
(MFCとWin32APIの違い等もよく理解していないのが正解だが)
ダイアログベースで、ダイアログ内にJPEG画像を縮小して20枚くらいサムネイルのように貼り付け
クリックされたら拡大表示っていうふうなアプリを作ろうと思っているんです。
そこで質問です。JPEG画像を縮小表示してダイアログに貼り付ける場合、どのように描画するのが
よいのでしょうか。
俺のつたない予想
�@ ダイアログのOnPaintでCBitmapを描画
�A CImageで描画
�B 自分自身に描画するクラスを作って20個貼り付ける?
�C CBitmapButtonで貼り付ける?
0183デフォルトの名無しさん
NGNGサムネイルならリストコントロール使えばいいだろ
0184182
NGNGその手がありましたか。エクスプローラの縮小表示のようにするってことですね。
これはかなり効果的でしたが、情報の後だしと言われてしまいますが
表示する20個はある条件にソートされて表示したいんで、
今回は使えませんでした。
ちょっともう少し自分で調べてみることにします。
0185デフォルトの名無しさん
NGNGリストコントロールは独自のソートできるよ。
0186デフォルトの名無しさん
NGNGってムリ?
0187186
NGNGどう改良すればコンパイルできます?
switchにするしかないのかな
0188デフォルトの名無しさん
NGNGこう?
void (クラス名::*pKeyFunc[])() =
0189186
NGNGvoid (ClassA::*pKeyFunc[3])() = {ClassA::KeyBoardEvent_Field, ClassA
:KeyBoardEvent_FieldMenu, NULL};
(this->*pKeyFunc[m_iMD])();
で解決しました。でも、何故これでOKなのか理解でき(ry...
0190デフォルトの名無しさん
NGNG名前空間
0191デフォルトの名無しさん
NGNGメンバ関数へのポインタ。
規格では &ClassA::KeyBoardEvent_Field のように & が必須なのでつけたほうがいい。
>>190
関係無い。
0192デフォルトの名無しさん
NGNG名前空間が解決できないからクラス名を指定しているんじゃないの?
0193186
NGNG(*pKeyFunc[i])()も
(ClassA::*pKeyFunc[i])();も
(ClassA::pKeyFunc[i])();もダメ。
this限定で、「*」(C言語ではいらなかったはず)を付けないと
いけないのかが分かりません。
ClassA::じゃ名前空間、物足りませんか...
0194デフォルトの名無しさん
NGNG>>193 "->*" がひとつの演算子。
0195デフォルトの名無しさん
NGNGneonのホームページは下の所です。
ttp://www.webdav.org/neon/
開発環境はLinuxを使ってます。
以下のサンプルコードをコンパイルしようとした所次のようなエラーがでました。
#include<ne_session.h>
int main()
{
ne_session *sess;
sess=ne_session_create("http","ServerName",80);
ne_session_destroy(sess);
return 0;
}
gcc -L/usr/local/lib -I/usr/local/include/neon sample.c
/tmp/ccunwT5A.o(.text+0x18): In function `main':
: undefined reference to `ne_session_create'
/tmp/ccunwT5A.o(.text+0x25): In function `main':
: undefined reference to `ne_session_destroy'
collect2: ld はステータス 1 で終了しました
と上記のようなエラーがでてしまいます。
因みにne_session_createとne_session_destroyはne_session.hをインクルードすれば使えるはずなのですが。。。
#include <ne_session.h>
ne_session *ne_session_create(const char *scheme, const char *hostname, unsigned int port);
void ne_session_proxy(ne_session *session, const char *hostname, unsigned int port);
void ne_close_connection(ne_session *session);
void ne_session_destroy(ne_session *session);
コンパイラーに渡すオプション何か足りないものがあるのでしょうか?
教えて下さい。
0196デフォルトの名無しさん
NGNGインクルードファイルのディレクトリは-I/usr/local/include/neonで指定してるのに、
ライブラリは-L/usr/local/libなのか?
ホントにそのディレクトリにライブラリが入ってるのかどうか確かめてみては?
0197Rubyist!
NGNGgcc sample.c `neon-config --cflags --libs`
か
gcc sample.c `pkg-config neon --cflags --libs`
とでもすればいい。
0199Rubyist!
NGNG>ライブラリは-L/usr/local/libなのか?
突っ込むところはそこじゃなくて-lneonとを指定していないことだろ。
0200195
NGNGおかげでコンパイルできました。
0201デフォルトの名無しさん
NGNG#include<stdio.h>
main()
{
printf("表示する文字\n");
}
とありますがコマンドプロントがすぐに閉じてしまいますそれを閉じないようにするにはどこに何を加えればよいでしょうか?初歩的質問すみません。
0203デフォルトの名無しさん
NGNGputs("プログラム終了。Enterキー押せよ");
getchar();
か
system("pause");
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGちゃんとコンパイルもできいけました。本当にありがとうございます。
0207デフォルトの名無しさん
05/01/17 14:10:45if ( (p.coef = d_ALC(p.ele)) == NULL )ERR("p.coef");
のような行があったんですが、ここにでてくる、「ERR」ってなんでしょうか?
0208デフォルトの名無しさん
05/01/17 14:13:00基本的にC/C++はそれでシンボルの問題は解決するぞ
0209デフォルトの名無しさん
05/01/17 17:19:37すいませんがお教え下さい。
複数ファイル間でnamespace使う場合、
[ファイルA]
namespace ns{int b;}
とだけして、
[ファイルB]で
namespace ns{int c;}
int main(){......return 0;}
と記述したのですが、[ファイルB]でint bを参照する場合、
using namespace ns;
extern int b;
ではダメみたいなのですが、どうすれば良いのでしょうか?
0210デフォルトの名無しさん
05/01/17 17:30:26なぜ共通ヘッダを使わない?
namespace ns;
extern int ns::b;
0211デフォルトの名無しさん
05/01/17 17:35:26ご回答ありがとうございます。
共通ヘッダを使うべきなのでしょうが、
「複数ファイル間で同名のnamespaceが同じ名前空間で扱われるか」
を試そうと思っていましたので共通ヘッダを使用しませんでした。
>namespace ns;
>extern int ns::b;
とありますが、どうもコンパイルエラーになるようです。
環境はg++3.3.2です。
0212209
05/01/17 17:40:52[ファイルA]
namespace ns{int b;}
[ファイルB]
#include <iostream>
using namespace std;
namespace ns{int c=100;}
int main(){
using namespace ns;
extern int ns::b;
cout<<c<<endl;
return 0;
}
で、エラーは以下です。
error: `ns::b' should have been declared inside `ns'
0213209
05/01/17 17:43:320214デフォルトの名無しさん
05/01/17 17:55:42namespace ns{extern int b;}
int main(){/*...*/}
とするべき。
一般に名前空間に(その翻訳単位で)新しい名前を追加するときは
名前空間をオープンしないといけない。
0215デフォルトの名無しさん
05/01/17 17:55:490216209
05/01/17 18:05:50おお!素晴しいです。できました!なるほど。
このテストをやってみたのは、複数のファイルで
using namespace std;
ってやってる場合、それらは同じ名前空間だけど、共通の空間として
認識されてるのか(もしくはそれぞれのファイル単位で別物のstdなのか)
を確認したかったからです。
>namespace ns{extern int b;}
とすることで、ファイルAの名前空間nsを参照できてるってことですかね。
>215
externとか書いてみたんですが、文法がおかしいみたいでした。。。
よくわからなかったもので。
0217デフォルトの名無しさん
05/01/17 18:12:32usingは、ns::を省略するぐらいの意味。externは外部(external)という意味。
0218209
05/01/17 18:18:320219デフォルトの名無しさん
05/01/17 20:38:14ただのラッパーみたいになってしまいます。
これは設計が悪いからでしょうか?
0220デフォルトの名無しさん
05/01/17 20:43:27常に決められた手順通りに動くことを想定すれば、途中の事務処理は自動化できるはず。
0221219
05/01/17 22:20:09常に決められた手順は、そのクラスから派生して作るものかなと
思ったりしてるんですが、
そこまで考えてクラス設計はしなくても良いもんなんでしょうか?
それだけにしか使えないクラスを作成するとか。
クラスってイメージは、鯛焼きの型ってイメージがあるんで
専用クラス作るのは良いことじゃないと思ってるんです。
0222デフォルトの名無しさん
05/01/17 22:39:56常に決められた手順だから、
クラスとしてまとめるんだろ?
そのクラスを使う上位で、
同じ事を何度も書かなくても言いように。
0224219
05/01/17 23:23:46と思ってしまうんですよね。
クラスは、どんなときに使うのか?を理解する必要があるみたいです。
良い本を読んでみます。
0225デフォルトの名無しさん
05/01/17 23:30:36「aa<?bbcc?>dd」という文字列を、「aa」「bbcc」「dd」に
分割するようなことは出来ないのでしょうか。
ちょっと調べたんですが、1文字でしか分割できないような気がします。
それと、<??>の内部か外部かを判断するのは出来ますか?
0226デフォルトの名無しさん
05/01/17 23:54:000227デフォルトの名無しさん
05/01/18 00:04:580228デフォルトの名無しさん
05/01/18 01:24:490229デフォルトの名無しさん
05/01/18 08:04:50ありがとうございました。
0230デフォルトの名無しさん
05/01/18 12:39:46>常に決められた手順は、そのクラスから派生して作るものかなと
>思ったりしてるんですが、
>>219 の winscok を使ったクラスを例に考えてみよう。
例えば、藻前は上位クラスでコネクションを行う必要がある度に、
わざわざ、
・アドレス解決メソッド
・socket() ラッパーメソッド
・connect() ラッパーメソッド
と、複数のメソッドを呼ばそうとするのか?
普通なら、コネクションを行うメソッドを作り、
そのメソッドの中で
・アドレス解決
・ソケットの生成
・コネクション
と言う一連の手順を実行させないか?
0231デフォルトの名無しさん
05/01/18 15:40:43現在WinXPでBorland C++ Compiler 5.5を使って
C言語でソケット通信のプログラムを組んでおりますが
通信相手を限定する為にWindowsのコンピューター名を
指定する方法で制約がかかっております。
そこでNetBIOS名からIPアドレスをプログラム上で
使う方法がありませんでしょうか?
0232デフォルトの名無しさん
05/01/18 16:42:410233デフォルトの名無しさん
05/01/18 16:46:52gethostbyname() で、
コンピュータ名から IP 得られなかったっけ?
0234デフォルトの名無しさん
05/01/18 17:29:52COMが使える言語ならどれでもいいと思うよ。
0235デフォルトの名無しさん
05/01/19 14:08:160237デフォルトの名無しさん
05/01/19 15:56:04lstrcat(buf,"\x00");
0238デフォルトの名無しさん
05/01/19 15:57:21上記のような文をforループで回して文字列を作成したいのですが
ヌル文字の部分だけ抜けてしまいます。 何か良い方法ってありますか?
0239デフォルトの名無しさん
05/01/19 15:58:25buf[len+1]=0;
0240デフォルトの名無しさん
05/01/19 16:04:230241デフォルトの名無しさん
05/01/19 16:09:25class CTest
{
void Draw() {};
void DrawTest2( CTest2 test2 ) {};
}
[ CTest2.h ]
class CTest2
{
void Draw() {};
void DrawTest( CTest test ) {};
}
main.cppの中でこれらを使用するにはどうしたらいいんでしょうか?
0242232
05/01/19 16:10:27ご返答ありがとうございました。
0244デフォルトの名無しさん
05/01/19 16:19:09class CTest;
class CTest2;
をヘッダーの最初に書け
0245デフォルトの名無しさん
05/01/19 16:31:46よくよく考えたら当たり前か・・・。
自作関数でもつくるしかなさそうですね。
ありがとうございました。
0246デフォルトの名無しさん
05/01/19 16:44:04VCでやってるんですが、なぜかできないんですよ
エラーメッセージは
認識できない型 'CTest' が使われています。 >>> Init( CTest test ) {}の部分
CTest2' の宣言を確認してください。 >>> clas CTest2;
0247デフォルトの名無しさん
05/01/19 16:44:54エラーメッセージ訂正
エラーメッセージは
認識できない型 'CTest' が使われています。 >>> Init( CTest test ) {}の部分
'CTest' の宣言を確認してください。 >>> class CTest;
0248デフォルトの名無しさん
05/01/19 16:59:27クラス定義の後で;忘れ
0249デフォルトの名無しさん
05/01/19 17:06:27いや ちゃんと書いてます。
0250デフォルトの名無しさん
05/01/19 17:07:13なんでだろ〜なんでだろ〜〜><;
0251デフォルトの名無しさん
05/01/19 17:12:07UPしたのでどうやったらコンパイルできるか誰か教えて
0252デフォルトの名無しさん
05/01/19 17:12:100253252
05/01/19 17:13:170254デフォルトの名無しさん
05/01/19 17:13:52class CTest
{
void Init( CTest2 test ) {}
};
class CTest2
{
void Init( CTest test ) {}
};
int main()
{
return 0;
}
まーたったこれだけだからUPするまでもなかったorz
0255デフォルトの名無しさん
05/01/19 17:34:150256デフォルトの名無しさん
05/01/19 18:05:15sub.cppで#include "Func.h"
Func.h内は
クラスTimerの定義が有るとすれば
いくら
#ifndef DEF_NAME
#define DEF_NAME
...
#endif
した所で、コンパイルして後のリンク時に再定義エラー
が起こるわけで............。
これじゃ、再定義にならないように#ifndef,#defineの意味無いんじゃない?
1つのソースファイル内でまさか2度同じヘッダをインクルードするわけ
なんてないし...
だとしても、直ぐに気づくと思いますが
0257256
05/01/19 18:08:010258デフォルトの名無しさん
05/01/19 18:24:380259デフォルトの名無しさん
05/01/19 20:05:50そうなのかな?
オブジェクト指向だと双方向関連って普通にあると思うけど
あと全く同じプログラムじゃないけど
Win32プログラムだとなぜかうまくいく。。。なぜなんだ・・orz
0260デフォルトの名無しさん
05/01/19 20:29:21あのね、君が普段から悪い設計しかしないのは解かったから。
0261デフォルトの名無しさん
05/01/19 21:33:19は? 双方向関連 やってると設計が悪いのか?
オマイ だめぽw
0262デフォルトの名無しさん
05/01/19 23:40:18関数の定義と実装を分ければ解決しますよ(たぶん)
0263デフォルトの名無しさん
05/01/19 23:43:16いや、ダメなのは君の方だよ。場合によってはリスナとか作れよ。
0264256
05/01/19 23:45:00レスありがとうございます。
なんだかヘッダファイルの意味をとんでもなく誤解してたみたいです。
ソースファイルのみで作った方が楽な気がしてきた。
何故ライブラリ作るんだろうと思ってたんですが、腑に落ちた気がしました。
0265256
05/01/20 00:07:25やっぱりライブラリの意味が見出せない。(ry
0266デフォルトの名無しさん
05/01/20 00:22:42でかいプロジェクト扱ったこと無いだろ。
0267デフォルトの名無しさん
05/01/20 00:27:11それだけならコンパイル通るはずだぞ。
ホントにそれだけでコンパイルしたのか?
実際はそれ以外のコードが含まれるんじゃないか?
>>265
それ、勉強つか経験が決定的に不足してるわ。
ある程度コーディングの経験があればヘッダファイルの有難味は判る。
0268デフォルトの名無しさん
05/01/20 00:29:32彼はきっと学部1年生だ。許してやれ。
0269デフォルトの名無しさん
05/01/20 00:38:56CTest2はCTestより後で定義されてるからCTestはCTest2のサイズを知らない。
そういう場合はポインタ使え。よくある相互参照の解法だ。
ポインタそのものは環境依存だがサイズは固定値。
指してる先の構造体(この場合のCTest2)のサイズがまだ分からない時にも使える。
逆に、CTestはCTest2より前に定義されてるから
CTest2はCTestのサイズを知っている。よってポインタにする必要無し。
したがってこの1箇所の修正でコンパイル通るんじゃないかな?
class CTest
{
void Init( CTest2 *test ) {}
};
他のコードは一緒。
VC++7.1(のcl.exe)とcygwin g++3.2の両方でコンパイル通ったよ。
0270デフォルトの名無しさん
05/01/20 07:59:35不完全型は引数の型とすることはできないだろ。
前方宣言と参照で済ますところだな。
0271デフォルトの名無しさん
05/01/20 10:00:37sleepだと本当に止まってしまうので使えない
VBでいうタイマーコントロールみたいなことをしたいのだけれど
誰か教えてたも
くそ初心者でごめん
0272デフォルトの名無しさん
05/01/20 10:04:18SetTimer,WM_TIMER
0273デフォルトの名無しさん
05/01/20 10:07:21>>272 の他に、マルチスレッドを使うという手もある。
0274デフォルトの名無しさん
05/01/20 10:11:18それをキーワードに調べてみますよ
0275デフォルトの名無しさん
05/01/20 10:41:05なるほど。構造のサイズが必要になってたんですね。
さすがでした。ありがとうございます。m( _ _ )m
関連ってポインタでとるものなのに、
簡単なテストコード書いたときに、面倒だったため、
省略してしまいました。
早く気づけば・・orz
0276デフォルトの名無しさん
05/01/20 12:31:05コンソールアプリで終了時にコンソール画面を残すことはできますか?
いままではBCC+BCC Developerで作ってたのでわかりません・・・;
初歩的な質問ですがお願いします。
0277デフォルトの名無しさん
05/01/20 12:35:19過去ログでも嫁
0278276
05/01/20 13:27:17Ctrl+F5でできたとは・・・鬱
0279デフォルトの名無しさん
05/01/20 14:08:08for(z=-10;z<=10;z++){
for(y=-10;y<=10;y++){
x=(Xnosa1(T,A,K,y,z))*(Xnosa1(T,A,K,(y+1),z));
if(x<0){
※Xnosa1(T,A,K,y,z)、Xnosa1(T,A,K,(y+1),z)は関数
例えばこの様に書いたときに、x<0になる事が何度もあっても、初めにx<0になった時点でその時の値だけを返してfor文を終了させるにはどうすればよいでしょうか?
よろしくお願いします。
0280デフォルトの名無しさん
05/01/20 14:13:40if (x < 0) {
return x;
}
単純に二重ループから脱出したいなら
for () { for () {
if (x < 0) {
goto OutOfFor;
}
}}
OutOfFor:
0281デフォルトの名無しさん
05/01/20 14:49:17ガイシュツかもしれませんしググレって言われるかもしれませんが、どこも初心者にも
判りにくいので質問させていただきます。
「半角文字を全角文字」にする方法を教えてください。
どこのサイトもわかりにくかったので・・・。
判りやすいサイトでもあればよいのですが。
自分も引き続きしれべますけどお願いします。
0282デフォルトの名無しさん
05/01/20 15:02:57文字コードについて勉強汁。
0283デフォルトの名無しさん
05/01/20 15:12:00LCMapString
0284281
05/01/20 15:39:270285デフォルトの名無しさん
05/01/20 19:42:18パラレルポートを監視し、その状態に応じ処理を行うものです。
やりたいことは、以下の様な処理です。
int main(void){
/* ここで初期化 */
while(1){
/* パラレルポートの状態を見る。*/
/* hoge 実行 or 何もしない */
}
/* ここで終了処理 */
return 0;
}
このままですと、アプリ終了のためにはCtrl+C等が必要ですが、その場合
終了処理が行えないのが困りものです。パラレル及びhogeのコードそのものに問題はなく、
悩んでいる点は、上記の様なwhileをしつつ、どうやって終了処理をするか、です。
わからないなりに調べ、以下の方法で実現できるかも、という段階まできました。
(案1) Ctrl+Cのシグナルハンドラ作って終了処理を記述
(案2) 副スレッド作ってwhileをやらせる。本スレッドに、getcなどで副スレッド終了用のインターフェース記述
これらが妥当な方針かどうか御教示願えますでしょうか?
(シグナルにせよスレッドにせよまだ勉強不足ですが、そこは今後じっくりやるとして、
方針が正しいかどうか教えて頂きたいのです)
長文すみません。宜しくお願い致します
0286デフォルトの名無しさん
05/01/20 20:05:260287271
05/01/20 20:32:43そんなわけで「まるちすれっど」を採用しようと思うんですけど、こいつの精度ってどんなもんですか?大体でいいから数字で知りたい。
欲を言えば5ms、最悪20msくらいの分解能はほしいのです。
0288デフォルトの名無しさん
05/01/20 20:49:40【プログラミング歴】数ヶ月
【2ch歴】3年程
【職業】学生
【質問】卒業研究でC++のプログラムを作ることになりまして,皆さんに教えて頂きたいのです.
#include "spec.h"
const double spec::getsVST() { return 23.00; }
const double spec::getsTCV() { return 1.54; }
const double spec::getsSK() { return 0.097; }
このようなcppファイルがあり,今はreturnで数を代入していますが,
他プログラム(Visual C++)
void CCompDlg::OnSaveButton()
{
UpdateData(TRUE);
CFile f;
f.Open("C:\\Compspec.txt",
CFile::modeCreate | CFile::modeWrite );
CArchive ar( &f, CArchive::store );
ar << m_VstEdit << m_TcvEdit << m_SkEdit;
ar.Close();
f.Close();
}
で作成したファイルを読み込んで使用したいのですが,どのように組み込んで良いのかわかりません.
ぜひどなたか詳しい方,方法をお教え願います.
0289デフォルトの名無しさん
05/01/20 21:01:46藻前の作り方とコンピュータのスペック、
その時の状況などによる。
0290デフォルトの名無しさん
05/01/20 21:02:28ファイルの構造は書き込んだ順にデータが並んでいるだけだ。その順で読み込め。
CFile::Open
CArchive::CArchive
CArchive::operator>>
をヘルプで見よ
0291デフォルトの名無しさん
05/01/20 21:06:20レスありがとうございます。読み込むには上のcppファイルをどのようなにすれば良いのでしょうか?
思い当たるものを試したんですが、うまくいかないんです。
0292デフォルトの名無しさん
05/01/20 21:08:33ヘルプ見ない奴は何度も同じような質問をする。
0293デフォルトの名無しさん
05/01/20 21:22:16char * で処理可能なら従来の C 的なコーディングのほうが
良いのでしょうか?(速度面やサイズなどで)
0294デフォルトの名無しさん
05/01/20 21:29:21多用OKです。環境はVisualC++6.0です。
0295デフォルトの名無しさん
05/01/20 21:38:40それ以外はすべてstd::string
0296デフォルトの名無しさん
05/01/20 21:56:30速度を求められる場面ってまずないけどな。
アルゴリズムの方がよっぽど重要ネ
0297デフォルトの名無しさん
05/01/20 22:04:55そうか、わかった。よーくわかったぞ。
0298デフォルトの名無しさん
05/01/20 22:11:03フロッピーディスクが書き込み可能かどうか
(使用可能なフォーマットかどうか)
を調べる処理がどうやれば良いのかわかりません。
よろしくお願いいたします。
0300デフォルトの名無しさん
05/01/20 22:23:27その通りだよ。>>295みたいな時代錯誤ジジイの言うことは聞かなくていいからな。
0301295
05/01/20 22:29:390302デフォルトの名無しさん
05/01/20 22:31:18{
char ans;
while(1) {
printf("INPUT y or n\n");
scanf("%c", &ans);
if('n' == ans)
break;
}
return;
}
上のプログラムで y を入力すると「INPUT y or n」
が2行続けて出力されてしまいます。1行のみ順に
出力するにはどうしたらいいのでしょうか?宜しくお願いします。
環境、windows2000proSP4,VisualC++ 6.0SP6
0303デフォルトの名無しさん
05/01/20 22:34:58タイマーの精度に対してはあまり正確なものは期待できない。
SetTimerよりも、と言う限定つきであれば「マルチメディアタイマー」
について調べてみよ。
0304デフォルトの名無しさん
05/01/20 22:42:56散々既出だが、scanf()を捨てることをお勧めする。
0305デフォルトの名無しさん
05/01/20 22:50:38試してないからうまくいくか分からないけど
- scanf("%c", &ans);
+ scanf("%c%*c", &ans);
0307デフォルトの名無しさん
05/01/20 23:24:43scanf(" %c", &ans);
0308デフォルトの名無しさん
05/01/20 23:48:160309デフォルトの名無しさん
05/01/20 23:53:23std::vector
0310デフォルトの名無しさん
05/01/20 23:54:530311302
05/01/21 00:00:33ありがとうございました。
0312デフォルトの名無しさん
05/01/21 11:36:150313デフォルトの名無しさん
05/01/21 12:25:38他人のDLLを使うプログラムで
最終的にDLLを使わず
実行ファイル一本にする方法が
あったら教えていただけると助かります。
環境はWINとBCCとDIRECTX
DLLのソースが無い状態です。
ライセンスひとまず考え無いものとします。
0314デフォルトの名無しさん
05/01/21 12:26:160315デフォルトの名無しさん
05/01/21 12:30:15ライセンスが不要と考える根拠は?
0316デフォルトの名無しさん
05/01/21 12:33:350317デフォルトの名無しさん
05/01/21 12:34:30DLLで行っている処理を自分で実装する。
これ以外は有り得ない。
って言うか、DLLはexeと別にあるから意味がある。
0318313
05/01/21 12:36:08必要になるために
無償で配布されてるライブラリなのと
作るものは商用とかそういうレベルじゃないし
仲間に配るだけなんで
0319デフォルトの名無しさん
05/01/21 12:38:230320313
05/01/21 12:40:460321デフォルトの名無しさん
05/01/21 12:44:24なぜ?
ファイルの数は変わっても、
全体のサイズは変わらないぞ?
0322デフォルトの名無しさん
05/01/21 12:44:270323デフォルトの名無しさん
05/01/21 12:48:22著作権も考えてからものを言え。
0324313
05/01/21 13:00:42なるほどわかりました。ありがとうございました。
0325デフォルトの名無しさん
05/01/21 20:57:06class A : public float
{...
が通りません。
仕様ですか?
0326デフォルトの名無しさん
05/01/21 21:02:17しょうです
0327デフォルトの名無しさん
05/01/21 21:28:42float はクラスじゃないだろ。
0328デフォルトの名無しさん
05/01/21 22:55:42その発想はすごい
0329デフォルトの名無しさん
05/01/21 23:26:56なんで?
0330デフォルトの名無しさん
05/01/22 09:31:31ぐぐっても入門書を漁っても解決できませんでした…。
一つ目は、
class test{
char test[3]=3;
};
とすると初期化できないというエラーがでるんですが、文法的に間違っているんでしょうか?
2つ目
test.cpp
int main(void){
char test[2][2][2]{
2,2,2,2,2,2,2,2,
};
return 1;
}
とすると「初期化子の一部のみに括弧が付いている」という警告が沢山出て困っているんですが
どういう意味の警告か分かりません。どうすればこの警告が消せますか?
3つ目は入門書には配列は右から詰め込むと書いてあったので、下のようにすると
今度はさっきのに加えて初期化子が多すぎるとエラーがでます。
int main(void){
char test[2][2][2]={
{2,2},
{2,2},
{2,2},
{2,2},
};
return 1;
}
何がどうなってるのかさっぱり分かりません。どなたかよろしくお願いします…。
0331330
05/01/22 09:54:26char test[3]={1,2,3};
};
でした。よく探すと、初期化リストでは出来ないと書いてありました。すみません。
0332330
05/01/22 10:02:050333デフォルトの名無しさん
05/01/22 10:04:36> 何がどうなってるのかさっぱり分かりません。
俺にはお前がなんでそんなに混乱してるのかがわからんよ。
おちつけ。
0334330
05/01/22 10:19:32ホントわけわからんくなってました。
二次元配列と同じ書き方だとダメなんですね…。
一人でスレ汚してすんません。
0335デフォルトの名無しさん
05/01/22 10:31:28{{2,2},{2,2},},
{{2,2},{2,2},}
}
0336デフォルトの名無しさん
05/01/22 14:07:36Windows2000/XP VC++6.0 いずれもサービスパック等は当てていません。
lmjoin.hはどのように入手するのが良いですか?
0337336
05/01/22 14:09:200338デフォルトの名無しさん
05/01/22 14:52:45目的と用途は?
0339デフォルトの名無しさん
05/01/22 16:18:19これらを実現するための方法をご教授願います。
0340デフォルトの名無しさん
05/01/22 16:21:10upxのソースに完璧な移植例がある
0341デフォルトの名無しさん
05/01/22 16:39:20readlineのソース見ろ
0343デフォルトの名無しさん
05/01/22 21:12:000344デフォルトの名無しさん
05/01/23 00:58:44インターネットが使えなくなってて返事が遅くなってしまいました。
NetJoinDomainを使いたいのですが、lmjoin.hのインクルードが
必要らしいために探しています。
0345デフォルトの名無しさん
05/01/23 07:45:19ググれ
http://www.google.co.jp/search?num=50&hl=ja&newwindow=1&c2coff=1&q=lmjoin.h&lr=lang_ja
0346336
05/01/23 13:34:54ググってわからなかったのでこちらにお伺いしたのです…
英語のサイトにあるらしいことは知っているのですが、お恥ずかしい
話ですがどれをダウンロードしたら良いのかがわからないんです。
0347デフォルトの名無しさん
05/01/23 13:46:410348デフォルトの名無しさん
05/01/23 13:48:56とりあえずSP当てろ
あと幼稚園からやり直せ
0349デフォルトの名無しさん
05/01/23 13:49:411番目のページに書いてある。
0350336
05/01/23 14:17:53やはりSPは必要ですか。環境を作成した人が異なるので、提案は
してみます。
>>349
一番目のページに書いてあるのは
ttp://msdn.microsoft.com/downloads/default.asp?url=/downloads/topic.asp?URL=/MSDN-FILES/028/000/123/topic.xml
のことだと思うのですが、このページのどれが対象なのかがわかりません。
最新のSDKってことで
Platform Software Development Kit Redistributable: Microsoft Layer for Unicode on Windows 95, 98, and Me Systems, 1.1.3790.0
かと思いましたが、XP/2000ではないようですし。
何か根本的に間違ってるでしょうか…
0351デフォルトの名無しさん
05/01/23 17:08:06Win32APIスレのPlatform SDK Update
0353デフォルトの名無しさん
05/01/24 23:16:25printfを使って表示したりするっていうのは、あまり良くないプログラムですか?
stirng型を表示しない場面においてはcoutよりprintfの方が
使いやすかったりするので、coutとprintfの両方を使ったりしてもいいのでしょうか?
0354デフォルトの名無しさん
05/01/24 23:25:24ただ、同一プログラムでiostreamとstdioの入出力を使うべきではない。
誤動作する可能性が充分にある。
0355デフォルトの名無しさん
05/01/24 23:40:220356デフォルトの名無しさん
05/01/24 23:49:360357デフォルトの名無しさん
05/01/25 00:05:45>>356が言うように、先にprintfした内容が後でcoutに出した内容の後に出てくるようなことでしょ。
0358デフォルトの名無しさん
05/01/25 00:13:54ごどうさ 2 【誤動作】
コンピューターなどが、命令した以外の動作をすること。誤作動。
0359デフォルトの名無しさん
05/01/25 00:14:370360デフォルトの名無しさん
05/01/25 01:02:00プログラムは思ったとおりには動かない。
作ったとおりに動く。
意図した通りに動かないのは誤動作だなんて言訳は通用しません。
0361デフォルトの名無しさん
05/01/25 01:17:00ブラックボックス的にプログラムの流れを制御する機構にちょっと不信感があるのは
>>360の言うような感覚が染みついてるからかもしれん。
0362デフォルトの名無しさん
05/01/25 01:19:22俺もそう思う口だが。
0363デフォルトの名無しさん
05/01/25 02:43:060364デフォルトの名無しさん
05/01/25 03:12:040365デフォルトの名無しさん
05/01/25 03:15:110366デフォルトの名無しさん
05/01/25 03:45:44思うのですが、
1.CPUのクロックダウンが出来るようであれば、BIOSでFSBクロックを下げて、全体の発熱をおさえる。
2.CPU coolerソフトを導入し、CPU使用率を100%以下にし、CPUの発熱を抑える。
3.放熱を妨害するホコリがパソコン内部へ極力侵入しにくい様にする。
4.熱伝導の良い大きなアルミ板の上にパソコンを乗せて、少しでも熱を逃がす。
このくらいしか思いつきません。
消極的な対策としては、
1.鉄製のプリンタの消音BOXで、延焼を防ぐ。
という手もあるかも知れません。
0367デフォルトの名無しさん
05/01/25 09:02:25この状況を打破したかったら、
アホコンデンサを売ったアホメーカーを某有名サイトでさらせ
0368デフォルトの名無しさん
05/01/25 10:06:580369デフォルトの名無しさん
05/01/25 10:11:32新しく購入したVisualC++.net 2003を6.0をアンインストールせずに
導入してもいいものなのでしょうか?
0370デフォルトの名無しさん
05/01/25 10:42:04そりゃ経年変化による故障ですがな。
0371デフォルトの名無しさん
05/01/25 11:46:18そこで boost;;format ですよ
0372デフォルトの名無しさん
05/01/25 12:03:11うちのMBは連続使用してたら8ヶ月くらいで壊れた
0373デフォルトの名無しさん
05/01/25 12:05:01問題ない。
むしろVC++6をアンインストールしようとする方が危険。
0374デフォルトの名無しさん
05/01/25 12:10:43int main(void)
{
struct Foo *foo;
func_getword(stdin, &foo);
return 0;
}
void getword(FILE *fp, struct Foo **foo)
{
fgets(*foo->var_foo, 256, fp);
}
だと左辺が構造体と認められません、どう書けばよいのでしょうか?
0375デフォルトの名無しさん
05/01/25 12:18:26ありがとうございます、早速インストールしています
0376デフォルトの名無しさん
05/01/25 12:22:11>*foo->var_foo
* 付けて、何がしたいんだ?
0377デフォルトの名無しさん
05/01/25 12:23:010378デフォルトの名無しさん
05/01/25 12:28:57/ ̄\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
─( ゚ ∀ ゚ )< ぱいちんこぱいちんこ!
\_/ \_________
/ │ \
∩ ∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< ぱいちんこ!
ぱいちんこ〜! >( ゚∀゚ )/ | / \__________
________/ | 〈 | |
/ /\_」 / /\」  ̄ / /
0379デフォルトの名無しさん
05/01/25 12:33:09えっと自作関数内のfooが指しているのはmain関数内のfooの先頭アドレスだから
その中身の構造体Fooを参照するには*演算子かなと・・・
もうワケワカリマセン
>377
省いてしまいましたがmallocはやっています
0380デフォルトの名無しさん
05/01/25 12:39:03例えば、
文字列入力の為にmallocの処理を使ったとした場合、
main関数の他に入力用関数とmalloc用関数
みたいな感じで。
0381デフォルトの名無しさん
05/01/25 12:41:21上官に嘘を報告するとは何事だ!あやまれ!
この場合(*pp)->としろ!
0382デフォルトの名無しさん
05/01/25 12:44:42下級兵士が何を抜かす!
おまいの様な奴は黙ってまともな解説本を読め!
二度とここには来るな!時間の無駄だ!
0383デフォルトの名無しさん
05/01/25 12:48:420384379
05/01/25 12:50:14隊長、わかりました! 演算子の優先順序ですね!
0385初心者歓迎でーす!
05/01/25 12:50:450386380
05/01/25 12:52:00隊長、キビシスギマス! もっとやさしく!
0387デフォルトの名無しさん
05/01/25 12:55:040388デフォルトの名無しさん
05/01/25 13:29:10Debug モードでコンパイルすると、
>Dxguid.lib(dxguid.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください
というエラーが出ました。
HDを検索したところ、Dxguid.lib はプロジェクトの外部に存在し、dxguid.obj は存在しませんでした。
このような外部ライブラリをコンパイルするにはどうすればよいのでしょうか。
0389デフォルトの名無しさん
05/01/25 13:36:58再インストールする。
または、DirectXの製造元に入社してdxguidを再コンパイルする。
0390デフォルトの名無しさん
05/01/25 13:55:34http://www.jah.ne.jp/%7enaoyuki/Writings/ExtIos.html
を見ているんですが、例えば最初のコンストラクタでAllocConsoleが失敗したとき等のエラー処理は
どんな風にかけばいいんでしょうか?
0391デフォルトの名無しさん
05/01/25 14:07:09throwしてしまえ!
0392デフォルトの名無しさん
05/01/25 14:36:53nextの場合、↓ですよね。
//連結作業
pos->next = head;
head = pos;
//参照時
for (pos = head; pos != NULL; pos = pos->next)
ではprevの場合はどうかくのでしょうか?
0393デフォルトの名無しさん
05/01/25 15:16:19SDK 再インストールでうまく行きました。ありがとうございました!
0394デフォルトの名無しさん
05/01/25 15:41:08OutputLog()という関数で引数として渡されてきたデータを文字に変換して
それを書き込みたいのですが例えば引数としてint型やFloat型などいろいろな
型が通っても大丈夫にする方法ありますか?
それと命令でフォルダが存在するかどうかを知る命令はありますか?
0395デフォルトの名無しさん
05/01/25 15:51:24C++ならtemplate使えば
0396デフォルトの名無しさん
05/01/25 15:53:25「ですが」が3回も繰り返されていて何が言いたいのかよく判らないんですが。
取り敢えず、stdio.hのprintf()の宣言でも見てみたら如何でしょうか。
フォルダが存在するかどうかを知る命令は、「フォルダが存在するかどうか教えろ」でどうでしょう。
関数名を知りたいのなら、環境依存なので一概には言えません。
0397デフォルトの名無しさん
05/01/25 15:54:38C++にフォルダが存在するかどうかを確かめる関数はない。
0398デフォルトの名無しさん
05/01/25 15:55:200399デフォルトの名無しさん
05/01/25 16:15:19ios_base::sync_with_stdio()
0401デフォルトの名無しさん
05/01/25 17:11:19既にコンソールが割り当てられている状況でもAllocConsoleは失敗する。
だからGetStdHandleがINVALID_HANDLE_VALUEを返すかどうかでthrowするか判断した方がいいんじゃないか?
0402デフォルトの名無しさん
05/01/25 19:30:22#define OutputLog fprintf
真面目にやるなら可変長引数。va_arg を調べれ。
0403デフォルトの名無しさん
05/01/25 19:39:281 文字列をキーボードから読み取り、その文字列を暗号化した文字列を表示するプログラム。ただし、入力する文字列は英数記号のみとする。
2 暗号化は次の方法で行う。文字列中のローマ字を大文字小文字を問わず下記に示すとおりの置き換えを行う。
3 ローマ字以外の文字は暗号化しない。
a b c d e f g
↑ ↑ ↑ ↑ ↑ ↑ ↑
↓ ↓ ↓ ↓ ↓ ↓ ↓
n o p q r s t
環境はBC++5.5.1 WinXPです。よろしくお願いします。
0404デフォルトの名無しさん
05/01/25 20:05:52スレ違い
>「ぼるじょあがC/C++の宿題を片付けますYO! 39代目」
0405デフォルトの名無しさん
05/01/26 00:16:46typedef int (WINAPI *LPMYFUNC)(const HWND _hwnd,LPCSTR _szCmdLine,LPSTR _szOutput,const DWORD _dwSize);
LPMYFUNC lpMyfunc;
HINSTANCE hdll = LoadLibrary("MYFUNC.DLL");
if(hdll == NULL){
printf("MYFUNC.DLL が見つかりませんでした。\n");
exit(-1);
}
lpMyfunc = (LPMYFUNC)GetProcAddress(hdll ,"Myfunc");
lpMyfunc(GetForegroundWindow(),cmdLine,buf,sizeof(buf));
おそらく最終行で0x00000000に書き込もうとして、落ちてしまうみたいなんですが、
どこを直せばいいのかご教授お願いします。
0406デフォルトの名無しさん
05/01/26 00:45:24あんたの頭
0408デフォルトの名無しさん
05/01/26 00:52:40じゃないか?
というかコンパイル通ったのか?それ
0409405
05/01/26 00:58:44実は
(*lpMyFunc)(GetForegroundWindow(), cmdLine, buf, sizeof(buf));
でもやってみてあったんですが、
コンパイルは共に通り、同じように0x00000000に書き込もうとして落ちます。
一応コンパイラーは
bc++ 5.5です。
0410デフォルトの名無しさん
05/01/26 01:00:15同名関数がちゃんとexportされてるか、exescopeあたりでdllを調べてみては。
0411デフォルトの名無しさん
05/01/26 01:02:11戻り値のチェックもしてないし。
最初に環境すら示そうとしないんだからその程度。
0412405
05/01/26 01:07:59Tar関数を用いて
解凍処理をしたいなと思ってまして、質問いたしました。
ドキュメントを見る当たり、関数名はTarであっている気がしますが、
もしヒットしていないなら、
if(lpTar == NULL){
printf("Tarが見つかりません。\n");
exit(-1);
}
上記には書きませんでしたが、
で弾かれますよね?
0413デフォルトの名無しさん
05/01/26 01:11:42じゃねーよ
自分で確かめろよそのくらい
知恵遅れじゃあるまいし
0414デフォルトの名無しさん
05/01/26 01:14:00で0x00000000になってるかチェック
0415デフォルトの名無しさん
05/01/26 01:15:470416デフォルトの名無しさん
05/01/26 01:18:020418デフォルトの名無しさん
05/01/26 01:25:060419デフォルトの名無しさん
05/01/26 01:25:500420405
05/01/26 01:43:45修行しなおして
出直します。
低レベルですみません。
また何かあったときは宜しくお願いします。
回答者の皆様アドバイスどうもありがとうござした。
この短いプログラムで一週間も… orz
つうさんgoogle二桁後半…
自分なりに今のレベルで考えられることをし尽くしました。
>>413さんの言うように知恵遅れなんでしょう。
では失礼。
0421デフォルトの名無しさん
05/01/26 13:44:32初心者スレなんだからいいんじゃねーの。
がんばれ!
0422デフォルトの名無しさん
05/01/26 14:03:210423デフォルトの名無しさん
05/01/26 16:39:17このようなことは不可能なのでしょうか?
typedef void (__closure *METHOD_PTR)(void);
void sage(void) { }
main() {
METHOD_PTR hoge;
hoge = (METHOD_PTR)sage;
hoge();
}
以下のようにするとコンパイルは通り、正常に動作するのですが‥‥
(通常の関数ポインタを入れたいのでこれはNG)
typedef void (__closure *METHOD_PTR)(void);
class class_a { public: void sage(void) };
main() {
METHOD_PTR hoge;
class_a a;
hoge = a.sage;
hoge();
}
0424デフォルトの名無しさん
05/01/26 16:58:11統一的に扱いたいなら、boost::functionを使うといいと思う。
0425デフォルトの名無しさん
05/01/26 17:50:38200 3 20
10 200 300
1 20 3
という数字を読み込んで、その縦の数字をそれぞれたすには
どうすればいいですか?教えてください
0426デフォルトの名無しさん
05/01/26 17:54:45#define N 3
int i, j, (*num)[N], sum[N];
//ここでnumに読み込む。
for (i = 0; i < 行数 i++)
for (j = 0; j < N; j++)
sum[i] += num[j][i];
0427デフォルトの名無しさん
05/01/26 17:58:02ありがとうございます。
0428デフォルトの名無しさん
05/01/26 17:58:460429デフォルトの名無しさん
05/01/26 19:29:01有効数字の桁数を指定して変換するにはどうしたらいいですか?
小数点以下何桁という指定はできるのですが、有効数字何桁の指定がわかりません
環境はVisualC++2003のWindowsXPです
0431デフォルトの名無しさん
05/01/26 20:31:50#include <sstream>
char* scientific(double d, int n, char* c, int size)
{
std::stringstream ss;
std::scientific(ss);
ss.width(size);
ss.precision(n - 1);
ss << d;
ss >> c;
return c;
}
#include <iostream>
int main()
{
char c[256];
std::cout << scientific(1.23456789, 8, c, sizeof(c));
}
0432デフォルトの名無しさん
05/01/26 23:21:04クラスのメソッドと関数では型が違う。
0433デフォルトの名無しさん
05/01/27 00:23:26class CParent
{
public:
func(int a, int b);
};
class CChild: public CParent
{
public:
func(int n);
};
と定義し、
CChild child;
child.func(x, y);
とすると、不正な2つの実引数を持って呼び出されたとエラーがでます。
クラス CParent, CChild の func は引数の個数が違うため、
オーバーロードされないと思うのですが、
なぜこのようなエラーが出るのでしょうか。
child.CParent::func(x,y); とすれば動くことは動くのですが……。
0434デフォルトの名無しさん
05/01/27 00:27:56継承による同名の関数宣言は、オーバーロードとはならず、隠蔽されます。
従ってエラーが出ます。
コンパイラに隠蔽ではない事を伝えるには
using CParent::func;
とすればよいです。
0435デフォルトの名無しさん
05/01/27 00:28:420436デフォルトの名無しさん
05/01/27 00:31:32そそ。具体的には
class CParent {
public:
void func(int a, int b) {}
};
class CChild: public CParent {
public:
using CParent::func;
void func(int n) {}
};
0437デフォルトの名無しさん
05/01/27 00:32:42いやしかしC++は細かい変なルールがたくさんあって、忘れずにいるだけでも
大変だわ。。。。
0438デフォルトの名無しさん
05/01/27 00:36:360439デフォルトの名無しさん
05/01/27 00:44:13C++FAQのFAQ7.06で、public継承した子クラスが親クラスの関数を隠蔽する
時点で、設計が間違っていると書いてあるな。
a-kind-ofなんだから、仮想関数で振る舞いを変えるのならわかるが、親クラス
の関数がデフォルトで使えなくなった時点で、もはや継承関係はぶっ壊れているも
同然だ。
0440デフォルトの名無しさん
05/01/27 00:46:15読んだけれど、実感と理解はしていないんだね?
0441433
05/01/27 00:56:13using 〜 を使う方法で上手く行きました。
>>439 の話に興味が沸きましたので色々調べてみたいのですが、
この方法自体に名前はついているのでしょうか?
名前が分かれば調べやすいので。
0442デフォルトの名無しさん
05/01/27 00:59:05いや・・・・その前に、public継承の意味を正しく理解する事の方が先だ。
その上でusing宣言をすべきだと思う。
そもそもusing宣言は、friend宣言と同じく、C++のカプセル化の原則を
無視する危険なキーワードなので、乱用はよくない。
0443433
05/01/27 01:01:46確かに、実は最近まで 継承 = public と思い込んでいて、
他の方法での継承を学んだことがありません。
いい機会なので学んでみることにします。ありがとうございました。
0444デフォルトの名無しさん
05/01/27 01:03:04調べるだけなら
using-declaration
でぐぐってみ。
0445デフォルトの名無しさん
05/01/27 20:05:54config.ntでdevicehigh=%SystemRoot%\system32\ansi.sysを追記して
command.com内でプログラムを実行しましたが意図どおりに表示できません。
例:反転のエスケープシーケンスの場合
(k/bのenter記号)[7;32m
どうしたら出来るのでしょうか?教えてください。
0446デフォルトの名無しさん
05/01/27 21:22:17NT系ではエスケープシーケンスは使えない。
0447デフォルトの名無しさん
05/01/27 21:34:02エントリポイント '_mainCRTStartup' は 12 バイトの引数を持つ __stdcall ではありません。イメージは動作しない可能性があります
と警告が出て実行すると有効なWin32アプリでないといわれてしまいます. リンクオプションに/DEF:"test.def"を追加しています.
EXPORTS mainCRTStartupを加えてみたり__stdcallをmainCRTStartupの宣言に加えてみたりしたのですがだめでした
以下ソースコードです
#include <windows.h>
#include <iostream>
typedef void (*func_t)();
void Hello()
{
std::cout << "Hello" << std::endl;
}
int main()
{
HMODULE this_exe = GetModuleHandle(NULL);
func_t hello= (func_t)GetProcAddress(this_exe,"Hello");
hello();
return 0;
}
以下test.defです
LIBRARY test
VERSION 1.0
EXPORTS Hello
ttp://hp.vector.co.jp/authors/VA023539/tips/dll/006.htmにdefファイルを作れば__declspec(dllexport)がいらないと
書いてあったのでできるだけdefファイルを使いたいです
0448デフォルトの名無しさん
05/01/27 21:41:37「_mainCRTStartup' は 12 バイトの引数を持つ __stdcall ではありません。」
というのはつまり普通のDLLだとDllMainを呼ぶべきところがEXEファイルだと
DllMainにあたる関数が_mainCRTStartupであり、_mainCRTStartupは引数を1つも取らないから変なことになる。
ちゃんとDLL作って試せ。
0450デフォルトの名無しさん
05/01/27 22:29:28広めて下さいorz
0451デフォルトの名無しさん
05/01/27 22:39:41共にありません。
0452デフォルトの名無しさん
05/01/27 22:40:24http://afterbeatclub.hp.infoseek.co.jp/frame.html
広めて下さいorz
0453デフォルトの名無しさん
05/01/27 22:42:06450:デフォルトの名無しさん:05/01/27 22:29:28
http://afterbeatclub.hp.infoseek.co.jp/frame.html
広めて下さいorz
0454447
05/01/27 22:48:18確かにdefファイルを使えば__declspec(dllexport)をつけてない関数をよびだせました.
文字列経由で関数呼び出しの件なのですがとりあえずdefファイルをあきらめ
extern "C" __declspec(dllexport) void Hello(){...}としたら自exeの関数を呼び出せました
しかしdefファイルをリンクオプションに付け加えると448さんの言うとおりDllMain( 12 バイトの引数を持つ __stdcall)が
ないため起動不可のexeになってしまいます.えせDllMainをつけても実行されませんでした.
defファイルはdllを作るときにしか使ってはいけないのでしょうか
defファイルを使いつつエントリポイントをmainCRTStartupにしても呼び出せる方法はありますか?
0455デフォルトの名無しさん
05/01/27 23:24:41test.defの
LIBRARY test
がいらない。
参考
http://www.microsoft.com/japan/developer/library/vccore/_core_library.htm
0456447
05/01/27 23:46:400457デフォルトの名無しさん
05/01/28 01:32:28普通にVC?それともなんか別のツール使ってる?
何かお勧めのツールあったら教えてくれ
0458デフォルトの名無しさん
05/01/28 01:55:590459デフォルトの名無しさん
05/01/28 02:12:270460デフォルトの名無しさん
05/01/28 04:00:08どうすればいいですか?
0461デフォルトの名無しさん
05/01/28 04:48:56A>B
0462デフォルトの名無しさん
05/01/28 05:23:14すみません、書き方が悪かったです。
サーバプログラムAがあって、AからはSTDOUTにログが出力されます。
Aから出力されるログを、リアルタイムに自作プログラムBで受け取るということを行いたいのですが
無理でしょうか?
0463デフォルトの名無しさん
05/01/28 05:25:17A>B
0464デフォルトの名無しさん
05/01/28 05:26:23A|B
0465デフォルトの名無しさん
05/01/28 05:38:10パイプについて調べてみます。ありがとうございました
0466デフォルトの名無しさん
05/01/28 09:38:16vectorの内容をchar*の外部ライブラリの関数に渡したいんです。
0467デフォルトの名無しさん
05/01/28 09:39:09vector<T>のT
0468デフォルトの名無しさん
05/01/28 09:50:19あるよ。
コンソールAPIで調べれ。
GetConsoleなんとか、SetConsoleなんとか。
0469デフォルトの名無しさん
05/01/28 09:52:05froat*です。
どうもすいません。
0470デフォルトの名無しさん
05/01/28 09:52:59プログラムやめろ
0471466
05/01/28 09:53:44char型です。
0472デフォルトの名無しさん
05/01/28 09:54:41&vec[0]
0473デフォルトの名無しさん
05/01/28 09:56:440474デフォルトの名無しさん
05/01/28 09:58:23&vec[0]
pop_back();
0475466
05/01/28 10:00:16ありがとうございました。
0476デフォルトの名無しさん
05/01/28 11:07:120477デフォルトの名無しさん
05/01/28 11:54:16テキストファイルから、最大値を求めたいです。
ネットで、「n個の最大値を入力して求める」プログラムを見つけましたが、
とても3000個は入力できません。
どうか、そのプログラムを教えて下さい。
0478デフォルトの名無しさん
05/01/28 12:01:310479秘密K殺隊員8号
05/01/28 12:09:08無断多重投稿の現行犯で逮捕する!
0480デフォルトの名無しさん
05/01/28 12:15:14申し訳ありませんでした。
掲示板の決まりを知りませんでした。
別の所で、「宿題」のスレッドに書くように
教わったので、今からそちらに書かせていただきます。
失礼しました。
0481デフォルトの名無しさん
05/01/28 12:21:41環境によってやりかた変わるんだけど。
0482デフォルトの名無しさん
05/01/28 15:52:100483デフォルトの名無しさん
05/01/28 16:54:260484デフォルトの名無しさん
05/01/28 23:48:550485デフォルトの名無しさん
05/01/29 03:57:490486デフォルトの名無しさん
05/01/29 04:42:450487デフォルトの名無しさん
05/01/29 11:17:420488デフォルトの名無しさん
05/01/29 12:06:27dでいいよ。
0489デフォルトの名無しさん
05/01/29 16:18:180490デフォルトの名無しさん
05/01/29 16:18:450491デフォルトの名無しさん
05/01/29 20:33:230492デフォルトの名無しさん
05/01/30 13:58:240493デフォルトの名無しさん
05/01/30 14:25:270494デフォルトの名無しさん
05/01/30 14:32:190495デフォルトの名無しさん
05/01/30 16:06:47//myapp.h内に記述
class A
{
public:
static int get_a(){return a;}
private:
static int a;
};
int A::a;
という構成のヘッダを使ってプロジェクトをコンパイルしようとすると、LNK2005(シンボルの重複定義が行われている?)というエラーが発生します。
そこで、#pragma message("INC")とプリプロセッサを記述して、インクルードされた回数を確認したところ、複数回インクルードされているようなのです。
#pragma once/#ifndef myapp_inc~形式も試したのですが、変化がありませんでした。
myapp.hは、他のヘッダファイルからも参照されています。
これは、普通の事なのでしょうか。
入門中なので、正常な範囲なのか、異常なのかがわかりませんorz
よろしくお願いします。
0496デフォルトの名無しさん
05/01/30 16:24:05int A::a; は定義。定義はプログラム中で一回だけでなければいけない。
この定義が書かれたヘッダを複数のソースファイルでインクルードすると、
定義が繰り返されるので、結果としてエラーになる。
0497デフォルトの名無しさん
05/01/30 16:56:14ありがとうございます。
#pragma onceや#ifndef~の内側なら問題ないかな、と思っていたのですが、だめだったのですねorz
ということは、class b{static const int b=1;};とかもダメかな、と思って試してみたら、問題なし・・・
つまりは、同じクラス定義はオブジェクト上に複数存在することができて、静的なメンバ変数とかのインスタンスが複数あると、まずいということなのでしょうか・・・
staticなメンバ関数とかは・・・と考えると、泥沼にはまりそうです。
奥が深い...orz
0498デフォルトの名無しさん
05/01/30 16:59:110499デフォルトの名無しさん
05/01/30 17:05:52記銘忘れました。>>497は>>495の発言です。
>>498
オライリーのC++クイックリファレンス片手に、Modern C++ Design読んでる程度ですorz
0500デフォルトの名無しさん
05/01/30 17:34:36static constは整数型のときだけenumや#defineから置き換えられるよう、そういう風にクラス内で初期化できる。
(その場合cppファイルに定義を書く必要はなくなる)
0501デフォルトの名無しさん
05/01/30 20:12:15きみみたいな優秀な新人がうちにも欲しいよ
0502デフォルトの名無しさん
05/01/30 20:22:17俺が行ったげる。
やべ、新人でも優秀じゃねえや
0503デフォルトの名無しさん
05/01/30 20:27:430504デフォルトの名無しさん
05/01/30 22:53:13ようするにヘッダファイル内で実体を作っちゃダメ。
型とか関数とかの宣言だけにしとけばいい。
マクロでごまかして変則的な作りにすることはできるけど、
あまりオススメできない。
0505デフォルトの名無しさん
05/01/30 23:17:160506デフォルトの名無しさん
05/01/30 23:47:07以下のようなコードを書いたところ、
"構造体または共用体中にサイズが 0 の配列があります。"
とエラーが出ました。
原因はfunc()で宣言された"A<N-1> a;"で、
順次N-1のクラスを展開(?)していくことになり
最終的にN=0のものを展開してint array[0];としてしまうことにあるようです。
template <int N>
class A{
private:
int array[N];
/* 中略 */
public:
/* 中略 */
int func(){
A<N-1> a;
if(N==1)
return0;
/* a使ったなんらかの処理。途中a.func()等の値を使う*/
return hoge;
}
}
テンプレートを使った再帰的な処理をしたかったのですが
なにかよい書き方は無いのでしょうか。
ご教授お願いします。
環境はVC++5.0とg++です。
0507デフォルトの名無しさん
05/01/31 00:15:05何したいのか今いちわからないけどこんな感じ?
テンプレートの特殊化がコンパイラによっては通らないかも
template <int N>
class A{
private:
int array[N];
/* 中略 */
public:
/* 中略 */
int func(){
cout << N << endl;
A<N-1> a;
/* a使ったなんらかの処理。途中a.func()等の値を使う*/
return a.func ();
}
};
template <>
class A <1>{
private:
int array[1];
/* 中略 */
public:
/* 中略 */
int func(){
cout << "1" << endl;
return 0;
}
};
0508495
05/01/31 10:04:45ありがとうございます。
多重インクルードの回避の方法があり、それを適用しているにもかかわらず、定義が複数回行われてしまう、ということが不思議でしたが、そういうもんなんだと理解することにします。
コンパイラオプションで、ソースだけ出力、アセンブリだけ〜等をして、解析できるスキルがあればいいんですが、とても・・・orz
C++、奥深いです。
0509デフォルトの名無しさん
05/01/31 10:09:25プリプロセッサはコンパイラの前段階で実行されるのー にゃんにゃん
0510デフォルトの名無しさん
05/01/31 10:16:11#includeによって何が行われるかと、
分割コンパイルというのがどういうものなのかを
正確には理解していない。
アセンブラがどうこう言い出す時点で、極めて先行き不安。
0511デフォルトの名無しさん
05/01/31 10:22:370512デフォルトの名無しさん
05/01/31 10:28:44キミたちのプログラミングの平和はボクが守るよー にゃんにゃん
0513495
05/01/31 10:28:59includeは単なるテキスト置換で、ルートとなるcppファイルからツリー状にヘッダが展開されてって、結果として得られたクラス定義等がつまってるcpp??をアセンブリに変換して・・
実際のインスタンスは、cppに書いてあるから単一だけど、ヘッダでのクラス定義等は重複しうる。
で、最終的なリンクにおいて、未定義な部分と結合される・・・
って感じで理解してるんですが、だめですかorz
どっかのサイト斜め読みしたうろ覚えな記憶で・・・ あ。
そっか、最終的に結合されるときは、差分だけを結合するわけじゃなくて、機械的な結合だから、ヘッダ内に何らかの実体があると複数回、それが存在することになって・・・・
という脳内補完が降臨したんですが、いいのでしょうか・・・
0514デフォルトの名無しさん
05/01/31 10:34:49int main() { return 0; }
--test2.c--
int main() { return 0; }
この2つを合わせて実行ファイルを作ろうとするとエラーになる。
それと同じ。
0515デフォルトの名無しさん
05/01/31 10:35:19a.hに
void func();
static int a;
と書かれているとして、
a.cpp,は
#include <iostream>
#include "a.h"
int main() {std::cout << a; func(); std::cout << a; return 0;}
b.cppは
#include "a.h"
void func() {a = 1;}
だったとしよう。
さぁどうなる。
0516デフォルトの名無しさん
05/01/31 10:44:20俗に「センスがない」と言う。
ちょっと前に別スレで
sprintf一発で済むところをstrcatを組み合わせて
ごちゃごちゃやっている人がいたが、それと同じ。
ポインタを難しいものと考える人もこの部類か。
もちろん、「センスのなさ」は
ある程度は「慣れ」でカバーできる。
0518デフォルトの名無しさん
05/01/31 11:21:13グローバル変数は、静的かどうかに関わらず0に初期化される。
静的変数は、コンパイル単位ごとにスコープを持つ。
従って、0が出力されてから、0が出力される。
仮にstatic int aではなくてただのint aなら、同じ名前のオブジェクトがそれぞれのコンパイル単位に存在し、
それらがグローバルスコープを持つためにリンケージエラーが起きるはず。
0519デフォルトの名無しさん
05/01/31 12:23:54そのレベルでModernなんか読んだら大変なことにならないか?
0520デフォルトの名無しさん
05/01/31 15:39:12>includeは単なるテキスト置換で、ルートとなるcppファイルからツリー状にヘッダが展開されてって、結果として得られたクラス定義等がつまってるcpp??をアセンブリに変換して・・
>実際のインスタンスは、cppに書いてあるから単一だけど、ヘッダでのクラス定義等は重複しうる。
>で、最終的なリンクにおいて、未定義な部分と結合される・・・
>って感じで理解してるんですが、だめですかorz
その理解で大体正しい。
関数や変数の定義は一つの翻訳単位(#includeが処理された後のソースファイルのことね)
にしか存在してはいけない。
一方、型(struct, class, enum, typedef)・inline関数・templateの定義は複数の翻訳単位に
出現しても良い。
例外として>>500が指摘していることがある。
>そっか、最終的に結合されるときは、差分だけを結合するわけじゃなくて、機械的な結合だから、ヘッダ内に何らかの実体があると複数回、それが存在することになって・・・・
>という脳内補完が降臨したんですが、いいのでしょうか・・・
うん。
>>519
あの本はtemplateの知識さえあれば読めるんじゃないか?
0521デフォルトの名無しさん
05/01/31 15:53:57C、C++とかWindowsプログラミングに出てくるマクロについて詳しく知りたいんですが
どうしたらいいでしょうか?
そもそもマクロが何なのかもわからない状態で、本とか読んでても#define N 100ぐらいしか説明が無いので
行き詰まってます。
0522デフォルトの名無しさん
05/01/31 16:00:09MSDNやPlatformSDKのドキュメント
それで出てこなければヘッダをgrepしとけ
0523デフォルトの名無しさん
05/01/31 16:00:380524デフォルトの名無しさん
05/01/31 16:01:250525デフォルトの名無しさん
05/01/31 16:03:04あと、#ifとか#if definedとかと組み合わせて使えれば普通は十分かと。
折れはそれで40年間不便なかった。
0526デフォルトの名無しさん
05/01/31 16:32:30即レスありがとうございます。
MSDN読んで足りなかったときは専門書読んでみます。
0527デフォルトの名無しさん
05/01/31 16:43:04VC++.net2003ではコンパイルして動くみたいなんですが
gcc バージョン 3.4.0だとコンパイルエラーで怒られます。
gccでメンバ関数ポインタは使えないんですか?
#include <iostream>
using namespace std;
class CTest
{
public:
void func();
void funcCall();
};
void CTest::func()
{
void (CTest::*fp)() = funcCall;
(this->*fp)();
}
void CTest::funcCall()
{
cout << "hogehoge" << endl;
}
int main(void)
{
CTest t;
t.func();
return 0;
}
0528デフォルトの名無しさん
05/01/31 16:49:16>void (CTest::*fp)() = funcCall;
ん?何これ意味ワカンネ
だとさ
0529506
05/01/31 18:45:58ありがとうございました。
テンプレートの特殊化というものを知りませんでした。
おかげでひとつ利口になれました。
下はテンプレートの特殊化でぐぐって見つけたページですが
C++って本当に奥が深いのですね・・・
ttp://www.fides.dti.ne.jp/~oka-t/cpp-labyrinth.html
0530デフォルトの名無しさん
05/01/31 18:50:53自己解決
void (CTest::*fp)() = funcCall; を
void (CTest::*fp)() = &CTest::funcCall;
に変更したらうごきますた。
0531デフォルトの名無しさん
05/01/31 19:03:09Modern C++ Design
楽しいよ
0532デフォルトの名無しさん
05/01/31 19:12:53クラス CTest のメンバ関数 (引数なし、戻り値なし) を指すポインタ fp に
funcCall を突っ込む。
…で >>527 よ。
エラーの位置と内容くらいは書こうや。
0533デフォルトの名無しさん
05/01/31 21:40:01……なんでお前らエラーメッセージを読まないんだ!
0534デフォルトの名無しさん
05/01/31 21:48:54英語だからだろうよw
0535デフォルトの名無しさん
05/01/31 22:36:48しかしなんなんだろうね。ものすごくナチュラルに無視してるんだと思うけど。
0536デフォルトの名無しさん
05/01/31 22:39:140537デフォルトの名無しさん
05/02/01 04:10:34そういう人はそもそもプログラミングには向いてない
0538デフォルトの名無しさん
05/02/01 09:33:58フィルタがかかってるのはオマエ
0539デフォルトの名無しさん
05/02/01 10:49:08慣れないとさっぱり意味判らん、てのはあるだろうね。
それはまあしょうがないにしても、コードだけ見せて
「どこかがおかしい」としか言わないってのは
(初心者かどうかとは関係なく)
人にモノを訊ねる態度じゃないよなぁ、と思う。
0540デフォルトの名無しさん
05/02/01 12:17:37都合の悪い評価に対して何も言い返せないからって
そんなに頭の悪い切り返しに走らなくても…(^_^:
0541デフォルトの名無しさん
05/02/01 12:21:50ソースを晒さず「どうしたら良いですか?」よりはまし。
テンプレートがらみのエラーメッセージは
慣れてないとホントに呪文にしか見えんしな。
0542デフォルトの名無しさん
05/02/01 12:37:02何をすればいいのでしょうか?
0543デフォルトの名無しさん
05/02/01 12:40:29回線切って首釣る
0544デフォルトの名無しさん
05/02/01 12:54:05コンピャイラをインスツールする。
0545デフォルトの名無しさん
05/02/01 15:29:55論理エラーをチェックする関数らしいんですが
0546デフォルトの名無しさん
05/02/01 15:33:00アサルトの訛りだよー つまり攻撃するって事だね。プログラムからの攻撃だお。
0547デフォルトの名無しさん
05/02/01 15:46:12・ぐぐる
これだけ知ってれば10秒で解決するような質問を投げる人間の多いこと多いこと
0548デフォルトの名無しさん
05/02/01 16:37:23ここで質問する以上のコストがかかるのですから、
質問するという選択は実にまっとうだと思いますが? :-)
0549デフォルトの名無しさん
05/02/01 16:38:55基礎がたりない。
下らない質問している時間があったら基礎をしっかりと抑えておけ。
そしてこのスレは用済みだ。
0550デフォルトの名無しさん
05/02/01 16:45:182chで質問出来るならググるのも簡単だろ。
むしろ、ググる方が簡単で早いだろ。
0551デフォルトの名無しさん
05/02/01 16:45:5712 :Now_loading...774KB:04/06/23 10:56 ID:???
自分SEっぽい仕事してるんですが・・・
要は言われたものを作る仕事です。
言われた以上のものを作るのがプロってもんだと理解はしてますよ。
けど、言われた通りに作っても文句言われるんですよね。
言われた方向で、言われたレベル以上のものを作っても文句言われるんです。
要は、最後の最後で「方向が違う」って言うんですよ。
理不尽でしょ。
嫌になっちゃうでしょ。
FLASHで作品を作っていて、何が楽しいかというと、
自分で考えて、自分がいいと思って、時には制約により妥協しつつも、自分の思いで作品を晒せる。
だから、作品に対してはどんな辛らつなことを言われても甘んじて受け入れられるんですよね。
もちろん一方で楽しんでくれるひともいるからなんですが。
何か疲れた頭で書いたんで文章変なところもありますが、許してください。
別の話ですが、いろいろ言葉を調べたんですが、
「クリエイター」ってのは、言われた方向で、言われたレベル以上のものを作る人を言うそうです。
業種によっては、「エンジニア」もこれに当たるのかな。
自分の良いと思ったもの作り、それを評価してくれる人に提供するのが
「アーチスト」だそうです。
「職人」っていう言葉は前者の「クリエイター」を意味する言葉だそうです。
でも、ここ板の「職人」は、後者の「アーチスト」の類だと思うのです。
0552デフォルトの名無しさん
05/02/01 19:40:49とか2乗の数をよく利用しているのを見ますが、
2乗の数を用いると何か利点があるのでしょうか?
0553デフォルトの名無しさん
05/02/01 19:55:31メモリチップの容量が2のn乗ビット単位で進化してきたから。↓例
ttp://www.smspower.org/smsreader/cartridge.html
0554デフォルトの名無しさん
05/02/01 19:57:18マジレスすると「つい出来心で」
0555デフォルトの名無しさん
05/02/01 19:58:512バイト文字対応
0556デフォルトの名無しさん
05/02/01 20:06:382バイト文字対応なら1024よりも1000の方がスッキリしていていいような
0557デフォルトの名無しさん
05/02/01 20:09:520558デフォルトの名無しさん
05/02/01 20:11:45マイコン時代はチップの容量が 4k とかだったから、
&h0000〜&h0FFF まではチップ0
&h1000〜&h1FFF まではチップ1
とかだったのよ。チップをまたぐと極端に遅くなったりアライメントが
ズレたりするもんだから、プログラマも領域を確保する時はチップを
またがない様に組んだものさ。その名残りさね。
0559デフォルトの名無しさん
05/02/01 20:14:490560デフォルトの名無しさん
05/02/01 20:20:50実際は同じだけのメモリを貰ってるから
結局1024貰ったほうがお徳…とかどっかで聞いた気がする
まぁ、上はあんま当てにならんけど
10進数で割り切れるよりも2のn乗で割り切れたほうが
情報量を計算しやすかったりなんだりで好む傾向にある
0561デフォルトの名無しさん
05/02/01 20:31:56同じソースをdllにして、Javaから呼び出し->実行を行った場合で
実行結果があまりに異なる現象が起きてます(ノД`)
dll内でスレッドを分けているわけでもなく、
メモリリークが発生しているわけでもなさそう(STL酷使でポインタは皆無)
なんですが、他にどういったケースが考えられるでしょうか?
コンパイラはVC7.0,7.1,MinGWで、実行ファイルでの結果はどれも期待通り得ています。
また、Javaは相方が作ったもので、私自身は詳しくありませんので、
なんとなく構文理解ぐらいしかできません。
エスパー待ちになりそうな質問で申し訳ありませんが、
経験談などでも構いませんので、何かヒントになりそうなもの、ご教授ください
よろしくお願いします。
0562デフォルトの名無しさん
05/02/01 20:35:16呼び出し規約が違う
とりあえず、引数をそのままどっかに出力する関数書いて確認してみ
アドレス貰ってるつもりが値貰ってたりその逆だったりもありえるっしょ
0563デフォルトの名無しさん
05/02/01 20:44:44りとぅてぃんぽ
の違い。
0564デフォルトの名無しさん
05/02/01 20:48:00でも大きいのが嫌いな人もいるよ
0565デフォルトの名無しさん
05/02/01 21:00:06ありがとうございます。
ひとまずひたすら値を調べてみます。
0566デフォルトの名無しさん
05/02/01 21:05:56いないよ
0567デフォルトの名無しさん
05/02/01 21:12:16いるって。
0568デフォルトの名無しさん
05/02/01 22:32:15CString 型 str の値によって大量の分岐を行ないたいのですが、
switch (str) {
case "い": 〜
case "ろ": 〜
case "は": 〜
}
とすると、
〜.cpp(61) : error C2450: switch式の求める数値の型 'class CString' が不正です。
この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
と怒られました。
CString 型の値によって分岐するには、if 文を並べるしかないでしょうか。
もしくは、キャストか CString 型のメンバの何かを使うかなどでうまく switch 文を使うことが出来るでしょうか?
0569デフォルトの名無しさん
05/02/01 22:34:51case "い":
なんてのは
const char str_i[]="い"
case &str_i
とみたいなもんなので無理です
ifを書き連ねてください
0570デフォルトの名無しさん
05/02/01 22:35:020571デフォルトの名無しさん
05/02/01 22:36:58CString 型うんぬんの前に "い" 自体に問題がって何で気づかないんだよ俺ヽ(`Д´)ノ
ありがとうございました。
0572デフォルトの名無しさん
05/02/01 22:38:05"い"←これ、何型ですか?
char型の値が2つ並んでいますね。
CString("い")←これはCStringクラスのオブジェクトです。
0573デフォルトの名無しさん
05/02/01 22:43:07因みに、switchで扱えるのは整数型のみ。
0574デフォルトの名無しさん
05/02/01 22:44:16CStringは型ではない。凍んどけ。
0575デフォルトの名無しさん
05/02/01 23:00:54標準出力にて表示するコマンドを作ろうとしています。
xxxx.exe set SIZE=%s
のように実行すると
printf("set SIZE=%s", strA);
となるような。
ところが"%s"を含む文字列がうまく操作できていないようで
次の例ような現象が出ています。
(LSI-C試食版を使用しています)
int main(int argc, char *argv[]) {
int iCnt = 0;
char sAllArg[256];
char *bufP;
bufP = sAllArg;
while ( ++iCnt < argc ) {
bufP = stpcpy(bufP, argv[iCnt]);
*(bufP++) = 0x20;
}
printf(sAllArg, "##", "@@");
}
ここで「xxxx.exe aa%s bb%s」を実行して
期待する表示内容は「aa## bb@@」なのですが
「aas」とだけ表示されます。
ぐぐるとしても、検索するキーワードすら思い浮かびません。
なにかヒントをお願いします。
0576575
05/02/01 23:04:310577575
05/02/01 23:09:500578デフォルトの名無しさん
05/02/02 01:29:240579デフォルトの名無しさん
05/02/02 11:34:32プリミティブな型以外は型とは認めない。
0580デフォルトの名無しさん
05/02/02 11:46:17>"い"←これ、何型ですか?
「const char *」型
0581デフォルトの名無しさん
05/02/02 11:49:23違います。
きみ、アホですか?
0582デフォルトの名無しさん
05/02/02 11:55:230583デフォルトの名無しさん
05/02/02 11:57:50どこの学生さんのことを言っているのか見当もつかないんだけど…^^;
0584デフォルトの名無しさん
05/02/02 12:11:350585デフォルトの名無しさん
05/02/02 12:36:05おまえがな
0586デフォルトの名無しさん
05/02/02 12:43:46テーブル使えよ
0587デフォルトの名無しさん
05/02/02 12:45:43無能は一人で十分
0588デフォルトの名無しさん
05/02/02 12:54:060589デフォルトの名無しさん
05/02/02 12:57:27const char* のソース出せよ低脳
http://www.vmunix.com/~gabor/c/draft.html#6.1.4
http://www.kuzbass.ru/docs/isocpp/lex.html (2.13.4)
0590デフォルトの名無しさん
05/02/02 12:57:390591デフォルトの名無しさん
05/02/02 13:01:52L'あ'
0592デフォルトの名無しさん
05/02/02 13:09:19ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>585
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0593デフォルトの名無しさん
05/02/02 13:14:21反論してみろや!おら!
できないのか?
え?だったら謝れやッ ボクが間違っていました。ごめんなさい。ってな。
ギャハハハハッうぇっっwww
0594デフォルトの名無しさん
05/02/02 13:16:39ボクが間違っていました。ごめんなさい。ぐすん
0595デフォルトの名無しさん
05/02/02 13:22:40英語も読めない厨房に、
ソース出すだけ無駄。
0596デフォルトの名無しさん
05/02/02 14:07:450597デフォルトの名無しさん
05/02/02 14:10:290598デフォルトの名無しさん
05/02/02 14:29:30だと思うんだけど違うんですか
ネタだったらすまん
0599デフォルトの名無しさん
05/02/02 14:33:33cout << (typeid ("い") == typeid (const char *)) << endl;
0600デフォルトの名無しさん
05/02/02 14:46:170601デフォルトの名無しさん
05/02/02 15:13:57??
0602デフォルトの名無しさん
05/02/02 15:19:52Cではchar []であり、C++ではconst char []だが、Cでも文字列リテラルの内容は書き替えてはならない。
どっちにしても配列ということには変わらない。
0603デフォルトの名無しさん
05/02/02 15:44:390604デフォルトの名無しさん
05/02/02 15:46:140605デフォルトの名無しさん
05/02/02 16:14:316.4.5 String literals -5より
... For character string literals, the array elements have type char, ...
ISO/IEC 14882:1998(C++規格)
2.13.4 String literals -1より
... An ordinary string literal has type “array of n const char”...
0606デフォルトの名無しさん
05/02/02 16:25:46なのは確か、
0607605
05/02/02 16:37:37ISO/IEC 9899:1999(C99規格)
6.4.5 String literals -6より
If the program attempts to modify such an array, the behavior is
undefined.
ISO/IEC 14882:1998(C++規格)
2.13.4 String literals -2より
The effect of attempting to modify a string literal is undefined.
0608デフォルトの名無しさん
05/02/02 18:19:23小さい子供か君は。
他所で遊びなさい。
0609デフォルトの名無しさん
05/02/02 18:22:350610デフォルトの名無しさん
05/02/02 18:31:220611デフォルトの名無しさん
05/02/02 18:47:15?
0612デフォルトの名無しさん
05/02/02 18:57:26字形とか気にしなければいいんじゃない?だめか・・・
0613デフォルトの名無しさん
05/02/04 13:34:41もしくグローバル変数を参照した場合、エラーが起きる場合とかありますか?
0614デフォルトの名無しさん
05/02/04 13:45:54そういうことしても突然プログラムが終了するということはない。
なぜなら結局のところプロセス・スレッドの同時実行なんて、
1つのCPUが次々と切り替えながら順に実行しているだけだから。
だからと言って何も考えずに実行すると作業中の中途半端な
オブジェクトを操作することになってしまって鼻から悪魔が(ry
なんてことがあるから、複数スレッドから同じグローバル変数を
扱おうとするときはクリティカルセクションとかスレッド間の同期を取り、
同時にアクセスすることの無いようにするのが普通。
0615デフォルトの名無しさん
05/02/04 13:46:390616デフォルトの名無しさん
05/02/04 13:50:48CPU2個積みとかも想像しておいたら?
まぁ、どっちにしろ2つ以上のスレッドで扱うデータは一つのスレッドで処理中は
他のスレッドからアクセスしないようにしないとデバッグが大変になる
しかし、ミスるとデッドロックの危険性もあるから
なんつうかマルチスレッドは嫌いですorz
0617デフォルトの名無しさん
05/02/04 14:09:010618デフォルトの名無しさん
05/02/04 14:14:56ていうか共有メモリ型の分散コンピューティングやった事あるひといるの?うぇっっwww
0619デフォルトの名無しさん
05/02/04 14:20:28その場合互いに1つのグローバル変数を参照する場合は排他制御はしなくてもいい?
マルチスレッドとは関係ないですけど・・・マルチスレッド以外で排他制御する場合などないですか?
0620デフォルトの名無しさん
05/02/04 14:40:28スレ違いだし、それに今までの流れでなんでそんな
ことも理解出来ないんだよ。池沼じゃあるまいし。
0621デフォルトの名無しさん
05/02/04 17:56:20Zaurus上でのJava開発したことがあるけれど、簡単な読み書きで簡単に
フルリセットかかったりしたぞ。同期採るのがスッゲー面倒くさかった。。。
0622デフォルトの名無しさん
05/02/04 17:57:33ファームでは頻繁に使うけどなにか?
0623デフォルトの名無しさん
05/02/04 18:06:40アホ?
0624デフォルトの名無しさん
05/02/04 18:06:53なにも。
0625デフォルトの名無しさん
05/02/04 18:41:180626デフォルトの名無しさん
05/02/04 21:42:43クラスを分割してコンパイルするときに、
ヘッダとクラス定義部にファイルをわけることが多いと思いますが、
これは何故でしょうか?
定義部もヘッダファイルのほうに書いてしまうと、
何か都合のわるいことがあるんでしょうか?
0627デフォルトの名無しさん
05/02/04 22:07:56単なる慣例で深い意味はないよ。まあちょっとコンパイルが遅くなるくらいかな。
0628デフォルトの名無しさん
05/02/04 22:34:32おいおい(;・∀・)ヤメル
0629デフォルトの名無しさん
05/02/04 23:47:06そのクラスを使いたい人(というかプログラム)にとっては定義などいらない。
いらないものをincludeで読み込ませるのは無駄。
インスタンスも作らずメンバも参照しないならヘッダをincludeする必要すらない。
0630デフォルトの名無しさん
05/02/05 03:08:010631デフォルトの名無しさん
05/02/05 03:20:02Cカップ好きは正解に近い
最も限りなく正解に近い
でも、Cに満たない女性も多いので
油断は禁物で〜す
0632デフォルトの名無しさん
05/02/05 04:37:260633626
05/02/05 10:05:03参考にさせていただきました。
0634デフォルトの名無しさん
05/02/05 11:36:33大好きだった彼女はAA65だった
0635デフォルトの名無しさん
05/02/05 13:17:01羨ましい。
0636デフォルトの名無しさん
05/02/05 16:36:410637デフォルトの名無しさん
05/02/05 16:41:200638デフォルトの名無しさん
05/02/05 18:08:140639デフォルトの名無しさん
05/02/05 18:08:500640デフォルトの名無しさん
05/02/05 18:13:330641デフォルトの名無しさん
05/02/05 18:41:07直訳すれば「流れ」。コンピュータ用語では、先頭から順々に、シーケンシャルにしかアクセスできない
(またはランダムアクセスのコストが非常に高い)データのことを指す。
以上、アスキー デジタル用語辞典より。
0642デフォルトの名無しさん
05/02/05 19:00:580643デフォルトの名無しさん
05/02/05 20:41:54stream:川
river:河
0644デフォルトの名無しさん
05/02/05 20:59:330645デフォルトの名無しさん
05/02/05 21:34:25VCTKを使ってるんだけど、cl.exeのコマンドラインオプションを
デフォルトで指定する方法ってない?
警告とか最適化とかを指定しておきたいんだけど。
ちょっとテストプログラムで試すのにmakefileは作りたくないし
環境変数CFLAGSとか指定してnmakeを動かすか
バッチファイルでも作っておくのが妥当なのかな。
0646デフォルトの名無しさん
05/02/05 21:42:360647デフォルトの名無しさん
05/02/05 21:57:250648デフォルトの名無しさん
05/02/06 00:39:23namespaceについてのですが、
どのnamespaceにでもアクセスできる変数(globle変数)を作りたいのですが。
それは無理なのでしょうか?
今、下のようなsrcでコンパイルをかけているのですが、
mの値を参照できずコンパイルエラーになってしまいます。
-- src ---
#include <iostream>
namespace N{
double value=10.00;
}
namespace M{
double value=m; <-参照できない
}
double m=99.9;
int main()
{
std::cout << "N::value= " << N::value << std::endl;
std::cout << "M::value= " << M::value << std::endl;
return 0;
}
0649デフォルトの名無しさん
05/02/06 00:50:32これならできる。
#include <iostream>
namespace N{
double value=10.00;
}
double m=99.9;
namespace M{
double value=m;
}
int main()
{
std::cout << "N::value= " << N::value << std::endl;
std::cout << "M::value= " << M::value << std::endl;
return 0;
}
0650デフォルトの名無しさん
05/02/06 00:51:290651648
05/02/06 00:59:080652デフォルトの名無しさん
05/02/06 12:06:56とりあえず疑問をぶつけさせてください。
なんでBMPは逆さで、使いもしないデータが多いのでしょう。
設計者は何でこんなのにしたんでしょうか。
0653デフォルトの名無しさん
05/02/06 12:41:07これならできる。
#include <iostream>
namespace N{
double value=10.00;
}
double m=99.9; <--- (1) この変数のnamespace名はなんになるんですか?
namespace M{
double value=m;
}
int main()
{
std::cout << "N::value= " << N::value << std::endl;
std::cout << "M::value= " << M::value << std::endl;
return 0;
}
(1)の質問よろしくお願い
0654デフォルトの名無しさん
05/02/06 12:58:250655デフォルトの名無しさん
05/02/06 13:09:080656デフォルトの名無しさん
05/02/06 14:02:03その方が都合が良かったんじゃない
0657デフォルトの名無しさん
05/02/06 14:10:57リトルエンディアンとビッグエンディアン
0658デフォルトの名無しさん
05/02/06 14:23:48プ
0659デフォルトの名無しさん
05/02/06 14:24:020660デフォルトの名無しさん
05/02/06 14:36:420662デフォルトの名無しさん
05/02/06 22:43:52いまとあるプログラムを書いているのですが、
int i=87654321: (←8765万4321)
char j[9];
となっているとき、aを1文字ずつ文字配列にぶちこむにはどうすればいいでしょうか?
つまり、
j[0]:8
j[1]:7
j[2]:6
・・・
としたいのです。
0663デフォルトの名無しさん
05/02/06 22:45:48sprintf が助けになるだろう。
0664デフォルトの名無しさん
05/02/06 22:46:260665デフォルトの名無しさん
05/02/06 22:49:49int ii,k = 10*10*10*10*10*10*10*10*10;
char j[9];
ii = 0;
for(ii = 0;ii < 9; ii++){
j[ii] = i /k;
k/=10;
}
まるでテストしてないが
0666665
05/02/06 22:51:35誤:j[ii] = i /k;
正:j[ii] = i /k +'0';
0667デフォルトの名無しさん
05/02/06 22:55:16sprintf(j, "%8d", i);
0668デフォルトの名無しさん
05/02/07 00:48:18>なんでBMPは逆さで
ビットマップではy軸の上方向を正とした座標系なのに対し
ディスプレイでは下方向が正だからそうなっちゃったんじゃないかな?
>使いもしないデータ
パディングのことだと思うんだけど
多分4バイト境界に合わせとくとメモリアクセスが速いとかそんなんだと思う。
0669デフォルトの名無しさん
05/02/07 01:22:31ダイアログを任意の数だけ表示させたかったのでポインタでCDialogを宣言して
new→create→ShowWindow(SW_SHOW)の手順で表示させているのですが
消すとき、OnOKまたはOnCancelでDestroyWindowしてPostNcDestroyで
delte thisしているのですがメモリが完全に元に戻りません。(少し残ります)
これはこういうもんなんでしょうか
0670デフォルトの名無しさん
05/02/07 01:41:14VCスレに逝け
リンクは>>2参照
0671デフォルトの名無しさん
05/02/07 01:42:29#include <stdio.h>
main()
{
int data[10],i;
for(i=0;i<10;i++){
printf("%2d件目の入力:",i+1);
scanf("%d",data);
}
printf("\n配列内容一覧\n");
for(i=0;i<10;i++){
printf("%2d件目:%d\n",i+1,data);
}
}
これで入力と出力の値が変わるんですけど、どこが間違ってるんでしょうか。
0672デフォルトの名無しさん
05/02/07 01:49:37+ scanf("%d",&data[i]);
0673デフォルトの名無しさん
05/02/07 01:55:20+printf("%2d件目:%d\n",i+1,data[i]);
0675デフォルトの名無しさん
05/02/07 05:51:37プログラム落ちるから、おそらく型の指定が間違ってると
思い、テンプレート使ってるんでsizeof(T)と関数の呼び出し側引数sizeof(型)
で調べてみたら全く同じ数値出ました。
template <class T> void DataLoad( T* pData, int max ) {
for(int i=0; i<max; i++) {
pData[i].Load();
}
}
のようなコードです。
アクセス違反だと思われるんですが...。というか、そのメソッドに
行く前に落ちてるからアクセス違反に間違いないと。
偶数で落ちるってのも気になる。
0676デフォルトの名無しさん
05/02/07 05:59:17言ってることが意味不明だけど、そのコードで
落ちてるんだったら配列をポリモフィズムに扱ってるからじゃないか?
例えば
class Base {
};
class Derived : public Base {
};
Base* p = new Derived[10];
DataLoad(p, 10);
こんな風に
0677675
05/02/07 06:12:00キャストしても同じ
0678デフォルトの名無しさん
05/02/07 06:32:30言ってることの端々が意味不明だから、
ごちゃごちゃ言わずにソース晒せ。
オブジェクトの生成から関数呼び出し、
あとはsizeofでテストしたコード、が重要。
0679デフォルトの名無しさん
05/02/07 06:41:230680デフォルトの名無しさん
05/02/07 08:12:080681勉強中653
05/02/08 02:03:28class CTest
{
public:
void Func();
void Func2();
};
void CTest::Func()
{
void (CTest::*fpFunc)() = Func2; //<-ここでbcc32は、”メンバ関数は、アドレスまたは値を入れてください"とのエラーが出る。
(this->*fpFunc)();
}
void CTest::Func2()
{
printf("--\n");
}
int main(){
CTest c;
c.Func();
return 0;
}
このsrc、cl.exe(vc++toolkit)じゃコンパイルできるけど、bcc32.exeではコンパイルできない。
昔の仕様では、静的メンバ関数でないと、関数ポインタに設定できない仕様があったらしいことまで調べたけど
bcc32.exe 5.5.1は、あまり使わないほうがよいのでしょうか
0682デフォルトの名無しさん
05/02/08 02:17:42関数名だけを取り出すと、thisとメンバ関数のセットとして扱われる。
どんなコンパイラでも通すには &Func2とすれば良い。
0683デフォルトの名無しさん
05/02/08 02:28:38+ void (CTest::*fpFunc)() = &CTest::Func2;
0684勉強中653
05/02/08 02:34:30ありがとうございました。解決しました、明日Unixでも試してみます
0685超初心者
05/02/08 03:22:21二分木を用いて単語を登録するプログラムを作りたいのですが、
どうやって適切な関数を作ればいいのか分かりません。
メモリを確保する(malloc?)ことや、->を使うと良いのはなんとなく分かるのですが使い方がどうも・・・
あと単語を辞書順に並べるのはstrcmpを使おうと思っているのですが問題ないでしょうか?
↓ここで止まってます;
#include <stdio.h>
struct node {
int data;
struct node *left;
struct node *right;
};
int main(int argc, char argv[])
{
int i;
struct node *top;
for (i = 0; i < 10; i++){
kansuu()+
}
exit(0);
}
0686超初心者
05/02/08 03:23:34二分木を用いて単語を登録するプログラムを作りたいのですが、
どうやって適切な関数を作ればいいのか分かりません。
メモリを確保する(malloc?)ことや、->を使うと良いのはなんとなく分かるのですが使い方がどうも・・・
あと単語を辞書順に並べるのはstrcmpを使おうと思っているのですが問題ないでしょうか?
↓ここで止まってます;
#include <stdio.h>
struct node {
int data;
struct node *left;
struct node *right;
};
int main(int argc, char argv[])
{
int i;
struct node *top;
for (i = 0; i < 10; i++){
kansuu()+
}
exit(0);
}
0687デフォルトの名無しさん
05/02/08 03:47:09初心者を超えたらもう、歓迎はされないのだよ。
先ずは二分木を使わないバージョンでも作ってみたらどうかね。
それから、厳密に辞書順である必要があるならstrcmp()だけでは無理だね。
0688デフォルトの名無しさん
05/02/08 03:50:22まあ初心者を超えた超アホの意図するものではないと思うけど
0689デフォルトの名無しさん
05/02/08 03:53:58(元々コードがそのようになっていない)こと。
0690デフォルトの名無しさん
05/02/08 04:11:12ほほぉ、あんたの辞書では'a'は'Xray'より後にあるのかね。
0691デフォルトの名無しさん
05/02/08 04:20:500692デフォルトの名無しさん
05/02/08 05:40:30でリークチェックしたんですが、ファイル名、行番号が表示されない。
どなたか原因分かる方いらっしゃいませんでしょうか。
リーク情報は表示されますがファイル名、行番号のみが表示されません。
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
の順で記述してます。
_CrtSetDbgFlagマクロは、プログラムエントリポイント始めに記述。
環境依存(VC++)ということで促されてこのスレで
質問です。
0693デフォルトの名無しさん
05/02/08 06:59:00ここは環境依存OKではあるがC/C++言語の話題を扱う。
開発環境だのデバッガだのの操作はその環境のスレに逝ってくれ。
VCスレは>>2あたりにリンクがあるはず。
0694デフォルトの名無しさん
05/02/08 11:09:11は次スレ立ってないんだよな。
俺立てられないから誰か立てて。
で>>692は_CRTDBG_MAP_ALLOC
0695デフォルトの名無しさん
05/02/08 14:31:29行列の要素数(行数、列数)の最大値はいくつなんでしょうか?
double型で要素数90万個(3000行300列)は可能でしたが、
900万個(3万行300列)ではcore吐いて落ちるので、
最大値はこの間にあるだろうということはわかりました。
また、最大の要素数は変数型に依存するのでしょうか?
OSはFreeBSD4.9Rでcc 2.95.3を使用しています。
0696デフォルトの名無しさん
05/02/08 14:42:380697デフォルトの名無しさん
05/02/08 14:59:42動作環境に依存するので一概には言えない
malloc でメモリを確保できなかった場合はヌルポインタが返ってくるので
それで判断すべし
0698デフォルトの名無しさん
05/02/08 15:02:44core吐いて落ちるのは別の原因の可能性もあるぞ。
0699デフォルトの名無しさん
05/02/08 15:07:23言語依存だと大きな勘違いをしておりました。
どうもありがとうございました。
0700デフォルトの名無しさん
05/02/08 17:04:37スタックオーバーフローじゃない?
0701デフォルトの名無しさん
05/02/09 02:32:33おまいらみたいに、ハイレベルになりたい。
0702デフォルトの名無しさん
05/02/09 02:58:09とりあえず、大会社の下請けプログラマを10年やれ
嫌なら転職しろ
0703デフォルトの名無しさん
05/02/09 03:04:06とりあえず作れ。
0704デフォルトの名無しさん
05/02/09 08:10:240705デフォルトの名無しさん
05/02/09 08:13:26deleteかfreeしとき
0706デフォルトの名無しさん
05/02/09 12:18:210707デフォルトの名無しさん
05/02/09 12:23:050708デフォルトの名無しさん
05/02/09 13:00:450709デフォルトの名無しさん
05/02/09 14:45:46データをファイルに書き込むスレッドを動作させていますが
ファイルの書込みの時点で例外エラー(未定義エラー)がたまに発生します。
データを書き込むスレッドはログが300件(200kバイト程度)たまったら
動作させているのですが、ファイルの書込みでエラーがでているようです。
ちなみにファイルは書き込みスレッドが呼ばれるごとに違うファイル名で作成しています。
エラーなく書き込みさせるにはどうしたらよいでしょうか。
VC.NET2003 言語はC++です
0710デフォルトの名無しさん
05/02/09 15:10:38まさかストリームを閉じてないとかってことないよな。
0711デフォルトの名無しさん
05/02/09 18:48:11「例外エラー(未定義エラー)」 って何だよ。
0713デフォルトの名無しさん
05/02/09 19:17:19詳しく載ってるサイト教えてくださいな
コンパイラの型チェック方法など知りたいです
0714デフォルトの名無しさん
05/02/09 19:37:400715デフォルトの名無しさん
05/02/09 22:42:22http://www.jisc.go.jp/
JIS検索から規格番号X3014をどうぞ。
日本語でここより詳しいところは絶対にない。
0716デフォルトの名無しさん
05/02/10 01:35:37ありがとう。
でもエラーで見れない...。しばらく待ってから見てくださいって
表示されたから、また今度見てみます。
0717デフォルトの名無しさん
05/02/10 01:55:49ローカルに保存できないんだね。
有能なプログラマを育てる為にもなんとかならんかねぇ。
0718デフォルトの名無しさん
05/02/10 02:00:240719デフォルトの名無しさん
05/02/10 02:35:40「有能な」という接頭辞をつけるのが憚られる訳だが。
0720デフォルトの名無しさん
05/02/10 08:48:430721デフォルトの名無しさん
05/02/10 12:05:320722デフォルトの名無しさん
05/02/10 12:22:34パソコンショップ
0723デフォルトの名無しさん
05/02/10 14:27:48Borland C++ Compiler 5.5 無償ダウンロードサービスページ
0724デフォルトの名無しさん
05/02/10 14:31:50ググれば紹介ページが見付かるだろ。しね。もう来るな。
0726デフォルトの名無しさん
05/02/10 21:29:304万数千円払って、VisualStudio.net proに格上げする価値はあります?
現状ではVC++7が目的になるわけですが(VB.netやVJを使う気は無いです)、
VC++7だと6に比べて画面が作りやすいとか、C++.netにソースレベルで持って行けるとか
利点があるのでしょうか?
0727デフォルトの名無しさん
05/02/10 21:34:330728デフォルトの名無しさん
05/02/10 22:04:41すまん、日本語で書いてくれ。
0729665
05/02/10 22:21:26テンプレートクラスとかでコンパイル不可になる可能性がある
んでboostとか使うつもりなら7.1にすべしってことじゃねぇかな
0730デフォルトの名無しさん
05/02/10 22:22:060732デフォルトの名無しさん
05/02/11 04:28:37Borlandが出したTurboCのデキの良さに焦ったM$が出したQuickCなぞ、
バグだらけな上にANSIC準拠じゃないわ遅いわ重いわバグだらけだわで
使いモンにならんかったぞ。
汚名挽回で得意の改名をして出したMS-Cは結局最後のバージョンまで
酷い使い勝手のままだったし。
0733デフォルトの名無しさん
05/02/11 09:36:310734デフォルトの名無しさん
05/02/11 12:42:440735デフォルトの名無しさん
05/02/11 15:05:340736デフォルトの名無しさん
05/02/11 15:22:190737デフォルトの名無しさん
05/02/11 15:24:45汚名返上
0738デフォルトの名無しさん
05/02/11 15:35:010739デフォルトの名無しさん
05/02/11 16:03:140740デフォルトの名無しさん
05/02/11 17:48:15挽回なんかしてないよ。
汚名をすすいでないから。
挽回する必要はないもん。
0741デフォルトの名無しさん
05/02/11 17:55:000742デフォルトの名無しさん
05/02/11 17:56:15{
return true;
}
0743デフォルトの名無しさん
05/02/11 17:58:220744デフォルトの名無しさん
05/02/11 18:31:14MS = 1
};
0745デフォルトの名無しさん
05/02/11 19:45:280746デフォルトの名無しさん
05/02/11 20:40:59bool operator()() const { return true; }
};
0747デフォルトの名無しさん
05/02/11 21:20:08printf("\n 出力ファイル名を入力してください。\n ");
scanf("%s",&ofn);
これだと、ファイル名にディレクトリや拡張子を書かないと思いの場所に思いの形式で保存できません。
ディレクトリと拡張子をプログラムのほうで固定する方法をご教授ください。。。orz
0748デフォルトの名無しさん
05/02/11 21:25:290749デフォルトの名無しさん
05/02/11 21:28:01さらに'\'があればそこまでがファイル名。
で、あらかじめ用意したパスと拡張子を前後に加える。
0750デフォルトの名無しさん
05/02/11 21:39:54_makepath
0751747
05/02/11 21:47:02>>748
おかげさまで拡張子に関してはうまくいきました。ありがとうございます。
これの逆のやり方があればディレクトリもうまくいきそうなのですが・・。
>>749
winですが、、、すみません。俺のボンクラ頭脳では理解しきれませんでしたorz
>>750
漏れの持ってる入門本にはそのような関数は・・・orz
0752デフォルトの名無しさん
05/02/11 22:10:24structじゃないのが気になる
0753デフォルトの名無しさん
05/02/12 00:37:03マルチバイトだと酷い目にあうよ。
0754デフォルトの名無しさん
05/02/12 05:36:48const char* lpszBuf = "全角スペース→ " ;
int i = 0 ;
do{
if((lpszBuf[i] == 0x81) && (lpszBuf[i+1] == 0x40)){
cout << "全角スペース発見" << endl ;
i++ ;
}
i++ ;
}while(lpszBuf[i] != '\0') ;
return 0;
}
全角スペースを発見できないです。このやり方では駄目なんでしょうか?
最終的には文字列からスペースを全て取り除く関数を作りたかったんですが
半角は問題なく出来て全角で引っかかってしまいました。
0755デフォルトの名無しさん
05/02/12 08:20:49char型が格納できる値は処理系依存。例えば-128〜127のこともある。
そんなときに0x81と比較して一致するはずが無い。だから0xじゃなくて'\x'にしろ。
(まぁ、const unsigned char *にするという逃げもあるが)
でもな全角文字のあるときはなんだかんだ言ったってワイド文字が楽だ。
int _tmain(int argc, _TCHAR *argv[]) {
const char* pszBuf = "全角スペース→ ";
int i = 0;
for (int i = 0; pszBuf[i] != '\0'; i++) {
if ((pszBuf[i] == '\x81') && (pszBuf[i + 1] == '\x40')) {
cout << "全角スペース発見" << endl;
i++;
}
}
return 0;
}
0756デフォルトの名無しさん
05/02/12 11:14:25開くファイルが存在しなかった場合はプログラムを終了させようと思ってますが、
ファイルが存在してないにもかかわらず、プログラムは終了せず、
フォルダを見ると勝手にファイルが作成されています。
ファイルがない場合、即時終了させるにはどうしたら言いのでしょうか。
---- ソースファイル -----
#include <iostream.h> // 標準入出力
#include <fstream.h> // 標準ファイル入出力
#include <cstdio> // getchar
#include <cstdlib> // exit
int main(int argc, char *args[]){
ifstream fin; // ファイル読み込み
// 読み込み用ファイルを開く
fin.open( args[1], ios::in );
if( !fin ){
cout <<"ファイル:" <<args[1] <<"が開けません。" <<endl;
getchar();
exit(1);
}else{
cout <<"ファイル:" <<args[1] <<"を開きました。" <<endl;
getchar();
}
return 0;
}
0757デフォルトの名無しさん
05/02/12 11:16:37C++でexitはやめたほうがいいよ。
デストラクタが働かない。
0758デフォルトの名無しさん
05/02/12 11:45:15知らなかったよーーーー
0759デフォルトの名無しさん
05/02/12 11:52:47それで問題ないはずだけど。
ただし、exitをreturnにするのと、
#include <iostream>
#include <fstream>
using namespace std;
0760デフォルトの名無しさん
05/02/12 13:05:32ちょっと考えればすぐ想像できるだろ。
0761デフォルトの名無しさん
05/02/12 16:14:38int a;
int a;
int a;
int main()
{
a = 10;
return 0;
}
このソースがコンパイル通ってしまうことに気づいて愕然としたんですが・・・
このような表記が許されている理由がわかる人はいますか?
0762デフォルトの名無しさん
05/02/12 16:17:45Cでは通るが、C++では通らないらしい。ちょっと安心した。
0763デフォルトの名無しさん
05/02/12 16:28:37aは再定義で同じ定義内容。
externの省略か?
多重定義はやめろ
0764デフォルトの名無しさん
05/02/12 16:53:17m["key1"] = "data1";
m["key2"] = "data2";
と代入したら
cout << m["key1"] << endl;
cout << m["key2"] << endl;
の結果がともにdata2になるんだがどうして???
0765756
05/02/12 17:16:32デストラクタあまり意識したことなかったのでCと同じようにしてました。
C++でのexitはこれ以降止めときます。
>>759
ありがとうございます。うまく期待通りに動きました。
namespaceを使用しなければいけなかったんですね。
使用するしないで変わる意味がよくわからないので
namespaceから勉強しなおします。
0766デフォルトの名無しさん
05/02/12 17:39:54非ローカルなインスタンスがなく、exit()の使用をmain()に限定し、main()ではインスタンスを生成しなければ問題ない。
つまり、main()をOSとのインターフェースに限定するということだね。
0767デフォルトの名無しさん
05/02/12 17:44:51#include <iora.h>
#include <iostream.h>
0768デフォルトの名無しさん
05/02/12 17:46:16ごめん、漏れの頭じゃわかんない。
もうちょっとわかりやすくしてほすい。
0769デフォルトの名無しさん
05/02/12 17:47:43そういうことだったんだ
これを3日間悩み続けてました(-_-)
そもそも0x81のみでもまったく引っかからなかったので・・・
\xなんて書き方ぜんぜん知らなかったからここで聞いてよかったです
ありがとー!!
0770デフォルトの名無しさん
05/02/12 18:00:04>766は、デストラクタが必要ない状況。
0771デフォルトの名無しさん
05/02/12 18:26:12具体的にはどうすればいいんすか?
0773デフォルトの名無しさん
05/02/12 18:33:21>非ローカルなインスタンス
は、あっても構わないと思われ
0774デフォルトの名無しさん
05/02/12 18:54:30long number;
↑の変数に入っている数字の
桁数と各桁の数字を取り出したいのですが、
どのような方法があるでしょうか。
どうかよろしくお願いします。
0775デフォルトの名無しさん
05/02/12 18:57:57strlen(buf);
0776デフォルトの名無しさん
05/02/12 19:17:45電話番号だったら文字列使えよ
0778デフォルトの名無しさん
05/02/12 20:31:50>>775 じゃダメなの?
0779デフォルトの名無しさん
05/02/12 20:55:50なんでだろ?
漏れもわからん・・・
0780デフォルトの名無しさん
05/02/12 21:00:14ハッシュ値の衝突か? バグっぽい
map<string,string>使え
0781764
05/02/12 21:06:52それしかないのか・・・OTL
0782デフォルトの名無しさん
05/02/12 21:15:140783デフォルトの名無しさん
05/02/12 21:17:190785デフォルトの名無しさん
05/02/12 21:46:28map はハッシュ表じゃないぞ
0786764
05/02/12 21:59:200787デフォルトの名無しさん
05/02/12 22:00:120788デフォルトの名無しさん
05/02/12 22:06:540789デフォルトの名無しさん
05/02/12 23:57:02こういうケースはたいてい実際テストしたソースにポカミスがある。
0790デフォルトの名無しさん
05/02/13 02:33:34リテラル渡してるのが気になるところ。
nullで終わる文字列としてコピーされるのかな?
ちなみに、
template < typename T >
void showName( T& ) { std::cout << typeid(T).name() << std::endl; }
として、
showName("data1");すると、char const [6]って表示されます(VC++7.1)。
0791デフォルトの名無しさん
05/02/13 02:50:37なに寝ぼけたこと言ってんだ。
引っ込んでろ。
0792デフォルトの名無しさん
05/02/13 02:55:18微笑ましいじゃありませんか
0793デフォルトの名無しさん
05/02/13 03:07:50思ってるのがかなり居そうだな
0794デフォルトの名無しさん
05/02/13 04:52:25”nullで終わる文字列としてコピーされる”ってあたりがなんだけど,
全体としてそんな的外れかな?
using namespace std;
map<string, char *> m;
cout << static_cast<void const*>("data1") << endl;
m["key1"] = "data1";
m["key2"] = "data2";
cout << static_cast<void*>(m["key1"]) << endl;
cout << static_cast<void*>(m["key2"]) << endl;
ってやってアドレス確認してみたら,
0x446000
0x446000
0x446010
ってなったよ(g++ 3.4.0).
VC6ではおそらく,3つとも同じ数値になるんじゃない?
0795デフォルトの名無しさん
05/02/13 05:00:08おまいのレベルが低すぎて話になってないってこと。
要するに書くだけ邪魔。>>791にも言われてるだろ。
あとやっぱりずれてんの。
せめて禿本なり一冊は良本読んで出直してこい
0796デフォルトの名無しさん
05/02/13 05:02:110797デフォルトの名無しさん
05/02/13 05:36:05ごめん.文字列リテラルってスタックとは違う領域に配置されるのね...
0798デフォルトの名無しさん
05/02/13 05:40:280799デフォルトの名無しさん
05/02/13 05:53:50念のために言っておくが、
その一番目と二番目のアドレスが同一なのは環境依存だぞ。
0800デフォルトの名無しさん
05/02/13 06:06:56http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_.2f.gf.asp?frame=true&hidetoc=true
0801デフォルトの名無しさん
05/02/13 13:16:16delete this;しちゃってもよかですか?いちお例外くらいは出しとくとして。
0802デフォルトの名無しさん
05/02/13 13:27:07つEssenceパターン
0803デフォルトの名無しさん
05/02/13 13:28:55だめ。newで呼ばれたコンストラクタで例外が発生した場合、自動的に
deleteが呼ばれる。
0804デフォルトの名無しさん
05/02/13 14:08:270805デフォルトの名無しさん
05/02/13 14:52:510806801
05/02/13 16:23:23なるほど、Essenceパターン使えばよさそうですね。
ただ、Essence役を間に挟んでのアクセスは嫌なので、
生成したインスタンスのポインタを返そうと思ったのですが、
その場合解体責任が不明確になってしまうなぁと。
smart_ptr使えばいいのかもしれないけど、組み込み系プログラム
なんでそこまでやるとおおげさな気もしてしまいます。
単純にコンストラクタで例外を発生させるだけでもよかですか?
0807デフォルトの名無しさん
05/02/13 16:42:21なら仕方ないが。
0808デフォルトの名無しさん
05/02/13 17:37:39例外投げるコストは大丈夫で、smart_ptrが大げさ?
珍しい環境だな。
0809764
05/02/13 23:50:59理由は不明・・・
0810デフォルトの名無しさん
05/02/13 23:59:36いやmap<string,string>なら期待通り(?)に動くのは当然でしょ、
問題はchar*のときの挙動なのであって。
0811デフォルトの名無しさん
05/02/14 00:17:16うちの環境(BCC)なら問題なし。
VC6があるシト検証キボン。
0812デフォルトの名無しさん
05/02/14 00:32:210813デフォルトの名無しさん
05/02/14 00:40:280814デフォルトの名無しさん
05/02/14 18:23:420815デフォルトの名無しさん
05/02/14 18:31:57#include
#define
#ifndef
etc..
これらはプリプロセッサで、コンパイルが始まる前に実行される。
マクロとは、手続きの静的な置き換えのこと。
0816デフォルトの名無しさん
05/02/14 18:50:440817デフォルトの名無しさん
05/02/14 18:53:530818デフォルトの名無しさん
05/02/14 18:59:03いてもいろんなとこに書き込むのはだめですか?すみません気をつけます・・
時間がとにかくなくて・・・
0819デフォルトの名無しさん
05/02/14 19:01:17人に聞くなら信用しなさい。
マルチポストをするということはそのスレ住人を信用していないことになります。
0820デフォルトの名無しさん
05/02/14 19:23:33動的に確保する、とか、、
0821デフォルトの名無しさん
05/02/14 19:37:02「動的」実行時
0822デフォルトの名無しさん
05/02/14 19:37:40始めにこうと決めてしまったら動かしようがないのが静的、
決めた事を後でも動かせるのが動的
0823デフォルトの名無しさん
05/02/14 19:59:14現在C++BuilderでCpad使ってるのですが、
file1.h 関数プロトタイプ宣言
file2.c 作成した関数の定義
sample1.c プログラム本体
と作って
ソースファイルをコンパイルしオブジェクトファイル作成されたのですが
その後どうやってプログラムを動かすのかがわかりません。
良ければレス下さい。。。
0824デフォルトの名無しさん
05/02/14 20:04:20宿題は自分で汁
0825デフォルトの名無しさん
05/02/14 20:04:29どこかにsample1.exeができているはず。
0826デフォルトの名無しさん
05/02/14 20:10:56ありがとうございます。探してみます。
0827デフォルトの名無しさん
05/02/15 00:57:15C/C++での「プリプロセッサ」とは、
言語仕様のうち
・コメント
・#if〜 による条件コンパイル
・#include によるファイル取り込み
・#define によるマクロ置換
などを担当する部分。
C/C++で「マクロ」と言えば、このうち「 #define によるマクロ置換」で定義されるもの。
0828デフォルトの名無しさん
05/02/15 10:34:38a = (a >= 100) ? 1 : a++;
が正常に動いていたのに
XP&C++.NETではaの値が増えません。
a = (a >= 100) ? 1 : a + 1;
とすれば動きましたが何故でしょう?
3項演算子使うなと言えばそれまでですが、
原因が知りたいのです。
宜しくお願いします。
0829デフォルトの名無しさん
05/02/15 10:44:54>a = (a >= 100) ? 1 : a++;
副作用点の違い。
個人的には、こんな書き方で正常に動くと思う、
あなたの頭の方がおかしいと思う。
0830デフォルトの名無しさん
05/02/15 10:52:21a = a++;
って、aの値を取り出してaに代入してからaをインクリメントするのか(結果インクリメントされる)
aの値を取り出してaをインクリメントしてから、先ほど取り出した値をaに代入するのか(結局値は変わらない)
言語的に決められてるのかな?
0831デフォルトの名無しさん
05/02/15 10:54:45規格見ればわかる
0832デフォルトの名無しさん
05/02/15 10:55:00はい。
0833デフォルトの名無しさん
05/02/15 11:00:02a = 1 + a%100;
ではダメか?
0834デフォルトの名無しさん
05/02/15 11:00:10実在したんだな
0835デフォルトの名無しさん
05/02/15 11:01:57割り算のコストと条件分岐のコスト、どっちが高いんだろう。
0836デフォルトの名無しさん
05/02/15 11:02:51a++ってa=a+1っていう意味だよね?
a=(a>=100)?1:a=a+1;???
0837デフォルトの名無しさん
05/02/15 11:09:56勉強し直した方がいいよ
0838デフォルトの名無しさん
05/02/15 14:30:10表示してるのですが、配列aのx番目の要素にフォーカスかキャレットが
来たときにそれを判別する方法はありますか?教えてください
0839デフォルトの名無しさん
05/02/15 14:50:350840デフォルトの名無しさん
05/02/15 14:53:02わざわざマルチしてるか巡回して調べたんですか?w
カスは黙っとけよwww
0841デフォルトの名無しさん
05/02/15 15:03:26エディットコントロールにどうやって配列を表示してるのか知らんが
(多分、ここを説明しないと誰にも判らん)
フォーカスが来たところで選択している位置を取得して、そこから
判断出来ないのか?
>>840
この上なく頭悪そうに見えるんで、「w」連発はやめておいた方が吉。
0842デフォルトの名無しさん
05/02/15 15:15:15フォーカスが来たときの座標を取れたとしてその位置に表示してある
データの中身が1バイトだけわかればいいです。教えてください
0843デフォルトの名無しさん
05/02/15 15:17:290844デフォルトの名無しさん
05/02/15 15:21:310845デフォルトの名無しさん
05/02/15 15:26:450846デフォルトの名無しさん
05/02/15 15:28:30わかるか?カス?w
0847デフォルトの名無しさん
05/02/15 15:44:170848デフォルトの名無しさん
05/02/15 15:52:180849838
05/02/15 15:52:55とりあえずこのスレにはマルチじゃないのにマルチとかほざくうざい自治厨がいるってことは頭の片隅においとく
0850デフォルトの名無しさん
05/02/15 16:04:24よかったよかった。
0851C++スペシャリスト
05/02/15 16:57:27System::DateTime now = DateTime::get_Now();
String *msg = now.ToString();
int n;
String a;
n = 123;
a = ???.Format ("n=",n); // ここのやり方がわかりません。
MessageBox::Show (msg + &a); // ここも
どなたかよろしく。
0852デフォルトの名無しさん
05/02/15 17:31:41Managed C++?専用スレがあるよ?
0853デフォルトの名無しさん
05/02/15 17:35:58なんだそのStringクラス。
環境も書かずに判るわけねぇべさ。
0854デフォルトの名無しさん
05/02/15 17:36:17まず、そこで何をしたいかを書くべきだろ。
0855デフォルトの名無しさん
05/02/15 17:58:20システムコールのクラスライブラリってないの?
類似のブツならば、gimite(http://gimite.ddo.jp/gimite/)あるけど、こっちはsocketだけだし。
0856C++スペシャリスト
05/02/15 18:43:22>まず、そこで何をしたいかを書くべきだろ。
int のnをStringに変換してMsgboxに表示したいだけです。
0857デフォルトの名無しさん
05/02/15 18:47:140858デフォルトの名無しさん
05/02/15 18:56:30で、言語は何だ?C++か?Managed C++か?
0859デフォルトの名無しさん
05/02/15 20:02:170860デフォルトの名無しさん
05/02/15 21:02:27BCCでタスクトレイのみで動くプログラムを作ろうと思っています
調べたところ、MFCやVBではNOTIFYICONDATAのhwndに
自分のウィンドウハンドルをいれてるようなのですが、
これはBCCで動かすにはどのようにしたらよいのでしょうか?
よろしくおねがいします
0861デフォルトの名無しさん
05/02/15 21:07:10C/C++とタスクトレイのみで動くプログラムはどう関係あるんだろう。
OSは何だろう。Windowsでいいのかな…
ひょっとして池沼だったりして…
0862デフォルトの名無しさん
05/02/15 21:11:43ここは言語の話題を扱うの
そーゆーのはBCCスレで聞いてちょ
タダで使えるBorland C++ Part4
ttp://pc5.2ch.net/test/read.cgi/tech/1091066805/l50
ん、WinAPIスレのほうが良いのかな?
0863デフォルトの名無しさん
05/02/15 21:19:21おめーらスレタイ嫁。
0864デフォルトの名無しさん
05/02/15 21:28:24環境依存OKは分かった。初心者歓迎も分かった。で?
0865デフォルトの名無しさん
05/02/15 21:38:20と
環境依存
の区別ができてないってことかな?
それはそれとして、862のような「専門スレへの誘導」は普通のことだと思うがな。
0866デフォルトの名無しさん
05/02/15 22:11:42のはずなんだが。
初心者は「環境依存したC/C++のトピック」と
「開発環境の操作方法」や
「特定(非標準)ライブラリの操作方法」
との区別がつけられない。
それはそれで仕方がないんで、そういうお客さんがきたら
専門スレへ誘導で何の問題もないはずなんだが?
ま、あんまり手荒な扱いはどうかとは思うけど。
余談だけど、VBから移行した初心者は、そもそも開発環境と言語を
切り分けて考えることすら出来ないことがままある。
「開発環境の使い方覚える前にC++の基本ぐらい勉強しとけ」
って言っても何のことかまるで理解できないんだよな。
0867C++スペシャリスト
05/02/15 22:14:16Managed C++でお願いします。
「注文の多い料理店」って知ってます。
なんでもいいから早く食わせてくれーー。
0868C++スペシャリスト
05/02/15 22:15:48貴方の意見に賛成します。
0869C++スペシャリスト
05/02/15 22:18:13せめて貴方だけでも。
もしそうでなければ、あなたのおっしゃていることはかなり空虚に
響きます。
0870デフォルトの名無しさん
05/02/15 22:22:05そうか、ありがとう。分かってくれて僕もうれしいよ。
それならさっそく Managed C++専用スレ に逝ってくれ。
0871C++スペシャリスト
05/02/15 22:29:44アレだけ解りやすく言っても馬鹿だと気がつかないのか? 直接馬鹿とは
言いたくなかったのだが。
0872デフォルトの名無しさん
05/02/15 23:14:50お願いだから、荒さないで
0873C++スペシャリスト
05/02/15 23:53:07下らん。お前も馬鹿か? たったアレだけの質問に答えられんのか?
能書きたれる前に答えろ。アフォー。
0874デフォルトの名無しさん
05/02/16 00:16:52なにか参考になる資料とかありませんか?
0875デフォルトの名無しさん
05/02/16 00:22:22web上に腐るほどある。
0876デフォルトの名無しさん
05/02/16 00:23:43ここで聞くのは、誘導のための入り口みたいな感じで。
で、>860 は別に移動してもらうまでもないんで答えるけど、 BCC でやる場合でも何も変わらないぞ。
不可視のウインドウを作ってしまうのが常套手段だと思う。
0877デフォルトの名無しさん
05/02/17 09:35:49ほとんど無くて困ってます。誰かよい資料や方法など知ってましたら教えてください。
0878デフォルトの名無しさん
05/02/17 09:44:53つーくらい頓珍漢な質問だな。
0879デフォルトの名無しさん
05/02/17 09:55:07圧倒的に足りてないだけだろ
0880デフォルトの名無しさん
05/02/17 11:00:12なんのためにレスしたの?
0881デフォルトの名無しさん
05/02/17 11:21:17>>877の馬鹿さ加減を笑うためだよ。普通この流れからしたらそれしかないだろ。
お前さんも>>877の同類かい?
0882デフォルトの名無しさん
05/02/17 11:26:460883デフォルトの名無しさん
05/02/17 12:47:10と置き換えると納得。
0884デフォルトの名無しさん
05/02/17 12:51:06具体的に言いますと
1、デコードされたmp3やmpeg4等はどのようにクライアントに送出
するかその具体的な方法。
2、クライアント側で受信させたデータはどのようにして再生させ
ればいいのか?
3、できれば、クライアント側はブラウザでアクセスすればそれだ
けで再生ができるようにしたい、その方法。
といったところです。
誰かわかりますか?
0885デフォルトの名無しさん
05/02/17 13:08:352. あなたが仕様を(ry
3. あなたが(ry
俺なら、そんなの再発明しようなんて思わないな。
0886デフォルトの名無しさん
05/02/17 13:10:05答える気がねーんならくんな。
ていうか答えらんねーのかw
0887デフォルトの名無しさん
05/02/17 13:27:130888デフォルトの名無しさん
05/02/17 13:58:35サーバ側・クライアント側共に態々自作するのなら
(どういう目的・意図があるのかは知らんが)
すべて自分で仕様を決めて実装しろ。
自作しないのなら、現存するものを使えば済む話だ。
…と言っているんだが。
そもそも、>>884 で「具体的」とか言ってるようじゃなあ…
せめて「ストリーミング プロトコル」辺りでググってこい。
0889デフォルトの名無しさん
05/02/17 15:00:46A* lpA1 ;
A* lpA2 ;
newで生成しといて
//lpA1又はlpA2のアドレスを呼び出し先に返す関数
B::GetStatus(A* pTemp)
{
if(何たら〜)pTemp=lpA1 ;
else pTemp=lpA2 ;
}
B::Reload()
{
A* pTemp ;
GetStatus(pTemp) ;//GetStatusから戻ったアドレス得たい・・けどエラー
//&付けちゃうとclassAの変数入れちゃうし・・・・
//pTempの内容(classAの変数)を更新すると
//lpA1又はlpA2の中身が更新されて欲しい・・・
}
GetStatus関数でアドレスを返してそれをReload側で受け取って
更新内容をGetStatusで渡したlpA1, lpA2のどちらかに反映させたいんですが
アドレス渡せない・・(´・ω・`)
上記のような感じを実現したいんですが無理でしょうか?
0890デフォルトの名無しさん
05/02/17 15:11:03やりたいことを整理汁。
つーか、GetStatus()はA*を返せばいいんじゃないのか?
ポインタを理解できてないなら勉強し直すか、ポインタ使わずに考えろ。
0891デフォルトの名無しさん
05/02/17 15:12:060892デフォルトの名無しさん
05/02/17 15:36:56>つーか、GetStatus()はA*を返せばいいんじゃないのか?
あっ!
なんで気がつかなかったんだろう
昨日の晩から今日帰ってくるまでずっと考えてたり(^ω^;)
ありが�d !!
0893デフォルトの名無しさん
05/02/17 15:50:33ちなみにどうしても引数で渡したかったら、ポインタへの参照にすれば良い。
0894デフォルトの名無しさん
05/02/17 16:44:440895デフォルトの名無しさん
05/02/17 17:03:26oserrはプロセス固有のグローバル変数だろが?
0896デフォルトの名無しさん
05/02/17 18:38:420897デフォルトの名無しさん
05/02/17 18:56:39出来る人は出来る人なりに、
ってのをよく理解汁!!
0898デフォルトの名無しさん
05/02/17 23:49:23残りが全て0になるのは、どの環境でも共通でしょうか。
#include <stdio.h>
int main(void)
{
int hairetu[5][5] = {0};
struct Hoge{int zero; int one;};
int x, y;
struct Hoge hoge = {0};
for(y=0; y<5; y++, puts(""))for(x=0; x<5; x++)
printf("%d ", hairetu[y][x]);
printf("%d %d\n", hoge.zero, hoge.one);
return 0;
}
0899デフォルトの名無しさん
05/02/17 23:51:220900デフォルトの名無しさん
05/02/18 00:14:12直接関係ないけど、初期化の意味を調べ直した方がいいよ
0901デフォルトの名無しさん
05/02/18 00:23:460902898
05/02/18 00:33:43どういう意味か調べていたのですが、以下に乗っている、配列の初期化は
グローバルかstaticにしか出来ないという部分ですか?始めて知りました。
http://www.wakhok.ac.jp/~kanayama/C/02/node112.html
>>901
ありがとうございます。分かりました。
0903デフォルトの名無しさん
05/02/18 00:39:26言葉の意味を調べろ、って事。
0にするだけが初期化じゃない。
0904デフォルトの名無しさん
05/02/18 00:45:50>>898が0にするのが初期化と言ってるようには見えないんだけど。
0905デフォルトの名無しさん
05/02/18 00:47:360907デフォルトの名無しさん
05/02/18 00:55:11パズルっぽい課題を知っている方、出題してくれませんか
ちなみに、昨日やった (同僚が出してくれました) のはこんな問題でした
> 下のような 10 × 10 の地図と島の数と広さを表示しなさい
> 隣接した小島はひとつの島とします (ナナメも隣接とする)
○●○○○○○●○○
○○○○●○●○○○
○○●○○○○○○●
○○○○○○○○○○
●●○○○○○●●○
○●○●●○○○○○
●○●○○●●●○●
○●○○○○○○○○
●○○○○○○●○●
●○○○○●○○●○
1.Island(1)
2.Island(2)
3.Island(1)
4.Island(1)
5.Island(1)
6.Island(13)
7.Island(2)
8.Island(1)
9.Island(3)
10.Island(1)
total:10(26)
0908デフォルトの名無しさん
05/02/18 01:10:38分かりにくくてすみません
0909デフォルトの名無しさん
05/02/18 01:17:01C Magazineにそんなのが毎月載ってるよ。
0910デフォルトの名無しさん
05/02/18 12:27:09そのリンク先はあまり信用しない方がいいかもしれない。
しかし…大丈夫か?北星
0911564
05/02/18 15:17:24class Node,class List,class Employee,class EmpTable
項目は、File Process,Linked-list,node.
報酬します。
興味のある方は、上のメアドにメールください。
ちなみにC++で6時間以内に仕上げなきゃいけないので。
0912デフォルトの名無しさん
05/02/18 15:19:52大きいのがどうしたって?
君はまず日本語を勉強するべきだと思われるが。
0913デフォルトの名無しさん
05/02/18 15:21:120914デフォルトの名無しさん
05/02/18 15:34:29最近出版された、
「パズルの宣教師」(ISBN:4-89072-816-3)
って本には、面白そうなネタが沢山詰まっている。
Cマガで使われたネタも多い。
0915デフォルトの名無しさん
05/02/18 15:45:080916デフォルトの名無しさん
05/02/18 16:15:08関数のプロトタイプ宣言に関する質問があります。
下のAはあるC言語講座のサイトに載っていたプロトタイプ宣言の例文で、これは
警告が出ずにコンパイル出来るんですけど、Bみたいに引数を取ると
「プロトタイプ宣言のない関数」っていう警告が出てくるんです。
ちなみにBのプログラムも、ちゃんと動いて7と表示されます。
この警告はなんで出てくるんでしょうか?
A------------------
#include <stdio.h>
int plusint(int, int);
void main(){
int i1, i2;
int total;
scanf("%d %d", &i1, &i2);
total = plusint(i1, i2);
printf("%d\n", total);
}
int plusint(int a, int b){
return a + b;
}
B-------------------
#include <stdio.h>
int plusint();
void main(){
int total;
total = plusint();
printf("%d\n", total);
}
int plusint(){
int a=3;int b=4;
return a + b;
}
0917デフォルトの名無しさん
05/02/18 16:19:130918デフォルトの名無しさん
05/02/18 16:29:41#include <stdio.h>
void main(){
int total;
total = plusint();
printf("%d\n", total);
}
int plusint(){
int a=3;int b=4;
return a + b;
}
0919デフォルトの名無しさん
05/02/18 16:32:43動きましたけど、やっぱり同じ警告が出ます。
0920デフォルトの名無しさん
05/02/18 16:33:06char (*foo)[2]; や int (*foo)[2];の意味が解りません・・・。
いったいこれは何を指し示しているのでしょうか?
またどういったときに使うのでしょうか?
0921デフォルトの名無しさん
05/02/18 16:38:11printf("%x", foo++);
printf("%x", foo++);
printf("%x", foo++);
とかすれば意味がわかる
0922デフォルトの名無しさん
05/02/18 16:38:12char (*foo)[2];は、fooがchar [2]へのポインタであることを示す宣言。
たとえば、n*2の二次元配列を動的に確保したいとき、
char (*foo)[2] = (char (*)[2])malloc(n * 2);
のよう使う。
0923デフォルトの名無しさん
05/02/18 16:41:02(実例:>>916-919)
0924デフォルトの名無しさん
05/02/18 16:44:160925デフォルトの名無しさん
05/02/18 16:50:01あるけど使っているのは見たことが無い。
出力されたバイト数(失敗時は負の値)が返るらしい。
0926デフォルトの名無しさん
05/02/18 16:52:36int plusint(void);
int main(void) {
〜;
return 0;
}
0927デフォルトの名無しさん
05/02/18 16:57:45>>926さん
警告出なくなりました。
ありがとうございました。
0929デフォルトの名無しさん
05/02/18 17:15:22fprintf()同様、出力にエラーが無いか確認するためにチェックする方がよい。
0930デフォルトの名無しさん
05/02/18 17:17:530931デフォルトの名無しさん
05/02/18 17:19:17リダイレクトしているかも知らん。
0932デフォルトの名無しさん
05/02/18 17:21:30リダイレクトしても書けないんだからどうしようも無いのでは?
0933デフォルトの名無しさん
05/02/18 17:27:380934デフォルトの名無しさん
05/02/18 18:40:540935デフォルトの名無しさん
05/02/18 18:59:17問題なし
0936デフォルトの名無しさん
05/02/18 19:00:27問題なし。
本質的ではない。
0937デフォルトの名無しさん
05/02/18 20:55:29http://www112.sakura.ne.jp/~kaientai-project/creategame.htm
2chスレ
http://game10.2ch.net/test/read.cgi/mmominor/1108379282/l50
くすぶってないで、自分の力を試してみよう!!
0938デフォルトの名無しさん
05/02/18 22:20:50関係ないなら擦れ野無駄なので黙ってて欲しいです。
0939デフォルトの名無しさん
05/02/19 00:37:11コンストラクタ呼ばなくて済むから効率いいってのはわかるんですが、
オブジェクト渡しやポインタ渡しみたいにコピーを生成しないのに
どうやって関数のスコープの中に情報を渡してるのか疑問に思ったので。
0940デフォルトの名無しさん
05/02/19 00:45:150942デフォルトの名無しさん
05/02/19 00:53:050944デフォルトの名無しさん
05/02/19 01:05:07const参照引数と暗黙の変換コンストラクタ呼び出しとか色々違う点はある。
0945デフォルトの名無しさん
05/02/19 01:36:52とりあえず単純な関数作って引数をオブジェクト、ポインタ、参照と変えて
VCの混合モードで見てみました。アセンブラわからないけど参照渡しのときと
ポインタ渡しのときで似たようなコードになるのは確認できました。
あとはなんとか自分で調べてみます。ありがとうございました。
>>944
そこ絶対つっこまれると思いました。質問するときは厳密に表現するように気をつけます。
0946デフォルトの名無しさん
05/02/19 09:41:34ナイスガッツ。
頑張れ。
0947デフォルトの名無しさん
05/02/19 11:47:13例えば
class Sub{
public:
Sub(char*);
};
のようなクラスを、
class Main{
Sub sub;
};
のようにメンバで持ちたいのですが、
コンストラクタに渡す引数はどこで指定すればよいのでしょうか?
0948デフォルトの名無しさん
05/02/19 11:48:00コンストラクタ
0949デフォルトの名無しさん
05/02/19 11:50:24参照かポインタをメンバにした方がいいよ。
0950デフォルトの名無しさん
05/02/19 12:03:16わかりました。ポインタをメンバにします。
ありがとうございました。
0951デフォルトの名無しさん
05/02/19 12:14:39{
}
0952デフォルトの名無しさん
05/02/19 12:47:22なんで?
new したら delete しなくちゃだし、
参照なら、じゃどこに実体作るのよ、って話にならん?
0953デフォルトの名無しさん
05/02/19 13:06:05普通そういう使い方したいなら継承するだろ
0954デフォルトの名無しさん
05/02/19 13:09:000956デフォルトの名無しさん
05/02/19 14:01:05#include <ncurses.h>
int main(void)
{
int i,j,k,h,x,y;
char unko[3][19] = {
" kono gyou ha 1",
" kono gyou ha 2",
"kono gyou ha 3"
};
y=8;
x=32;
initscr();
clear();
for(i = 0;i < 3; i++){
move(y+i,x);
printw(unko[i]);
}
for(j=1;j>0;j++){
}
0957956
05/02/19 14:09:39//noecho();
//cbreak();
//keypad(stdscr, TRUE);
//while ((key = getch()) != KEY_BACKSPACE) {
// move(20,0);
//printw("------------------------ type backspace --------------------");
//}
endwin();}
文字が表示されなくて困ってます.二番目のforの無限ループのところを消して
//でコメントアウトしたところを戻せば表示されるのですがこんな結果になるのは何故ですか?
0958デフォルトの名無しさん
05/02/19 14:19:020959デフォルトの名無しさん
05/02/19 14:22:110961デフォルトの名無しさん
05/02/19 14:48:08そう設計したクラスを使わされるヤツは可哀相だな
0962デフォルトの名無しさん
05/02/19 15:37:05>>941が言った
0963デフォルトの名無しさん
05/02/19 15:42:57そのパターンつまんねぇです。
0964マイク ◆yrBrqfF1Ew
05/02/19 15:46:510965デフォルトの名無しさん
05/02/19 15:54:160966マイク ◆yrBrqfF1Ew
05/02/19 16:15:100967デフォルトの名無しさん
05/02/19 19:13:560968デフォルトの名無しさん
05/02/19 19:16:20実体クラスとかだせぇし。
0969デフォルトの名無しさん
05/02/20 01:23:09というかご存知の方、いらっしゃいますか?
IActiveScriptあたりを使うんでしょうか。
0970デフォルトの名無しさん
05/02/20 02:33:34( ´,_ゝ`)
0971デフォルトの名無しさん
05/02/20 03:25:49テラワロス
0972デフォルトの名無しさん
05/02/20 07:38:21ShellExecute(NULL, "〜.js", ...);
0973デフォルトの名無しさん
05/02/20 12:12:46ん。説明不足でしたが、戻り値を(たぶんVARIANTで?)
取得したいんですよ。
0974デフォルトの名無しさん
05/02/20 12:18:050975デフォルトの名無しさん
05/02/20 12:22:02class BASE {
public:
void (*func)(void*);
};
のvoid (*func)(void*)に
class NEW : public BASE {
public:
void new_func(NEW* obj);
};
のnew_funcのアドレスを入れたいのですが、
どうすればいいのでしょうか。
よろしくお願いします。
0976デフォルトの名無しさん
05/02/20 12:41:59class NEW;
class BASE {
public:
void (NEW::*func)(void*);
};
class NEW : public BASE {
public:
void new_func(void* obj);
};
BASE b;
b.func = &NEW::new_func;
0977デフォルトの名無しさん
05/02/20 13:08:03VARIANTでってあたりがなぁ。
0978デフォルトの名無しさん
05/02/20 16:24:190979デフォルトの名無しさん
05/02/20 16:59:59漏れは 「イーナム」 なんだけど。
0980デフォルトの名無しさん
05/02/20 17:00:160981デフォルトの名無しさん
05/02/20 17:00:470983デフォルトの名無しさん
05/02/20 19:41:560984デフォルトの名無しさん
05/02/20 20:14:510985デフォルトの名無しさん
05/02/20 20:37:440986デフォルトの名無しさん
05/02/20 20:39:510987デフォルトの名無しさん
05/02/20 23:07:070988デフォルトの名無しさん
05/02/20 23:16:40言いやすいし
0989979
05/02/20 23:43:33漏れは規制で立てらんないけど。
>>987
enumerate じゃなくて enum の話をしてるんです。
int の読み方の話に integer を持ち出すようなお方ですね。
0990デフォルトの名無しさん
05/02/20 23:54:42脳内では「いーなむ」って読んでるけど。
0991デフォルトの名無しさん
05/02/21 00:06:31えみゅーむです。
0992デフォルトの名無しさん
05/02/21 00:07:39えにゅーむな・・・。
0993デフォルトの名無しさん
05/02/21 00:12:590994デフォルトの名無しさん
05/02/21 00:14:07次スレ立つまでネタレスは止めとけ
0995デフォルトの名無しさん
05/02/21 02:42:160996デフォルトの名無しさん
05/02/21 02:55:05http://pc5.2ch.net/test/read.cgi/tech/1056173956/
0997デフォルトの名無しさん
05/02/21 02:55:450998デフォルトの名無しさん
05/02/21 03:00:020999デフォルトの名無しさん
05/02/21 03:00:441000デフォルトの名無しさん
05/02/21 03:01:2410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。