■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part8
1 名前:デフォルトの名無しさん :03/09/08 22:56
タイトルの通り、Visual C++ 初心者用スレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

  質問の仕方については次のページが大変参考になります。
  http://www.hyuki.com/writing/techask.html
  http://www.geocities.co.jp/Beautycare/4965/public/template.html

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

前スレや関連スレは >>2-5 あたりに。

2 名前:デフォルトの名無しさん :03/09/08 22:57
/** 過去スレ **/
Part7   http://pc2.2ch.net/test/read.cgi/tech/1056280510/
Part6   紛失です・・・
Part5   http://pc2.2ch.net/tech/kako/1048/10486/1048698321.html
Part4   http://pc2.2ch.net/tech/kako/1044/10441/1044196393.html
Part3   http://pc2.2ch.net/tech/kako/1038/10381/1038160750.html
Part2   http://pc3.2ch.net/tech/kako/1030/10309/1030985362.html
Part1   http://pc3.2ch.net/tech/kako/1023/10235/1023530449.html

/** 関連スレ **/
■ VisualC++(MFC限定)相談室 MFC9.dll■
http://pc2.2ch.net/test/read.cgi/tech/1062098350/l50
Win32API 質問箱 Build12
http://pc2.2ch.net/test/read.cgi/tech/1056033645/l50
C++相談室 part20
http://pc2.2ch.net/test/read.cgi/tech/1055162298/l50
C/C++の宿題やらせてください。9代目
http://pc2.2ch.net/test/read.cgi/tech/1055944101/l50

/** 外部リンク **/
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
Google
http://www.google.co.jp/

3 名前:1 :03/09/08 23:00
Part6が見つかりません。
見つけた方は貼ってください。

4 名前:1 :03/09/08 23:03
すいません、関連スレの更新忘れていました。MFCスレは更新してあります。

C++相談室 part23
http://pc2.2ch.net/test/read.cgi/tech/1062690663
Win32API質問箱Build13
http://pc2.2ch.net/test/read.cgi/tech/1059549320
(つД`)C/C++の宿題は私にやらせてよ!Ver12
http://pc2.2ch.net/test/read.cgi/tech/1060706382


5 名前:デフォルトの名無しさん :03/09/08 23:09
o2

6 名前:デフォルトの名無しさん :03/09/08 23:45
>>1
乙!


おまけ

★初心者にVisual C++を教えるスレ★ Part6
http://pc2.2ch.net/test/read.cgi/tech/1052931903/ [元URL]
http://pc2.2ch.net/tech/kako/1052/10529/1052931903.html [過去ログ]


7 名前:デフォルトの名無しさん :03/09/08 23:49
ようやく立ったか。>>1乙。

8 名前:デフォルトの名無しさん :03/09/09 16:19
初心者の質問ではないかもしれませんが,該当スレがなかったのでこちらに失礼します.
カスタムAppWizardのデフォルトディレクトリが

C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Template

あたりになっているのですが,ここに書き込む権限がないため,
デバッグも実行もできません.
AppWizardの参照ディレクトリを書き換えることはできないのでしょうか?

9 名前:デフォルトの名無しさん :03/09/09 17:38
VCってmeで動作しますか?
マシンスペックは全てクリアしてるんですが・・・

10 名前:デフォルトの名無しさん :03/09/09 18:22
>>9
http://www.microsoft.com/japan/msdn/vstudio/productinfo/sysreqs/default.asp
http://www.microsoft.com/japan/msdn/vs_previous/vstudio/techinfo/toolos.htm


11 名前:デフォルトの名無しさん :03/09/09 19:26
Visual Studio.NET 2003で、VC++7.1相当の使い方をしています。

PlatformSDKのIA64用のコンパイラを、Visual Studioから使えるようにできますか?


12 名前:全スレ996 :03/09/09 19:33
全スレの>>996でPlatform SDKのURLをたずねたものです。
>>997-998様、ありがとうございました。
無事ダウンロードできました。m(__)m

13 名前:デフォルトの名無しさん :03/09/09 21:12
>>11
プロジェクト新規作成でmakefileを選択。
ビルド時に実行するバッチを作成。↓のを参考にしてみて下さい。
ドライバ作成用ですが、考え方は一緒です。
.netでも出来るはずです。

参考 http://www.ouk.co.jp/ogawa/vsusume.html

14 名前:11 :03/09/09 22:09
>>13
それですと、Makefileを手で書いて、
コマンドラインからnmake実行するのと、あまり変わりません。

プロジェクトの構成マネージャでプラットフォームでWin64を選択できるようにしたいのです。

15 名前:13 :03/09/09 23:22
CFGに例えば "IA64 - Release" とか設定する。
で、*.dsp内も"IA64 - Release" に変更する。
プラットフォームの箇所で選択は出来ないので、変だけど
プラットフォームはWin32のままにしておく。
でも実行されるのはIA64用のもの、というわけ。

プラットフォームの選択は、どのコンパイラを使うとかの環境の設定を
指定するものですが、自分で環境(環境変数/使用コンパイラ)などを
バッチの中で設定してしまえ!というのが考え方です。

これ書いていて思い出したけど、以前MSDNmagazineに↑のことが載っていた。
さがしてみて。

16 名前:11 :03/09/10 13:21
>>15
ありがとうございます。

とりあえずWin32でプログラムのデバッグまで終わらしてから、トライしてみます。

17 名前:デフォルトの名無しさん :03/09/10 18:10
9x系で動くVC++ってどこかで売ってませんか?

18 名前:17 :03/09/10 18:11
ぁ, 東京周辺でおながいしますです。

19 名前:デフォルトの名無しさん :03/09/10 19:30
秋葉原行くべし

20 名前:デフォルトの名無しさん :03/09/10 23:37
自分は関西なんで
大阪周辺でVC6.0売ってるところが聞きたいです
日本橋の祖父の中古専門店とかなら、ありますかね?

21 名前:デフォルトの名無しさん :03/09/11 09:28
>>20
ny(w

22 名前:デフォルトの名無しさん :03/09/11 10:12
思い切ってMSDNにするってのはどう?
今のMSDNにVisualStudio6.0が入ってるか、知らないんだけど。

23 名前:17 :03/09/11 16:42
>>19 Thx.
今度逝ってみるわ

>>22
msdn自体見たことない

24 名前:デフォルトの名無しさん :03/09/11 17:00
>>23
俺もMSDNは見た事ないな・・

もっぱらネットのMSDNやC++のページ、ここでの質問で事が足りるから
お金払ってまでMSDN買おうとは思わない罠

実際MSDNっていくらぐらいなんだろう?

25 名前:デフォルトの名無しさん :03/09/11 17:08
MSDNのヘルプの話ではなく、開発ツール一式が付くことを言っていると思うんだけど?
MSDNのPro以降ならVC6は付いてるが、それ未満のエディションでライブラリだけ買っても無意味

26 名前:デフォルトの名無しさん :03/09/11 17:33
まっとうなMSDNは10万円程度した気がするけど

27 名前:デフォルトの名無しさん :03/09/13 20:45
9x系で動くVC探すのも良いが、VS.Net MSDN DeluxeでNT系OSごとゲトーした方が良いような。
そこまで金を掛けるのが嫌って事で>>17の質問なら、東京周辺なんだから秋葉原逝っとけ。
きっと何処かに生き残ってると思う。多分。

28 名前:デフォルトの名無しさん :03/09/14 12:06

#include <stdio.h>
#include <conio.h>
int main(void)
{
  for(;;)
    if(kbhit())
      printf("%c",(char)getch());
  return 0;
}

前にこのプログラムをビルド時のexeとexeダブルクリック時のexeで
スピードが違うと言う質問をさせてもらったものですが、
いまだに解決できずにいます。コードが悪いと思っていろいろ調べていたの
ですが分かりませんでした。

目の付け所を変えてみた所、ビルド時とダブルクリック時で、終了した時に
すぐ閉じる閉じないの違いがあった事を思い出しました。もしかして、設定で
スピードが違うのかと思い、いろいろいじってみたのですが、どこを変更すれば
良いか分かりませんでした。

解決方法を教えてください。

29 名前:デフォルトの名無しさん :03/09/14 12:19
>>28
コンソールを開く・閉じる必要がある分
遅いんじゃない?




30 名前:28 :03/09/14 12:43
>>29
コンソールを開く・閉じるの意味が分からないのですが。
ただ、これが最小のコードだと思うので、どうしようもありません。
また、普通にfgetsやscanfの時の入力でも遅くなるんです。

31 名前:デフォルトの名無しさん :03/09/14 12:45
そんなわけわからん質問の仕方してたら一生答えてもらえない。

32 名前:28 :03/09/14 12:51
>>31
ボタンを押し続けた時です。
ビルド時のexe(!を押した時のexe)だと一定間隔で表示されるのですが、
Debug or Release フォルダにあるexeファイルをダブルクリックした時の
exeだと、表示されるのが遅く成る時が多く、
終いにはピピピとなってしまいます。

33 名前:デフォルトの名無しさん :03/09/14 12:55
>>28
ベンチマークの取り方を覚えれば幸せに
なれるかもしれません。

34 名前:デフォルトの名無しさん :03/09/14 12:57
>>28
今試してみたけど速度に違いはなかったよ。

35 名前:28 :03/09/14 13:12
>>33
ぜひ、そのやり方を教えてください。

>>34
ホントですか?なんで自分のはダメなんだろう。

キャプチャー機器があればどういう感じか視覚的に見せれるが無いしな。

36 名前:デフォルトの名無しさん :03/09/14 13:30
>>35
clock()

37 名前:28 :03/09/14 13:43
>>36
どうもです。だが実は、ベンチマークという言葉自体が分かりませんでした。
ソフトとハードを比べてタイムを計るみたいですね。やってみます。

後、VC6、Me、アカデミック版なんですが、環境は問題ないですか?

38 名前:28 :03/09/14 13:51
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(void)
{
  clock_t t=clock()/CLOCKS_PER_SEC;
  int i;
  for(i=0;i<=319;)
    if(kbhit())
    {
      printf("%c",(char)getch());
      i++;
    }
  printf("%ld\n",clock()/CLOCKS_PER_SEC-t);
  getchar();
  return 0;
}

>>33
上のコードで調べてみた所、!は10秒、ダブルクリックは13、14秒でした。

39 名前:デフォルトの名無しさん :03/09/14 14:06
#include <stdio.h>
#include <conio.h>
#include <time.h>
int main(void)
{
    printf("Hit Any Key To Begin : ");
    getch();
    clock_t t=clock();
    int i;
    for(i=0;i<=319;)
    {
        if(kbhit()){
             printf("%c",(char)getch());
             i++;
         }
    }
    printf("%ld\n",clock()-t);
    scanf("%d",&i);
    return 0;
}

↑の結果両方とも9秒ちょい。大した差はなかった。(完)

40 名前:28 :03/09/14 14:46
>>39
そうでしたか。自分だけなのかなー。

もう一台の98でやってみた所、11/15でした。

41 名前:28 :03/09/14 14:58
関係ないかもしれませんが、MS-DOSプロンプトを開いてずっと押しを
した時は、!の時と同じ感じのスピードでした。

後、Win32ApplicationのwParam、TextOutで同じような事をしても
!とダブルクリックのスピードに違いはありません。

42 名前:28 :03/09/14 15:49
今、BCC5.5をダウンロードしてやってみた所、同じように遅いexeが
出来上がりました。問題はVCでは無く、別の所にあるようです。
又は、安い、フリーに遅くするプロテクトが入っているのかもしれませんが。
お答えいただいた方どうもありがとうございました。

43 名前:デフォルトの名無しさん :03/09/14 15:50
>>41
>>39の奴で試してみなよ。

44 名前:デフォルトの名無しさん :03/09/14 16:04
去年入社したばっかの新人コボラーなのですが、会社の研修ではCOBOLしか教えてもらえなかったので、
自分でC++を勉強しようと思うのですが、
初心者向けの書籍でオススメを教えていただけないでしょうか?

45 名前:28 :03/09/14 16:11
>>43
VC!:10秒、VCダブルクリック:13秒、
BCCダブルクリック(-wあり):13秒、BCCダブルクリック(-wなし):13秒でした。

46 名前:デフォルトの名無しさん :03/09/14 16:12
>>44
お前、ひょっとして
http://pc.2ch.net/test/read.cgi/prog/1061479188/357
じゃねぇだろうなw

47 名前:44 :03/09/14 16:16
違いますヽ(`Д´)ノウワァァァン

48 名前:デフォルトの名無しさん :03/09/14 16:21
>>47
なんだ違うのか。まあ、何かの縁だと思ってちょっと来いよ。
http://pc.2ch.net/test/read.cgi/prog/1061479188/l50

49 名前:デフォルトの名無しさん :03/09/14 16:50
>>47

初心者向けならなんでもいいよ。立ち読みして文面に好感が持てるものを買えば?

50 名前:デフォルトの名無しさん :03/09/14 16:53
こいつらヲタくだな w


51 名前:デフォルトの名無しさん :03/09/14 16:55
407 :仕様書無しさん :03/09/14 16:54
馬鹿なスレ w

52 名前:デフォルトの名無しさん :03/09/14 16:57
推薦図書スレいけ

53 名前:デフォルトの名無しさん :03/09/14 17:05
【初心者歓迎】C/C++室【環境依存OK】
http://pc2.2ch.net/test/read.cgi/tech/1059041347/l50
このスレで充分

54 名前:44 :03/09/14 17:14
>>52
情報サンクスです

55 名前:デフォルトの名無しさん :03/09/14 17:33
CV++.NETを入れてから、Borland C++Builder6を入れたらVC++.NETの方が起動できなくなりました。
厳密に言うと、スプラッシュウインドウが表示されて、その後メインウィンドウが一瞬だけ開いてすぐ閉じてしまうのです。

Builder6のほうをアンインストールしてもダメでした。C++Builderのときは大丈夫だったのですが・・・。

再インストールすればいいのでしょうが、実はVC++のディスクが1枚行方不明になってしまったのです。
OSはWinXP Homeです。

解決策をご存知の方、よろしくお願いします。

56 名前:デフォルトの名無しさん :03/09/14 18:25
>>44
> 去年入社したばっかの新人コボラーなのですが、会社の研修ではCOBOLしか教えてもらえなかったので、
> 自分でC++を勉強しようと思うのですが、
> 初心者向けの書籍でオススメを教えていただけないでしょうか?
 研修とはそういうものだ。

57 名前:デフォルトの名無しさん :03/09/14 18:28
>>44
会社は学校ではない。利益、貢献するところだ

58 名前:デフォルトの名無しさん :03/09/14 18:44
>>55
なくしたディスク探すか、MSに泣きついて再発行してもらば?

59 名前:デフォルトの名無しさん :03/09/14 18:50
>>55
ちゃんと店でVC++.NETを買う。

60 名前:デフォルトの名無しさん :03/09/14 18:54
>>58
やっぱりそれしかないのでしょうか・・・

>>59
もうひとつ買えと言う事ですかTT

61 名前:デフォルトの名無しさん :03/09/14 20:07
>>60
もしかすると該当するかもしれない。
http://support.microsoft.com/default.aspx?scid=kb;ja;306905

62 名前:デフォルトの名無しさん :03/09/14 20:48
>>61
おお!有難うございます。
症状が似てるのでダメ元でやってみます!

63 名前:28 :03/09/14 21:18
>>28です。質問の内容は、ボタンを押し続けた時、
ビルド時のexe(!を押した時のexe)だと一定間隔で表示されるのですが、
Debug or Release フォルダにあるexeファイルをダブルクリックした時の
exeだと、表示されるのが遅く成る時が多く、
終いにはピピピとなってしまいます。でした。

その遅くなるexeをDebug、Release両方張ります。ソースは>>39さんのです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=5
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=6
比べるテストをお願いします。

また、速いexeが作れる人、そのexeをアップしてください。お願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html#pagetop

64 名前:デフォルトの名無しさん :03/09/14 21:25
単にforループが忙しくてMeカーネルがキーインプットを落とすとか云う話ではないのか?
それなら、Sleep(1)とかループ中に挟んでおけば解決したりしないか?

65 名前:28 :03/09/14 21:37
>>64
Releaseの方は速くなりました。
ReleaseとDebugに差が出たのをはじめてみました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=7
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=8
なお8の方はReleaseですが間違えて表示がDebugになっています。

66 名前:28 :03/09/14 21:49
>>64
ゲームにもその方法を使ったら解決できました。
なお、ゲームの方はDebug、Release両方速くなりました。
どうもありがとうございました。

また、何回も書き込みお騒がせいたしました。

67 名前:デフォルトの名無しさん :03/09/15 13:39
Visual Studio .NETにおいて、数式中の数字と記号の間に、
自動的に半角空白文字を挿入することはでけますか?
あればその方法を教えてください。
例)
「a=b+d」

「a = b + d」


68 名前:デフォルトの名無しさん :03/09/15 14:21
>>67
VBを使う。

69 名前:55 :03/09/15 15:46
>>61

だめでした・・・。
しばらくはここに来ることは出来なそうですTT

70 名前:デフォルトの名無しさん :03/09/16 00:52
コンボボックスの右側にボタンがありますよね?
あれが押されたかどうかを調べるにはどうすればいいんですか?

71 名前:デフォルトの名無しさん :03/09/16 00:54
>>70
CBN_DROPDOWNのハンドラを作ってガーッときてゴーッってな感じで

72 名前:デフォルトの名無しさん :03/09/16 18:25
VK_NUMLOCK → "NumLock"
みたいにキーコードを文字列に変換したいんですけど、ちまちまマッピングを
書いてやるしかないのでしょーか。

どっかにソース落ちてないですか?
Keycode2Name( VK_NUMLOCK , szKeyName )
こんな感じの。

ついでにWindowsメッセージ版もあるとありがたい。
Message2Name( WM_CREATE , szMessageName )
こんな感じの。

73 名前:デフォルトの名無しさん :03/09/16 18:28
>>72
随分と面倒くさがり屋なプログラマですな。

74 名前:72 :03/09/16 19:12
自己レス。

キー名に関してはAPIの GetKeyNameText() でいけますた。

75 名前:デフォルトの名無しさん :03/09/18 23:56
VisualC++6 Pro SP5
MFCダイアログベースでの質問です。

スタック上にCHogeDlg dlg;としてインスタンスを作成して、これをdlg.DoModal()でモーダル表示をし、EndDialog(0)で閉じてるのですが
これを繰り返すと(DoModal() -> EndDialog(0))4KBずつくらいメモリ使用量が増えていくのですが
EndDialog(0)のあと(まえ)に何かしないといけないですか?



76 名前:デフォルトの名無しさん :03/09/19 00:18
> EndDialog(0)のあと(まえ)に何かしないといけないですか?
あんたのつくりしだい。

77 名前:デフォルトの名無しさん :03/09/19 00:40
>>75
DoModal()の中で一時的なCWndオブジェクトが作られることはある。
そいつなら、アイドリング時に自動的に削除されるから、ほっといてもいずれ消える。
DeleteTempMap()で明示的に消すこともできる。

CDialog dlg(IDD_DIALOG1, this);
dlg.DoModal();
DeleteTempMap();

78 名前:デフォルトの名無しさん :03/09/19 09:24
よくウィンドウにWindows Media Playerが張り付いた(?)物を見かけますが、
あれはどうすればできるのですか?

79 名前:デフォルトの名無しさん :03/09/20 03:28
C言語の勉強を始めたばかりの、めちゃくちゃ初心者です。
本に書いてある通り、新規作成からwin32プロジェクト、
コンソールアプリケーション、空のプロジェクトを選択し、ファイルを新規作成し、
コードを入力してビルドからデバックを開始しても、
「デバックを開始できません。指定されたファイルが見つかりません。」
と表示されてしまいます。
助けてください。

80 名前:デフォルトの名無しさん :03/09/20 07:10
>>79
ファイルを作るとき「ファイル」→「新規作成」メニュー使ってないか?
だとすると「ファイル」→「既存項目の追加」を実行しないとプロジェクトに追加されない。
それが面倒なら最初から「ファイル」→「新しい項目の追加」でファイルを作れ。

81 名前:デフォルトの名無しさん :03/09/20 12:14
>>76
つけ足すと、Compuware社(旧NuMega)のBoundsCheckerを使ってみる、というのも手。
ただ、BoundsChecker通ればいい、という勘違いをしないように、使うことがポイント。

>>78
ActiveXコントロールの使い方を勉強しましょう。

82 名前:79 :03/09/20 13:43
>80さんありがとうございました。おかげでさっきまでのメッセージは
出なくなったのですが、デバッグを開始すると、一瞬MS-DOSの画面が開くと
すぐに消えてしまい、「プログラムはコード 0 (0x0) で終了しました。」という
メッセージが表示されてしまいます。ビルドでも正常終了しますし、何がいけないのでしょうか。


83 名前:79 :03/09/20 13:47
いや、MS-DOSに一瞬表示されてすぐに消えてしまうのです。
確か過去ログに同じようなことが書いてあったような気するので
探してきます、すみませんでした。

84 名前:ぷぅ :03/09/20 16:47
コンパイルの説明をしていただけませんか?
ちなみにVisual C++ 6.0をつかっています。

85 名前:俺って親切だなあ… :03/09/20 16:55
>>84
http://www.google.com/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&q=%83R%83%93%83p%83C%83%8B%82%C6%82%CD+Visual+C%2B%2B&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

86 名前:ぷぅ :03/09/20 17:04
詳しい解説HPを載せてもらいありがとうございました。
本当に感謝しています。ぺこ <(_ _)>

87 名前:ぷぅ :03/09/20 17:08
>>85
でもコンパイルのしかたが載っていないような気がするんですが・・・

88 名前:(;´Д`)y─┛~~ :03/09/20 17:22
>>80さんに質問です。僕も79さんと同じ疑問もっていたんですが
既存項目の追加 新しい項目の追加というボタンがありません。
どこにありますか?

89 名前:デフォルトの名無しさん :03/09/20 17:36
自分の環境を書けぃ。

90 名前:( :03/09/20 17:40
OSはwin98です。
ぷぅさん同様visual c++ 6.0です。
よろしくおねがいします。

91 名前:デフォルトの名無しさん :03/09/20 18:11
VC6 だったら

 ファイル -> プロジェクト -> Win32 (Console) App -> 単純なアプリケーション

と選んでいけば、勝手にテキストファイル生成されるから
そこに打ち込んでいけばよろし。

そのテキストファイル以外にテキストファイルを追加する場合は、
追加したいテキストファイルを編集できる状態にして

 右クリック -> プロジェクトへファイルの挿入

すればいい。

92 名前:デフォルトの名無しさん :03/09/21 21:53
Visual C++.net standard version 2003を
購入してインストールしたんですけど
たくさんのファイルなどができて
どのファイルで起動すればよいのかわからないです。
どのファイルに入っているか教えていただけないでしょうか?

93 名前:デフォルトの名無しさん :03/09/21 22:20
>>92
スタートメニューに登録されていません?
エクスプローラーから起動するなら、Common7のIdeのDevEnv.exe。

94 名前:デフォルトの名無しさん :03/09/21 22:58
>>93
スタートメニューから行けました。
ありがとうございました。

95 名前:デフォルトの名無しさん :03/09/23 00:02
VC6.0でビルドしたとき
リンク中...という所で止まってしまい、
中止することも、終了することも出来ないのですが
解決する方法はありますか?

96 名前:デフォルトの名無しさん :03/09/23 08:13
>>95
しばし待て!

97 名前:デフォルトの名無しさん :03/09/23 08:27
>>95
うちはVC6 SP5あてたら直ったよ。

98 名前:デフォルトの名無しさん :03/09/23 11:25
DirectShowを使ってメディアプレーヤーを作ってみたけど、
mp3は何か時間の取得がうまく出来ないことがあるね。
再生時間がやたらと長く取得されたりとか。
あれって何か良い対処法無いの?

99 名前:95 :03/09/23 15:40
>>97
SP5あてたら止まらなくなりました。
ありがとうございます!!

でもなんで止まるんだろー?

100 名前:デフォルトの名無しさん :03/09/23 15:56
英語版のVCで、日本語の文字列(ダブルクオーテーションで括られている)が含まれたソースをコンパイルした物を実行したとき、
日本語が表示される環境でソース通りの文字列が表示されますか?

 ソフトウェアの日本語化が(本家から)依頼されたのですが、私はVCを持っていないのでこのような質問をしました

101 名前:デフォルトの名無しさん :03/09/23 16:05
VC ではなく Visual Studio でした

102 名前:デフォルトの名無しさん :03/09/23 16:13
スレ違いのようなのですれ立てるまでもない〜へ逝って来ます。
スレ汚し、失礼しました。

103 名前:デフォルトの名無しさん :03/09/23 16:40
>>100
Unicode対応でちゃんと書かれていれば、日本語通ると思うよ。

104 名前:デフォルトの名無しさん :03/09/23 16:44
スレ違い気味の質問にレスをして頂いて、ありがとうございます。

SHIFT_JISですが、大丈夫でしょうか。

105 名前:デフォルトの名無しさん :03/09/23 17:56
>>104
試しにやるのが一番。

106 名前:デフォルトの名無しさん :03/09/23 21:18
プログラミングをやってみたくて猫でもわかる〜に行ったんですが、
ソフトがありません。どこかで無料ダウンロードできますか?

107 名前:デフォルトの名無しさん :03/09/23 21:27
コンパイラ?開発環境?なんのソフト?

108 名前:106 :03/09/23 21:34
Visual C++1.5? です
これさえあれば後は説明通りにやれば勉強できると思ったので・・・

109 名前:デフォルトの名無しさん :03/09/23 21:51
>>108
買えよ。


110 名前:108 :03/09/23 21:55
無料じゃないんですか・・・
失礼しました

111 名前:デフォルトの名無しさん :03/09/23 22:23
>109
ところで、VC++1.5なんて骨董品どこらへんで売ってる?

112 名前:デフォルトの名無しさん :03/09/23 22:43
>>106
Borlanc C++のフリー版を使う。

113 名前:デフォルトの名無しさん :03/09/24 06:49
HTMLをVCエディタを使って作りたいのですが、その場合はどのプロジェクトで
作ればよいのでしょう。また、ビルドみたいなのはどうするのでしょう。
インタプリタなのでビルドとはやり方が違うと思いますが。

114 名前:デフォルトの名無しさん :03/09/24 07:19
>>113
ファイル→新規作成→ファイル→HTMLページ

じゃダメなの?

115 名前:デフォルトの名無しさん :03/09/24 08:07
>>114
それでもできるのですが、cppの場合はプロジェクトに
コンソール/ウインドウズを指定してからファイルを作成するので
そういうのがあるのかなと。

116 名前:デフォルトの名無しさん :03/09/24 11:51
>>115
ヘルプに載ってなきゃ無いと思う。

117 名前:デフォルトの名無しさん :03/09/24 13:45
>>114>>116
お答えありがとうございました。

>>116
調べてみます。

118 名前:デフォルトの名無しさん :03/09/24 16:39
MFC超初心者なんですが、こちらでいいですか。
VC++6.0に添付の「プログラミング入門」の
Appendix Aのp.372の
「メンバ関数は、クラス定義の内部で実装
(関数のコードを記述)することもできますし、
クラス定義の外部で実装(::)することもできます。」
とあります。
ここで、クラス定義の内部で実装というのは、
p.373のcstringクラスにコンストラクタの追加、
すなはち
clss cString{
...略
pubulic:
~~~~~~~~
cString();//コンストラクタ
~~~~~~~~~
  ↑
この破線の部分が「クラス定義の内部で実装」を示しているのでしょうか?
宜しくお願いします。

119 名前:デフォルトの名無しさん :03/09/24 17:03
>>118
とりあえずclassのつづりが間違ってるな。

120 名前:デフォルトの名無しさん :03/09/24 17:03
class aa{
  void B();
}

void aa::B()
{
  ・・・
}

もできるし、

class aa{
  void B(){
    ・・・
  }
}

もできるってこと。

121 名前:デフォルトの名無しさん :03/09/24 17:08
>pubulic:
>~~~~~~~~
public: は関数ではありません。

>cString();//コンストラクタ
>~~~~~~~~~
関数を宣言しているだけです。実装なら、
cString(){
 ...略
}

122 名前:デフォルトの名無しさん :03/09/24 17:18
>>119-121
分かりやすく、的確な即レス、有難うございます。さすがプリンス板です(自分の中では)。
納得いたしました。sageですが有難うございました。

123 名前:デフォルトの名無しさん :03/09/24 17:49
示してをりません。宣言してゐるだけです。

124 名前:デフォルトの名無しさん :03/09/24 17:59
>>123
有難うございます。
実装はcString()のメンバ(中身)ですね。


125 名前:デフォルトの名無しさん :03/09/24 19:23
for (int i = 0; i< SIZE; i++) {
 pBuffer[i] = n;
}
for (int i = 0; i< SIZE; i++) {
 *pBuffer++ = n;
}
配列の扱いで後者は良く見られるパターンですが前者の方が早いって本当ですか?

126 名前:デフォルトの名無しさん :03/09/24 20:14
>>125 実際にやってみてレポートきぼんぬ

127 名前:デフォルトの名無しさん :03/09/24 21:14
サンデープログラマだから、そんなに多くのコード見ないけど、後者ってよく見られるの?

128 名前:デフォルトの名無しさん :03/09/24 21:37
それならCスレで激論してくれ。

129 名前:100 :03/09/24 21:41
>>105
わかりました。先方に言っておきます。ありがとうございました。

130 名前:デフォルトの名無しさん :03/09/25 14:03
初めてVCを始めるものですが、
ファイル処理に
ランタイムライブラリ関数
win32api
MFCのCfile
のどれを使おうかちょっと考えてます。
それぞれの特徴はどんなもんでしょうか。

131 名前:130 :03/09/25 14:42
すでにMFCで始めちゃったんですが、感覚としてはVBでいうところの
ランタイムライブラリ関数=VBの関数
win32api=win32api
MFC=コントロール
見たいなものですか?
VC始めたのもVBでapiを使うことが多くなってきたのがきっかけのひとつです。
MFCといっても結局API使うことが増えてくるのでせうか?

132 名前:デフォルトの名無しさん :03/09/25 14:48
質問させてください。

VC++で複数の子ダイアログを表示する方法を教えてください。
子ダイアログにはそれぞれWndProcが走っている状態にしたいのです。


お願いします。


133 名前:デフォルトの名無しさん :03/09/25 17:15
SDKのエディットボックスに背景色を設定する方法を教えてください
おーばーらいどというのを使わなければいけないのでつか(;´Д`)?

134 名前:デフォルトの名無しさん :03/09/25 19:00
>>132
MFC使えば楽

135 名前:デフォルトの名無しさん :03/09/25 19:27
>>133
親ウィンドウのWM_CTLCOLOREDITハンドラでSetBkColor()

136 名前:デフォルトの名無しさん :03/09/25 23:15
VC6.0 MFCのSDIにて作成しています。(OS:Win2K)

VC経験は以前にダイアログベースで電卓プログラムをつくった程度です。

目的はSDIにてボタンの追加やリストボックスなどを使用したプログラミングの作成です。
(以前の電卓ではリソースファイルにエディタ(?)を使いボタンの追加などを行っていました)

文字の表示は
void CxxxxView::OnDraw(CDC* pDC)
{
pDC->TextOut(0,0,"TestString");
}
で行えました。(ありふれた例題を参考)

さて正直このように、どのクラスに何を追加してよいのか的レベルで悩んでいます。
(ボタンのOnOK後の処理うんぬんではなく描画させることができていません)

今週末に時間をかけて作成しようと思っていますので、みなさまご教授おねがいします。

参考までに下記URLにて、作成したスケルトン(例題まんまですが)と
私のやりたい目標の画像を掲示しましたのでよければみてください。

ttp://home.att.ne.jp/grape/inchikikusai/situmon.htm

137 名前:デフォルトの名無しさん :03/09/25 23:19
VC6とVC.NETって機能は変わってますか?
どちらがいいのか迷っているのでお奨めの方教えてください。

138 名前:デフォルトの名無しさん :03/09/25 23:49
>>136
この形式(CView利用)のウィンドウにコントロールを置くのは、
各種ウィザードが使えないから面倒だよ?ま、とりあえずボタンの作り方。

(1)クラスビューでCEx03Viewを右クリック→メンバ変数の追加
  →変数のタイプ"CButton"→変数名"m_button1"→OK押す
(2)クラスウィザードでCEx03ViewにWM_CREATEハンドラを追加
  →CEx03View::OnCreate()関数ができる
(3)CEx03View::OnCreate()に以下のコードを追加
m_button1.Create("hoge", WS_VISIBLE|BS_PUSHBUTTON, CRect(0,0,80,30), this, 1000);

139 名前:136 :03/09/26 00:09
>>138さん
即レスどうもです。 今は環境がないので明日実装してみます。

2点追加質問です。
1、
>この形式(CView利用)のウィンドウにコントロールを置くのは、
>各種ウィザードが使えないから面倒だよ?ま、とりあえずボタンの作り方。
これ絡みなので、私もシロウトながらそう思いました。
ただ、ダイアログではなくウインドベースを目指す→SDI 利用にしました。
何か別の方法や手法があるのでしょうか? 例えばリソースファイルを引っ張ってくるであるとか・・・・

2、
URLの方で「名前不明」としていたのは何って言うのでしょう?
エクスプローラでファイル表示形式を詳細にすると「名前」「種類」「サイズ」などと出てスクロールできるやつです。
名前不明なため全然参考ソースなど調べることができませんでした。

140 名前:デフォルトの名無しさん :03/09/26 00:40
なんかな〜と愚痴ってみる

141 名前:138 :03/09/26 00:55
>>139
ああ、俺はまた、好んでイバラの道を行く人なんかとおもた。ちがうのか。
なら新規プロジェクト作成のとき、「基本クラス」をCFormViewに。
SDIだけどリソースで画面が作れる。
質問2はリストビュー。作成時の「基本クラス」でCListViewを選択。

142 名前:133 :03/09/26 06:19
>>135
ありがとうございます。ちゃんと表示色変えられました。
ただ全部の色が変わってしまったのでGetDlgCtlID的なものを探しています。
IDはどっかのパラメータに入ってるのかな。もちょっとがんがってみます。
目がしょぼしょぼ。・゚・(つД`)・゚・。

143 名前:デフォルトの名無しさん :03/09/26 07:54
>>137
IDEが重くて未成熟でも構わないのなら.NET。
快適に開発したいのならV6。


144 名前:デフォルトの名無しさん :03/09/26 17:13
リンク時に特定の警告メッセージを抑制したいのですが知っていますか?
コンパイル時には、
#pragma warning( disable : 4507 34 )
とすれば、4507 34 番の警告が抑制されますが、これのリンカー版みたいのってありますか?


145 名前:デフォルトの名無しさん :03/09/26 17:30
リンカーにwarningってあるんだ?

146 名前:デフォルトの名無しさん :03/09/26 20:05
>>143
レスサンクス
マシンが遅いのでVC6を探して買ってきます。
.NETはバグ無くなってからにします。

147 名前:デフォルトの名無しさん :03/09/26 21:21
質問させてください。
VC++で,自作プログラムから外部プログラムへデータを
渡したいのですが,どんなふうに処理してよいか分かりません.

たとえば,数値データをエクセルに送ってグラフ化するまでを
自動化できないでしょうか?

お願いします。


148 名前:デフォルトの名無しさん :03/09/26 21:38
WindowsXP + Visual C++ .NET(2002) + DirectX SDK 9bを使用しています。

1、ライブラリmylib.libからDirectXのd3d9.libなどをリンク
2、ライブラリ使用側はmylib.libとDirectX9のd3d9.libをリンク
とすると、ライブラリ使用側からみるとmylib.libとd3d9.libの二箇所に
同じものが組み込まれてしまっているのではないかと思ったのですが
これでも問題ないのでしょうか?

例えばある構造体を使用したときに、mylib.libからその構造体を
取ってくるのか、d3d9.libからその構造体を取ってくるのかといったことを
どのように解決するのかということが疑問に思いました。

どうかよろしくお願い致します。

149 名前:デフォルトの名無しさん :03/09/26 21:41
>ライブラリmylib.libからDirectXのd3d9.libなどをリンク

これはどうやればできるのか?
mylib.libを作る際には、d3d9.libの指定など無効なはずだ。

150 名前:150 :03/09/26 21:52
>>149
>mylib.libを作る際には、d3d9.libの指定など無効なはずだ。

そうだったんですか。ライブラリの中を覗いてみたところ
使用していないDirectXの様々な構造体名などの単語がずらずら並んでいたので
リンクされてしまっているものだと思っていました。

どうもありがとうございました。

151 名前:デフォルトの名無しさん :03/09/27 01:49
ダイアログボックスのプロバティの水平スクロールバー、垂直スクロールバー
に関しての質問です。

チェックすると表示はしますが、スライダーを動かしてもすぐに初期位置にもどって
しまいますし、ダイアログボックス内のコントロールも移動してくれません。
どのように使用するのでしょうか?


152 名前:デフォルトの名無しさん :03/09/27 03:30
>>151
WM_HSCROLL, WM_VSCROLLのハンドラを作ってスクロール位置を更新。
コントロールもあなたがやさしく動かしてあげないといけません。

153 名前:デフォルトの名無しさん :03/09/27 08:48
>>152
水平スクロールバーの作成(コントロール移動は後回し)の所ですけど

ClassWizardによりハンドラ追加後、
void CTest1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int nNewPos; // スクロール後の位置
switch( nSBCode ){
case SB_THUMBTRACK:
nNewPos = nPos;
break;
// 残りの「SB_何とか」はここでは省略
}
pScrollBar->SetScrollPos( nNewPos );
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
と作成して実行してもpScrollBarの値が0なので
「バンドルされてない例外は・・・」となってしまうんです。


154 名前:136続き :03/09/27 12:45
とりあえずリストビュー自体はくっつけることができました。

「基本クラス」をCFormViewにしてリソースでつくったんですが、
もとから「基本クラス」でCListViewの方がよかったんでしょうか?
(後々ボタンやチェックボックスの追加などがやりやすいと思いリソース使用にしたのですが)

さて、現状優先課題は、
1、メインウインドの大きさ変化に対して、リストビューの大きさが変わらない。
>これはウインドを可変させたときに、確か何やら値が返ってくるので、その数値をリストビューに反映させる。
であってますか? (それとももっと単純な落ち度があるのでしょうか?)

2、リストビュー内のデータについて
void CxxxxView::OnInitialUpdate(){
内で仮作成していますが、よくないと思っています。
このような場合、データだけをどこかで作り、呼び出す形式が一般的でしょうか?
また、そのとき「CxxxxxView」とは別クラスを用意した方がよいのでしょうか?

例によって参考URLです

ttp://home.att.ne.jp/grape/inchikikusai/situmon.htm


155 名前:デフォルトの名無しさん :03/09/27 22:53
>>154
1. WM_SIZE の OnSize を追加。
2. MSDNのDoc/View

なんかMFCの知識が圧倒的に不足している悪寒。
時間のあるときにじっくりMSDN眺めれ。

156 名前:デフォルトの名無しさん :03/09/28 02:14
>>155
MFCというかWindowsの(ry

157 名前:デフォルトの名無しさん :03/09/28 16:15
SDIアプリを作成して、クライアント領域にダイアログを
子ウィンドウとして(WS_CHILD)貼り付けました。
(↓のコードを書きました)

  ::CreateDialog( this->m_hInstance,
    MAKEINTRESOURCE( IDD_DIALOG1 ),
    this->GetMainWnd()->m_hWnd,
    (DLGPROC)DialogProc );

ところが表示はされるのですが、ボタンを押すことができません。
ダイアログをスタイルで「無効」にしているわけではありません。
Spyで調べても、WM_PAINTなどの描画メッセージは来ているのですが、
マウス関連のメッセージは来ません。
どうすればボタンを押せるようになるでしょうか?

158 名前:デフォルトの名無しさん :03/09/28 17:07
ここに質問していいのか迷いますがお願いします。

jpegを開いて画像処理したりするアプリを作ろうと思ったのですが、
コードを書く前に詰まってしまいました。
Independent JPEG Group(http://www.ijg.org/ )のjpegライブラリを使おうとしてDL私的たのですが、
libjpeg.libを生成しようとしてVCの環境変数も書きなおし、
jconfig.vcをjconfig.hにリネームし、
jpeg-6bディレクトリに移動して

nmake -f makefile.vc

と打ちました。
最初はうまいこと画面が流れてコンパイルできているようでしたが、
最後に

DEL LIBJPEG.LIB

と表示してPCがフリーズしてしまいました。
ちなみに、再起動した後jpeg-6bディレクトリにはlibjpeg.libはありませんでした。
環境はwin98,VC++6.0SEです。

159 名前:デフォルトの名無しさん :03/09/28 17:29
$(RM) libjpeg.lib をコメントアウトしてみ

160 名前:デフォルトの名無しさん :03/09/28 19:54
以前にVBを軽くいじっていたためにどうもVC入門書のコンソール画面から解説する解説書を読む気になれません....
しかし、いきなりGUIから始まる入門書も難解で....こんなあふぉな私にVCを簡単に理解可能な入門書またはサイトはないでしょうか?
VBをいじってたと言っても基礎的なのでほかの言語に応用できるような感じではありません...

161 名前:デフォルトの名無しさん :03/09/28 20:11
>解説書を読む気になれません....
やる気が無いなら無理。

162 名前:デフォルトの名無しさん :03/09/28 21:03
>>161
C言語入門書はやったのですが挫折気味でした。コレが何に使えるんだ?とおもってしまってw
確かに根気とやる気が必要ですね。精進させていただきます

163 名前:デフォルトの名無しさん :03/09/28 22:11
MFCを使用してプログラムしていますが、
WndProcを利用してメッセージを制御したい
と思っています。
WndProcはSDKだけでMFCでは利用できないのでしょうか?

教えてください。

164 名前:デフォルトの名無しさん :03/09/28 23:42
>>163
無理諦めろ

165 名前:デフォルトの名無しさん :03/09/28 23:57
>>163
CWnd::WindowProc

166 名前:デフォルトの名無しさん :03/09/29 00:25
>>163
マルチ氏ね

167 名前:デフォルトの名無しさん :03/09/29 00:47
起動してから「Hello World」のプログラムを
書くところまでの具体的な手順を教えて下さい。
ボタンがたくさんあって良くわからないです(´・Д・`)

168 名前:デフォルトの名無しさん :03/09/29 00:55
自分で調べろ

169 名前:デフォルトの名無しさん :03/09/29 04:18
始めようとC++.net2003を学割でかったのですが、、、
hello.c
#include <stdio.h>

main(){
printf("Hello C world!\n");
}

みたいなgccで通りそうなソースが通らないのですが、通らないのでしょうか?
申し訳ありませんがご教授クダサイ。

170 名前:デフォルトの名無しさん :03/09/29 04:42
>>169
>通らないのですが、通らないのでしょうか?
大きな意味で、向いてないと思う。あと、>>1読め。

171 名前:デフォルトの名無しさん :03/09/29 07:13
>>168
そうは言っても最初にIDEというものに触るときは何していいかさっぱりわからんもんだぜ。
プロジェクト?何それ、意味不明。

まぁ、入門書の1冊でも買うのが一番の近道か。

172 名前:デフォルトの名無しさん :03/09/29 10:47
説明書みればいいだけなのだが

173 名前:デフォルトの名無しさん :03/09/29 14:54
C++.NETでTreeViewにCheckBoxを付けてある場所がマウスでチェックされたら、
一番上のノードにチェックが付くようにしたいのですが
アプリケーションエラーが発生してしまいうまくいきません(exeのハンドルエラー)

いい方法はないでしょうか?(treeViewのCheckBoxはtrueになっています)

private: System::Void treeView_KeyTable_AfterCheck(System::Object * sender, System::Windows::Forms::TreeViewEventArgs * e)
{
if(treeView_KeyTable->Nodes->Item[0]->Nodes->Item[0]->Nodes->Item[0]->Checked)
{
treeView_KeyTable->Nodes->Item[0]->set_Checked(true);
}

174 名前:173 :03/09/29 14:57
すいません
ソース'}'が足りませんでした・・
正しい奴は↓です

private: System::Void treeView_KeyTable_AfterCheck(System::Object * sender, System::Windows::Forms::TreeViewEventArgs * e)
{
if(treeView_KeyTable->Nodes->Item[0]->Nodes->Item[0]->Nodes->Item[0]->Checked)
{
treeView_KeyTable->Nodes->Item[0]->set_Checked(true);
}
}

175 名前:デフォルトの名無しさん :03/09/29 17:26
コンボボックス内に現在つながれているMIDI機器を表示させ
選択出来るようにしたいのですが、どうすればいいでしょうか?

176 名前:デフォルトの名無しさん :03/09/29 18:15
>>175
初心者スレなのでしょうがないとも言えるが、人に聞くなら最低限問題は切り分けろ。

MIDI機器を列挙する方法がわからないのか?
コンボボックスに入れる方法がわからないのか?
選択させる方法がわからないのか?
自分では何もする気がないから誰かに全部作らせたいのか?

177 名前:175 :03/09/29 18:35
>>176
全部に決まってるだろ!
それくらい気づけ!

178 名前:デフォルトの名無しさん :03/09/29 19:01
>>177
繋ぎ直したのか?

179 名前:デフォルトの名無しさん :03/09/29 19:20
ここは初心者スレでもなんでもないな。
ただ煽ることしかできない厨のたまり場になってる。

180 名前:175 :03/09/29 20:38
>>176
MIDI機器を列挙する方法を教えてください。

181 名前:デフォルトの名無しさん :03/09/29 20:51
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=MIDI+%E5%88%97%E6%8C%99

182 名前:175 :03/09/29 21:27
>>181
ありがとうございます。

183 名前:175 :03/09/29 21:59
VBですね・・・。

184 名前:181 :03/09/29 22:11
俺はgoogleの検索結果を示しただけだが・・・。
お前さんがどのページを見るかは勝手だが、OS提供のAPIはそれを使う言語とは関係ないぞ。

185 名前:175 :03/09/29 22:14
そうでしたか

186 名前:デフォルトの名無しさん :03/09/29 23:14
>>185
馬鹿だろお前

187 名前:175 :03/09/30 07:55
>>186
いいえ

188 名前:デフォルトの名無しさん :03/09/30 09:55
すみません、教えてください。
ワーカースレッドを生成するプログラムのデバッグってふつうは
どういう風にするものなんでしょうか?
WinInetを使って通信するプログラムなんですが、タイムアウトの
バグを回避するためにはワーカースレッドで通信してます。
で、ときどきうまくタイムアウトしないようなので、ステップ実行で
トレースしてみているんですが、当然、元のプログラムとワーカー
スレッドの進行度合いの関係は通常の実行時とは違いますよね。
それで悩んでます。


189 名前:デフォルトの名無しさん :03/09/30 11:07
>>188

ステップ実行しているスレッド以外のスレッドは全速力で動くよ。
OutputDebugString たくさん仕込むのがいいんじゃない?

190 名前:デフォルトの名無しさん :03/09/30 15:15
教えてください。
プログラムを走らせると、
Debug Error!
Program: ....
DAMAGE: after Normal block (#62) at 0x00441520
という、エラー(?)が出てしまうのですが、
これはどうしてなのでしょうか?

プログラム自体は期待した結果をきちんと出してくれています。
調べてみたところ、どうも一番最後のところで
メモリの解放がうまく出来ていないことが
原因のようなのですが、、、

環境は
WinXP Professional
VC++6.0
です。
よろしくお願いいたします。

191 名前:デフォルトの名無しさん :03/09/30 15:34
sourceを読みたいのう

192 名前:デフォルトの名無しさん :03/09/30 16:17
じゃあ がんばってメモリ解放しようぜ

193 名前:デフォルトの名無しさん :03/09/30 16:27
ソースなんですが、ちょっと長いんです。
もし、見てくださるなら、
何かしらの方法でテキストファイルをお送りしたいのですが
いかがでしょう?

194 名前:デフォルトの名無しさん :03/09/30 17:25
>>190
Compuware社のBoundsCheckerっていうソフト、
メモリリークだけじゃなくて、解放済みメモリに書き込むのも検出してたような・・・。


195 名前:デフォルトの名無しさん :03/09/30 18:16
>>190
DAMAGE: はアクセス違反でしょ。
どっかで配列超えて書き込んだりしてない?

196 名前:デフォルトの名無しさん :03/09/30 18:30
>194
>195
ありがとうございます。
調べてみます。m(--)m

197 名前:デフォルトの名無しさん :03/09/30 18:35
ちなみに、Cランタイムの終了処理の中で、
緩衝領域が侵されていないかチェックしてるので、
メモリ解放処理にミスがあるとは限らないよ。

198 名前:デフォルトの名無しさん :03/09/30 18:37
おっと訂正。

> 緩衝領域が侵されていないかチェックしてるので、
終了時にトレースにエラーが出力されるわけで、 ←この行追加


199 名前:デフォルトの名無しさん :03/09/30 22:13
ちょい質問何だけどVCの一時オブジェクトってどうなってる?
#include <iostream>
using namespace std;
char str[]="test obj";
struct test
{
  test(char* s){ cout<<s<<endl; }
};
test fun(){ return test(str); }
int main()
{
  fun(); //Ok
  test(str); //NG
  return 0;
}
これってどうして?


200 名前:デフォルトの名無しさん :03/09/30 22:15
もちろんキャストや整数型ならオーケーなんだけど。

201 名前:デフォルトの名無しさん :03/09/30 23:19
> test(str); //NG
これは
test str;
と同等にみなされる。つまり「test型のローカル変数strの宣言」だ。
この文脈でコンストラクタを呼び出すつもりなら、関数名をカッコに入れろ。
(test)(str);

202 名前:デフォルトの名無しさん :03/10/01 01:07
>>201
構文解釈で関数宣言みなせるものは関数宣言とみなす。
という話は知ってたんですけどまさかローカル変数の宣言とみなすとは知らなかった。
だけど括弧が無視されるのは何か奇妙な感じですな〜。
test(dummy)(str);
こんな文法やだな〜。

203 名前:デフォルトの名無しさん :03/10/01 01:50
Visual Studio .NET2003のC++で勉強を始めました。
よく本やWEB上のサンプルで、コンソールならmain、WindowsプログラムならWinMainを
使うと書いていますが、VisualStudioのウィザードで自動的に作成されたコードでは
_tmain、_tWinMainという関数がそれに相当するようです。
この「_t」を削除してもコンパイルは通るのですが、この「_t」って一体何なんでしょうか?
ご存じの方教えて下さい。

204 名前:デフォルトの名無しさん :03/10/01 02:10
>>203
汎用テキストをあらわすプレフィックス。Unicode版とANSI版を同一の
ソースコードから作成するのに便利なように定義されている。
当分の間は(あるいは一生)気にする必要はない。

205 名前:デフォルトの名無しさん :03/10/01 05:28
VC++のSDKでマルチラインのEditコントロールを配置しました。
WM_CTLCOLOREDITメッセージ内でフォントサイズ12のテキストを描画させたところ
|←の表示位置が文字の前後でなく真ん中に表示されたり、文字の選択等がおかしくなってしまいました。
なにか設定等をしなければならないのでしょうか?
またSetBkColor()で背景色を設定したのですがES_MULTILINEスタイルを指定していると無視されてしまいます。
違う設定方法があるのでしょうか?

206 名前:デフォルトの名無しさん :03/10/01 12:35
馬鹿な質問の気がしますが・・・・・・・・・・
VC6じゃないとコンパイルが通らないプログラムがありました。
(VC6以降サポートされたAPIのため)
そのためVC6を買いました。

VC5で最新のSDKを入れるとコンパイルが通ったのでしょうか?

207 名前:デフォルトの名無しさん :03/10/01 13:19
>>206
最新のSDKとは何ですの?

208 名前:デフォルトの名無しさん :03/10/01 16:36
>>206
多分通ったでしょうね
っていうか、今のタイミングでVC6?

209 名前:デフォルトの名無しさん :03/10/01 16:56
新しいiostream、using namespace stdより、古いiostream.hのほうが
cout出力が速いみたいなんですけど、これってこういうもんなんですか?

210 名前:デフォルトの名無しさん :03/10/01 17:16
>>209
そういうもんだろ。

211 名前:デフォルトの名無しさん :03/10/01 18:34
>>208
レスありがとうございます

VC6自体を買ったのはかなり前の話です
ボクって馬鹿でした・・・・・

212 名前:デフォルトの名無しさん :03/10/01 21:24
>>205
そんな所で描画しちゃいかん。フォント変えたかったらWM_SETFONT送れ。
背景は、好きな色のブラシ作っといてWM_CTLCOLOREDITで返す。

213 名前:205 :03/10/02 02:25
>>212
レスありがとうございますです。
テキストの描画は他のとこでやっており、SelectObject()で描画した気になっていました。
すみません(;;
WM_SETFONTで設定したところカーソルの振る舞いは正常なものになりました。ありがとうございますヽ(≧▽≦)ノ

ただマルチラインを指定したエディットボックスの背景なのですが
SetBkMode()では1行目しか変更できませんでした。
改行すると他の行も変更されるのですが・・・
もう少しがんばってみますm(_ _)m

214 名前:デフォルトの名無しさん :03/10/02 08:21
>>213
SetBkColorで文字の背景色を変え(wParamがHDC)、
ブラシハンドルをreturnしてコントロールの背景色を変えてみる。

215 名前:205 :03/10/02 16:28
できますた!ヽ(≧▽≦)ノ
単純にキャストして返せば良かったのですねー
ありがとうございました〜m(_ _)m

216 名前:デフォルトの名無しさん :03/10/02 22:27
VC6なんだけど、ProsessorPackっていうのを訳も分からず入れてみた。

これってインストするだけで、いいの?

っていうか、インスト前と後でコンパイルしたEXEをバイナリエディタで比較して
みたら、入れた後の方がコード部分が短かくなっる...

きょうびのCPU向けに最適化されたって考えていいのかしら?


217 名前:デフォルトの名無しさん :03/10/02 22:28
>>216
ちょっと違う。
どう違うかは>>218が詳しく説明してくれる。

218 名前:デフォルトの名無しさん :03/10/03 06:39
(;´Д`)<シラネー

219 名前:デフォルトの名無しさん :03/10/03 15:06
APIを使ってマシンのMacアドレスを取得したいのですが、
可能でしょうか?
調べてみたらWin2000以降でないと使えないAPIとかでてきてしまいまして。
95系、NT系、どちらでも使えるAPIはないでしょうか?

220 名前:デフォルトの名無しさん :03/10/03 15:09
>>219
すみません。
スレ違いでした。

221 名前:デフォルトの名無しさん :03/10/03 17:22
http://jbbs.shitaraba.com/travel/2226/

222 名前:デフォルトの名無しさん :03/10/04 04:30
センセイ!
EM_GETLINEの正しい使い方教えてください!VCでSDKしてます!
LPARAMにデータが入ってこないんです。・゚・(つД`)・゚・。

223 名前:デフォルトの名無しさん :03/10/04 06:20
>>222
おしいな。VB用なら前に作ったのに。

224 名前:デフォルトの名無しさん :03/10/04 09:46
win2k visualC++.netでwin32アプリ作ったんですが
2kでは動くんですけど
9x系のOSだとダイアログなどが文字化けしてしまい
またしばらくすると固まってしまいます

どうすれば問題なく動くようになりますか?

225 名前:デフォルトの名無しさん :03/10/04 11:32
>>224
UNICODE関係か?

226 名前:222 :03/10/04 11:34
お騒がせしました。
バッファに使う変数の宣言位置いじったらデータが入ってきました。
でも何でか分からない…_| ̄|○


227 名前:デフォルトの名無しさん :03/10/04 13:12
>>226 そういうのって、リビルドすると直ることあるよ

228 名前:デフォルトの名無しさん :03/10/04 16:32
>>226
宣言位置を変えて直るのはたいがいその近くでオーバーフローしてるかヒープ破壊してるかのどっちかだが。

229 名前:デフォルトの名無しさん :03/10/04 18:12
>>226
EM_GETLINEのマニュアルを読め。
LPARAMの先頭にバッファサイズを入れておく必要がある。

230 名前:222 :03/10/04 20:24
バッファサイズ入れてないのに
データは来る・・・_| ̄|   __○

231 名前:デフォルトの名無しさん :03/10/04 21:02
>>230
それってゴミ値じゃねーの?

232 名前:デフォルトの名無しさん :03/10/04 21:06
>>230
初期化していないのだから、サイズがいくつになっているかは不定だ。
データが取得できなかったときは、*たまたま*0になっていて、
データが取得できるときは、*たまたま*適当な値になっているということ。

233 名前:デフォルトの名無しさん :03/10/04 22:17
マルチメディアタイマーを使用して、10msごとにテキストボックスのメンバ変数を1ずつインクリメントし、
再描画をするプログラムを作り、実行したたところ、
XPでは正常に動くのですが、98系ではウインドウが激しく点滅してしまい、使い物になりません。
98系での正常動作をさせる為に何かアドバイスをいただけないでしょうか。

234 名前:デフォルトの名無しさん :03/10/04 23:53
再描画?その辺りのソースを晒してもらわんことにはわからんなぁ。

235 名前:デフォルトの名無しさん :03/10/05 01:41
>>233
マルチメディアタイマーを使っているところに問題ないか?
あれはスレッドの優先順位が最も高いから、そっちのほうに処理が食われて、
他のところがおろそかになるんだよな。
マルチスレッドのほうがいいと思うが。
それから10msはちと早すぎ。50msくらいにまで落としたほうがいい。

236 名前:188 :03/10/06 09:17
>>189
ありがとうございます。
規制があったのか、書き込みできなかったもので、
アドバイスいただいたのに遅くなってすみません。
やっぱりそうなんですね。
教えていただいた方法でやってみます。

237 名前:デフォルトの名無しさん :03/10/06 13:05
昔作成したファイルを、VC++.net 2003でコンパイルしたら、
「WINVERを設定して無いね。0x0501にしておいたよ。」
なんていうメッセージがびっしり出てしまいました。

WINVERについて調べると、どのWindowsをターゲットにするのかを設定するのに
使用するマクロっぽかったのですが、
WINVERマクロをどういう値にするとどのwindowsがターゲットになるのかが
ちっとも分かりません。

MSとかでサーチしても
http://search.microsoft.com/search/results.aspx?View=ja-jp&p=1&s=0&c=4&st=b&qu=WINVER&na=30
こんなだし....

たとえば Win98SE、WinME、Win2k、WinXPをターゲットにしたい時は
WINVERを設定すればいいんでしょう。


とりあえず、なんかデフォルトらしいので
#define WINVER 0x0501
とかにしてみてますが...

238 名前:デフォルトの名無しさん :03/10/06 13:08
そしてage

239 名前:デフォルトの名無しさん :03/10/06 13:17
名が無知にもおしえtげやって
http://www.muzie.co.jp/cgi-bin/artist.cgi?id=a016219

240 名前:デフォルトの名無しさん :03/10/06 14:14
Windows95系は知らんが、
NT4.0 0x400
NT5.0 0x500
NT5.1 0x501
です。NT5.0っていうのは2000のことで、NT5.1っていうのはXPのことね。

241 名前:デフォルトの名無しさん :03/10/06 16:12
MSDNに書いてあったとおもうが

242 名前:r/237 :03/10/06 20:31
>>240
ありがとうです。つか、どこに書いてあったんですか?その情報...

>>241
MSDNって、VC++.netのヘルプのことでしょうか。
(ぜんぜん違いますか?もしかして...)
なんかVC++.netの[ヘルプ]->[検索]ってやって、
WINVERで検索しても、役に立ちそうな情報は見当たらなかったです...

はふー。


243 名前:デフォルトの名無しさん :03/10/06 20:52
>>242
すまん、_WIN32_WINNTや_WIN32_WINDOWSについては書いてあったが
WINVERについては書いてなかったようだ
普通にWindowsのバージョンで良いんじゃないかな

244 名前:240 :03/10/06 21:11
>>242
ソースは脳内です。
どこで見たのか覚えてないです。

>>243
プラットフォームSDKの2001年8月(MSDNライブラリの2001年10月)の、
キーワードWINVERで出てくる、"Using the SDK Headers" には、
WINVERが書かれていますが、

プラットフォームSDKの2003年2月(MSDNライブラリ VS.NET 2003)の、
キーワードWINVERでは、キーワードがWINVERなのに、
WINVERについて書かれていません。うーむ。


245 名前:デフォルトの名無しさん :03/10/06 21:15
>>244
やっぱりそうだよな
俺もそこ見たんだが、WINVERが無くなってたんだ

246 名前:デフォルトの名無しさん :03/10/06 21:16
当方,VCでグラフ出力をしたいのですが,
その際にlogスケールで出力したいのです.

しかし,かなりGoogleなどで検索したのですが,
方法が見つかりませんでしたので,ご助言お願いします.

247 名前:デフォルトの名無しさん :03/10/06 21:19
ヘルプでlog検索しなされ

248 名前:デフォルトの名無しさん :03/10/06 21:20
>かなりGoogleなどで検索した
例えばどんなキーワードで検索したんだ?
現状で、Logスケールじゃなかったら描けるわけ?>>246

249 名前:246 :03/10/06 21:27
>248
キーワードは,対数表示,Logスケールなどです.

リニアスケールでは現状で出力できます.

250 名前:デフォルトの名無しさん :03/10/06 21:35
>>246
よー分からんのだが、いったいどういう風にグラフを出力してんだ?
単に横(縦)軸の値をlogにして出力すればいいんじゃねーの?


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.