[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 08/27 18:32 / Filesize : 189 KB / Number-of Response : 742
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.37【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:29:45 ]
エスケープシーケンスやWin32APIなどの環境依存な物でもOK。
ただしその場合、質問者は必ず、環境を書きましょう。
※sageは禁止です。
【前スレ】
【初心者歓迎】C/C++室 Ver.36【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1175436073/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


488 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:47:11 ]
reallocの動作を勘違いしてる

489 名前:485 mailto:sage [2007/05/22(火) 16:52:22 ]
む・・・良く分かんない・・・・・・orz
reallocの一つ目の引数には、中身が入ったポインタを指定してはいけないって事ですか?

490 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:54:10 ]
>>489
一つ目の引数は必ずmallocやreallocで取得したポインタ(か、NULL)
同じ位置で指定したサイズが取得できないと、別の場所でallocしなおして
最初のやつはfreeされる。

491 名前:485 mailto:sage [2007/05/22(火) 16:57:11 ]
>>490
あ、分かりました。
struct late data[20];//とりあえず、30個分
struct late *memp=data;//↑のデータの最初のアドレスをmempに
↑の部分を

struct late *memp;
memp = (struct late*)malloc((sizeof(struct late)) * 20);
こうすればいいんですよね?

492 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 16:59:54 ]
>>491
まあそういうこと。
そして、reallocするということは、それが常に同じアドレスとは限らない。

493 名前:485 mailto:sage [2007/05/22(火) 17:01:35 ]
>>492
ありがとうございました。物凄く勘違いしてたっぽいですねorz
勉強になりました。

494 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 17:09:37 ]
>>466
C++/CLIでのことだったらそっちのスレで聞いたほうが的確な助言がくると思うぞ。

495 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:28:41 ]
www.heat-devil.com/up/src/No0300.zip
非常に初心者な質問なのですが、
ファイル分割の勉強中で↑な感じで3つに分けて
borland C/C++コンパイラでbcc32 a.cpp hoge.cpp hoge.hとやったら
『 hoge.h 1: 宣言の構文エラー』と出るのですが、
hoge.hのどこが間違っているのか分からないのでどなたか教えてくださいorz

496 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:50:28 ]
>>495
なんで hoge.h がエラー扱いされてしまうのかは俺も少々不可解だけど、

  bcc32 a.cpp hoge.cpp

でおk。hoge.h は a.cpp と hoge.cpp から include される対象に
過ぎないからコンパイルする必要は無し。



497 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:57:29 ]
.hをコンパイルすると、C++じゃなくて、Cとして
コンパイルされるんじゃないの。

498 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 21:59:58 ]
ああ、なるほど。

499 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:16:23 ]
>>496-497
うわぁああ出来ました!!
そうか、iostreamとかもコンパイルの時書かないですしね><
分割するの初めてだったからファイルの書き方間違っているのかと
今日一日中ネットや本で調べたけど分からなかったのでホントに嬉しいです・・・(;△;)
まさかそっちのやり方が間違っていたとは。
ありがとう、本当にありがとうございます><


500 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:18:59 ]
(;△;)

501 名前:デフォルトの名無しさん [2007/05/22(火) 22:49:01 ]
オーム社「C言語によるプログラミング[応用編]」(第一版)
サンプルプログラム sample2 myform.c

をそのまま写して、コンパイルしたところエラーがでました。
環境は、
gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) です。

エラー出力は、
myform.c:57: error: two or more data types in declaration specifiers
myform.c:104: error: conflicting types for 。GetArg「
myform.c:57: error: previous declaration of 。GetArg「 was here
myform.c:256: error: conflicting types for 。LineAdd「
myform.c:58: error: previous declaration of 。LineAdd「 was here

int GetArg( int, char *[], int *, int *, int *, int *, char [] );
int GetArg(
int argc,
char *argv[],
int *column, /* カラム数 */
int *line, /* 行数 */
int *upper, /* 上余白行数 */
int *left, /* 左余白行数 */
char file[] /* 入力ファイル */
)

int *LineAdd( char *, char *, int );
char *LineAdd( char *to_buff, char *from_buff, int num )


502 名前:501 [2007/05/22(火) 22:51:35 ]
このエラーの原因を知りたいのですが、
ヒントやポインタをおねがいします。

一番下のこの部分は無視してください。
int *LineAdd( char *, char *, int );
char *LineAdd( char *to_buff, char *from_buff, int num )
_

503 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:52:40 ]
どこが57行目?

504 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 22:56:31 ]
>>501
セミコロン

505 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:02:57 ]
int GetArg( int, char *[], int *, int *, int *, int *, char [] );
int GetArg(
int argc,
char *argv[],
int *column, /* カラム数 */
int *line, /* 行数 */
int *upper, /* 上余白行数 */
int *left, /* 左余白行数 */
char file[] /* 入力ファイル */
){
return 0;
}
とりあえず、gcc 3.4.6にかけてみたけど、エラーなんて
でなかったぜよ。

506 名前:501 [2007/05/22(火) 23:03:33 ]
57行目
int GetArg( int, char *[], int *, int *, int *, int *, char [] );

104行目
int GetArg(
int argc,
char *argv[],
int *column, /* カラム数 */
int *line, /* 行数 */
int *upper, /* 上余白行数 */
int *left, /* 左余白行数 */
char file[] /* 入力ファイル */
)

です。
myform.c:256: error: conflicting types for 。LineAdd「
myform.c:58: error: previous declaration of 。LineAdd「 was here
は無視してください。



507 名前:501 [2007/05/22(火) 23:06:50 ]
>>504
int GetArg( int, char *[], int *, int *, int *, int *, char [] );
^^^

このセミコロンのことでしょうか?

>>505
わざわざコンパイルしてくださって、ありがとうございます。
お手数かけてすいません。
これから、自分の環境でその部分だけコンパイルしてみます。

508 名前:501 [2007/05/22(火) 23:11:45 ]
>>505をコンパイルしたところ、自分の環境でもエラーはでませんでした。

ほかに GetArg関数に関係があるところは、メイン関数でよびだしたこの場所だと思います。
なにかまちがえたことをしているでしょうか。

int main ( int argc , char *argv[] )
{
int column, line, upper, left;
char file[SMALL_BUFF_SIZE];
int result;

/* main引数取得 */
result = GetArg( argc, argv, &column, &line, &upper, &left, file );


509 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 23:46:33 ]
「基本クラスにあるprotectedなメンバ関数を、
 派生クラスで名前も処理も変えず、publicに昇格する」 というのは、

class base {
protected:
  int hoge() { ... }
};

class derived : public base {
public:
  int hoge() { return this->base::hoge(); }
};

こんな感じになりますか?
それとも、もっと簡単にできますか?

510 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:04:48 ]
名前も処理も変えないんだったらオーバーライドする意味無いやん
さらに言えばprotectedにする意味無いやんhoge()はpublicにすりゃいいやん
って思ったんですがどうでしょう?

511 名前:501 [2007/05/23(水) 00:09:27 ]
エラーの原因がわかりました。
57行目の int GetArg( int, char *[], int *, int *, int *, int *, char [] );
の前にある、

enum
{
NORMAL_END, /* 0 */
USAGE_ERROR, /* 1 */
FILE_ERROR /* 2 */
};
^^^^
このセミコロンが欠けていました。
>>504さんのいうとおりでした。

おさわがせいたしまして、どうもすいませんでした。
レスくださった方たち、ありがとうございました。


512 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:10:16 ]
>>510
尤もだ。

513 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:11:15 ]
using base::hoge;
でよくね?

514 名前:デフォルトの名無しさん [2007/05/23(水) 12:47:58 ]
C++初心者で申し訳ないのですが、質問させてください。
↓のページのSFMTを、C++プログラムから利用したいのですがうまくいきません。
ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/

ttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/howto-compile.html
Linux上でg++(ver4.20)でコンパイルしてみると、sample2-1や2-2が詰まります。
ヘッダでinline宣言してある関数が"xxx is used but never defined"と警告され、
リンク時にエラーになります。
sample2-3のようにcファイルをincludeする、またはgccならばコンパイルできますが
c++のソースから呼び出さねばならない場合、どうすればよいのでしょうか?
c++用ライブラリ等も紹介されてますが、呼び出し側プログラムの書き換えを最小限に
したいので、inline関連のオプション追加で解決してくれるなら、と思っています。
よろしくお願いします。

515 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:03:31 ]
>>514
よく見てないけどこんなのは?
extern "C" {
#include "SFMT.h"
}


516 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:33:50 ]
#include<iostream>
#inlucde<iostream.h>

C++でのこの2つって何か違いがあるんですか?



517 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:41:38 ]
はい。

518 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:41:54 ]
後者は過去の遺産。

519 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:49:38 ]
積極的に.h無しが推奨される理由があるなら教えて頂きたいです><
Cの勉強始めた時から.h有りで書いていて慣れていたので。

520 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:53:59 ]
規格に書いてあるから。

521 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:55:57 ]
違いがあるから

522 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 13:56:20 ]
iostream.h の方は std 名前空間に入ってないから。

523 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:21:06 ]
>>516
iostream.hの方が入出力が速い処理系があります(VC6とかVC6とかVC6とか)。
でも既に古いC++です。

524 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 14:36:13 ]
>>522
し、正直よく分からないけどあなた様のレスのコピペを保存して
賢くなったら読み返して理解してみます><
>>523
ありがとうございます。
新しい処理系だと.h無しの方が処理が速いんですね。
参考になりました><

525 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 15:04:09 ]
>>524
>518とか>520も無視すんなや。ちゃんとメモしとき。
それからついでに。
>新しい処理系だと.h無しの方が処理が速いんですね。
誰もそんなこと書いていない。

526 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 15:18:03 ]
>>525
いや、2chでよくあるYES/NOレスみたいな感じで
スルーか微妙だったから具体的に教えてくれた人にレスしたんだ。
もし気を悪くしたらごめんです。
それと昔は.h有りの方が速かったけど今は>>522さんが言った理由な感じで
.h無しの方が良いから処理速度は.h無しでも変わらなくなったってことかな?
なんだか分かったような分かってないようなだけど突っ込んでくれてありがとう><



527 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 15:40:43 ]
処理速度なんて関係ない。
要は.h有りは古い規格で、今は.h無しが標準ということ。
実際VC++では2003あたりから標準に則ってiostream.hは提供されなくなった。

528 名前:デフォルトの名無しさん [2007/05/23(水) 15:49:52 ]
礼儀のなってない自称初心者ほど嫌われるものはない。

529 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:10:08 ]
>>527
つまりその名前空間云々で.h無しの方が良くて、
その規格に合わせて処理系も変わってきたから.h無しが推奨されると。
という把握をしてみました。
とりあえず名前空間云々を可及的速やかに勉強してみます><

>>528
うん、なんだかごめんです。
「規格だから」「過去の遺産」「違いがあるから」的なのじゃなくて
「どうしてそういう規格でどう違いがあって」的な理由を聞きたくて
「うん」とか表面的な答えの人は2chではあまりちゃんと答えてくれない
経験則から他の人にだけレスしてしまった。
気を悪くしていたら反省している。


530 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:19:34 ]
他の板には余りないこの板の特徴かも知れんが、
「答えだけ書くから後は自分で調べろ」的なパターンかもね。

兎にも角にも>529は「書いてあるものを読み」、「書かれてないことを読まない」ようにしないとな。

531 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:33:20 ]
自分で答えを決め付けてから読むから
回答者の意図なんて全然読み取れてない

532 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:45:07 ]
>>531
こんだけ反省してるって言ってるんだから、
流石にいい加減しつこいというか。
質問者だけにやたら厳しいが仮にも初心者歓迎謳ってるんだから
回答者にもある程度誘導的な姿勢は必要だとも思うし。

533 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:46:04 ]
いつまで苛めてんだ。カルシウム摂れ。

534 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:47:36 ]
いつまでもいいんだ。カルシウムくれ。

535 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 16:49:06 ]
煮干が美味いんだ。昆布でダシは邪道

536 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:07:43 ]
質問です

最近C++(つかプログラミング)を始めた者です
入門書「やさしいC++」を読んで、一通り簡単な文法とかは理解したんですけど、
この板に出てくるソースによくある、関数の種類とかについては全く分かりません。
そろそろコンソールアプリケーションじゃなくて、ウインドウのソフトも作ってみたいと思うんですが、
どうやら、関数をいっぱい知ってなきゃ作れないらしいですね。

これから自分はどんな本,どんなサイトを見て勉強していくべきなのでしょうか?



537 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:46:03 ]
やれやれ。そろそろネタばらしでもしてやるか。

昔はインクルードするものと言ったらヘッダーファイルで当然だったのだが
果たしてヘッダーファイルが実在する必要があるのか、
それを規格で要求するべきなのかと言う議論があった。
そのためにいかにもファイルの拡張子っぽい.hをなくし、
コンパイラは標準ライブラリのヘッダーをインクルードしている部分を
通常のインクルード処理ではなく、対応する標準関数その他を有効にする
単なるスイッチとして使うことを許すようにした。

538 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 17:55:49 ]
>>536
MSDN

539 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 18:01:54 ]
質問です。
typedef float Vector3[3];
なんてtypedefをしたんだけど。
vector<Vector3> vec;
vec.resize(10);
が通らない。
vector<float> vec;
vec.resize(10);
なら通るんだけど。
どうして?

540 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 18:03:51 ]
>>539
配列にはそのまま代入ができないので、無理。

541 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:27:17 ]
vectorが内部で何やってるか考えてみようぜ

542 名前:デフォルトの名無しさん [2007/05/23(水) 20:54:27 ]
ここで聞いて良いのか分からないのですが、間違っていたらすみませんが誘導お願いします
VC++の初心者質問なんですがCOMインターフェイス使って#import する場合
例えば、エクセルなんかの場合
##import "C:\Program Files\Microsoft Office\Office\excel9.olb"
rename("DialogBox", "DialogBoxXL") rename("RGB", "RBGXL") rename("DocumentProperties", "DocumentPropertiesXL") no_dual_interfaces


とかやるんですが、これはビルドしたときにexeに組み込まれちゃうんでしょうか?
もしくはexeが実行したときにオブジェクトライブラリが読み込まれるのでしょうか?


543 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:08:11 ]
>>542
excel9.olbの内容はコンパイル時にのみ参照される。
実行時にexcel9.olbは不要。

544 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:25:18 ]
>>539
vector<vector<float> > vec; でいいじゃん
resize()は要素分行う必要があるので面倒だけど

545 名前:デフォルトの名無しさん [2007/05/23(水) 21:29:35 ]
>>543
ありがとうございます


546 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:39:56 ]
>>544
struct Vector3 { float vec[3]; };
vector<Vector3> vec;
の方がいいんじゃないか



547 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 21:54:57 ]
>>539

struct Vector3 {
  float a;
  float b;
  float c;
};

vector<Vector3> vec;

548 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:01:34 ]
abcよりもxyzのほうが的確だと思う

549 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:03:38 ]
そんなことはどうでもいいと思う

550 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:18:21 ]
M$のABC構造体とかふざけた名前のやつを思い出した

551 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 22:21:55 ]
フォントの幅だっけ?

552 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 09:39:23 ]
ABCD包囲網だな。CとDがうぜえ

553 名前:デフォルトの名無しさん [2007/05/24(木) 19:01:31 ]
VC++2003でexeのプロジェクトを別のexeで参照設定する事はできますか??

554 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:30:29 ]
---------------------------
Microsoft Development Environment
---------------------------
'○×△□.exe' への参照を追加できませんでした。 これは有効なアセンブリまたは
COM コンポーネントではありません。拡張子 'dll' を持つアセンブリまたは COM
コンポーネントのみを参照することができます。ファイルがアクセス可能で、有効な
アセンブリまたは COM コンポーネントであることを確認してください。
---------------------------
OK   
---------------------------


555 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:52:25 ]
COMコンポーネントじゃないので、できませんという事ですね。
ありがとうございます><

556 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:55:02 ]
( ゚д゚)ポカーン



557 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:58:21 ]
>>556
>>555とは別人だけど、違うの?
COMコンポーネントかDLLしか参照できないってことじゃないの……?

558 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 20:46:00 ]
VC++2003で exeのプロジェクト を 別のexeで 参照設定する事
謎が多いな。 make の依存関係だけなのか、
別のexe が、元 exe をリンケージするのか

559 名前:557 mailto:sage [2007/05/24(木) 21:02:04 ]
>>558
それは自分も思った。
ShellExecuteとかそのたぐいでいいじゃんてね。

でも、exeの参照の可否と、その有用性はとりあえず関係なくね?

560 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 21:19:31 ]
>>557
exeでも参照できるよ







.NET Frameworkならね

561 名前:560 mailto:sage [2007/05/24(木) 21:22:02 ]
ていうかVC初心者スレ池

562 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:26:48 ]
「構造体とクラスは無関係」という人をよく見かけるけど、
構造体からヒントを得て、クラスという概念を作ったわけではないの?
構造体使ってて、あー、こういう風にしてーなー、と思ったところを、
クラスという形で実現したのであれば、
無関係ってちと言い過ぎじゃないかなー、とか思うんだけど。

563 名前:デフォルトの名無しさん [2007/05/24(木) 23:29:18 ]
switch(event)
{
case1:
foo;
case2:
bar;
default: ←100行目
}

if( !p1)
{
・・・
GOTO Test;

Test: ←100行目
}
gcc version 4.1.2 で、
上のように、default: や Test: の後が空行のまま } がくると、次のようなエラーがでます。

handle.c:100: error: label at end of compound statement

これは仕様なのでしょうか?
default: は消し、 Test: は {}の外にうつして回避したのですが、それで正しいでしょうか。
アドバイス、よろしくお願いします。

564 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 23:31:09 ]
>>563
ラベルの後には文が必要です。
;(セミコロン)だけでも付けましょう。

565 名前:563 mailto:sage [2007/05/24(木) 23:39:39 ]
>>564
セミコロンをつけたところ、コンパイルがとおりました。
どうもありがとうございました。

566 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:35:43 ]
www.uploda.org/uporg822044.c
この選択ソートのプログラムをswap関数を用いて作り変えたいと思い、
下記のようにしてみたんですが、うまくいきません。
www.uploda.org/uporg822047.c

何が悪いのか教えてください。お願いします。



567 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:37:39 ]
swapに渡されるのは引数のコピーだ

swap(int* a,int* b);

568 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 00:56:53 ]
色々やってみましたが、分かりませんでした。
よろしければ正解例を示していただけないでしょうか。
お願いします。

569 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:02:35 ]
よくみたら内部で配列を交換してんのか

つうかコレコンパイルできなくね?

面倒だからとりあえず
int i,j,k,work,num,a[100];
をmainの外に出せば動くんじゃね

570 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:06:42 ]
>>569
はい、566の下のソースはコンパイルできていません。
mainの外に出してもできないようです。

571 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 01:19:43 ]
mainの外に出したら動いたわけだが、、、

572 名前:デフォルトの名無しさん [2007/05/25(金) 01:45:14 ]
>>570www.uploda.org/uporg822246.c

573 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 05:35:49 ]
mciSendStringでnotify(+MCI_NOTIFY_SUCCESSFUL)で
ループ再生を行っている時、
まれにループに入るタイミングでループされず、
永遠とnotifyが投げられビジー状態になってしまいます。

100回に1回も起こらないので、原因は良く分かりませんが、
もしかしたら、曲を変えようと前の曲をstop、closeし、
新しい曲をopen、playするのと同じぐらいのタイミングで
notifyが来た時に起きているのかもしれません。

対策方法などがありましたら、教えてください。

574 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 06:26:54 ]
再生するファイルの種類は何かね?あとOS

575 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 08:12:19 ]
×永遠と
○延々と

576 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 09:01:26 ]
>>562
C++のクラスはSimulaからのインスパイヤ



577 名前:573 mailto:sage [2007/05/25(金) 09:22:55 ]
>>574
ファイルはmidi、OSは9xです。

>>575
素でやってしまいました・・

578 名前:573 mailto:sage [2007/05/25(金) 09:34:53 ]
後、もちろんmciSendStringの戻り値は0(成功)です。
音楽を変えるためstop、closeした後、
前の曲のnotifyが来てしまいおかしくなるのかもしれません。

notifyが連続で来る事は普通は無いので、
その時は、playをsendしないようにする方法とかもあると思うんですけど。

579 名前:デフォルトの名無しさん [2007/05/25(金) 10:20:06 ]
stringはあまりよくないと聞いたことがあるのですが
charの配列を使うよりstringを使ったほうがいいですよね?

580 名前:566 mailto:sage [2007/05/25(金) 10:50:50 ]
>>572
ありがとうございました。
保存したので、もう消していただいてもかまいません。

581 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 11:06:24 ]
>>579
好きにすればいいと思うよ。
配列とnew/delete演算子と
テンプレートクラスの勉強が済んでいる前提で。

582 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 11:54:11 ]
>>579
よくない理由を問い詰めておけ。

583 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:21:45 ]
1方向Listを作っています。参考書等で調べたのですが
削除関数の部分をどう記述すれば良いのか分からないので教えてください。
uproda11.2ch-library.com/src/116479.c

584 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 12:30:56 ]
>>583
まずは自分で書けよ。今のソースじゃどういう動作にしたいのかもわからん。

585 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 14:03:27 ]
もうソース見えん。

削除ってのはさ、
A→B→C のBを消すときにAの指してる先をCにしてBを消せばいいわけだ。
でも片方向でBの前を探すのは面倒だから、Bが指してるCの内容を
そっくりBにコピーしてCを消す、というトリックが使える場合があるぞ。

586 名前:デフォルトの名無しさん [2007/05/25(金) 15:20:22 ]
mfcについて教えてください。

通信受信プログラムで受信データをエディットコントロール(複数行表示)に表示しているのですが、
以下のコードでは、エディットコントロールに文字列を追加する際に必ずスクロールされてしまいます。
スクロールされない方法を教えてください。

int iLen = edit->GetWindowTextLength();
edit->SetSel(iLen, iLen);
edit->ReplaceSel("Hello\n");

WinXP & Visual Studio 2003 & mfc7です。



587 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/25(金) 15:31:32 ]
!(Φ_Φ+){???}
"hello"


  #####
  #
  #
  #
  #

588 名前:気まぐれアナスイ mailto:お腹いっぱい@気まぐれアナスイ [2007/05/25(金) 15:37:31 ]
!(Φ_Φ+){???}
"hello"


  #####
  #
  #
  #
  #






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<189KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef