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


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

★初心者にVisual C++を教えるスレ★ Part7
1 名前:デフォルトの名無しさん :03/06/22 20:15
タイトルの通り、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/06/22 20:15


/** 過去スレ **/
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限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/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 名前:デフォルトの名無しさん :03/06/22 20:16
VC++は死滅

4 名前:デフォルトの名無しさん :03/06/22 20:26
>>1
<< "乙";

5 名前:デフォルトの名無しさん :03/06/22 21:25
>>1
グッジョブ!

6 名前:デカパン :03/06/22 21:44
>>1
乙だす!

7 名前:デフォルトの名無しさん :03/06/24 06:21
VisualC++6.0を使用していますが、コンパイルした後のアセンブラコードを見るためには
どうしたらよいのでしょうか?
コンパイルオプションを見たのですが、それらしいものは書いてありませんでした…。

8 名前:デフォルトの名無しさん :03/06/24 10:04
ダイアログベースのアプリケーションで、クラスウィザードからコントロールに
メンバ変数を割り当てると、そのダイアログクラスのコンストラクタに

//{{AFX_DATA_INIT(ダイアログクラス)

//}}AFX_DAT_INIT

というのができて、その中でメンバ変数の初期化をしてくれてますが、
この中の処理(たとえば初期値とか)って書き換えてしまっていいん
でしょうか?
それとも、これはクラスウィザードが使う部分なのでいじるとまずいん
でしょうか?

厨な質問と思うのですが、教えてください。

9 名前:デフォルトの名無しさん :03/06/24 12:02
>>7
"混合モード" で表示じゃダメ?

10 名前:デフォルトの名無しさん :03/06/24 13:06
>>8
自分で変更してOK

11 名前:デフォルトの名無しさん :03/06/24 15:47
フォントをリソースなどで埋め込んで、アプリからそのフォントを使用したいのですが
可能でしょうか?
よく、PowerPointやPDFで配布用にフォントを埋め込むことがあると思うのですが。

12 名前:11 :03/06/24 15:51
もしくは、システムのフォントディレクトリ(?)にフォントをコピーしなくても
プログラムと同じディレクトリにおいても利用できるような方法はありませんか?

13 名前:デフォルトの名無しさん :03/06/24 16:22
割り込みスマン!
もまいら教えてくさい。
プリプロセッサ定義にUNICODEと_UNICODEがあるのですが
これらはどうちがうのですか?
MFCのコードを見ると、どちらかが定義されているときは
他方も定義されるようになっているのですが。。。


14 名前:デフォルトの名無しさん :03/06/24 17:31
endlと'\n'って普通どっちを使えばいいんですか?
あと、C++で標準入出力はcoutとcin使えばいいんですよね?

15 名前:デフォルトの名無しさん :03/06/24 18:07
>14
endlは改行した上にフラッシュされる。
endlを使いましょう

16 名前:魔王みそちる ◆xuU0ZqjUEo :03/06/24 19:12
.NETが糞。糞。ってよく聞きます。
どうして糞なんですか。
糞だとしたら使う開発環境は
VC++.NETよりもVC++6.0のほうがいいってことですよね。

17 名前:デフォルトの名無しさん :03/06/24 20:05
>>13
Cライブラリ用とWinAPI用。

18 名前:13 :03/06/24 20:33
>>17
サンクスコ!!

19 名前:8 :03/06/24 23:31
>>10
ありがとうございます。
今までは怖くてOnInitDialogでわざわざもう一度設定し直して
たんですが、これで安心して直せます。


20 名前:デフォルトの名無しさん :03/06/25 08:24
リストビューやツリービューの上などにバーみたいなのを作って
「×」ボタンを表示するにはどうやったらいいんでしょうか。


21 名前:デフォルトの名無しさん :03/06/25 08:40
>>20
IEをSPY++で調

22 名前:デフォルトの名無しさん :03/06/25 10:20
コンボボックスの動作がおかしいので解決方法をおしえてください。
猫でもわかるの18〜20章をやっているのですが、
http://www.kumei.ne.jp/c_lang/index_sdk.html
コンボボックスをクリックしてもドロップダウンリストが正しく表示されず、
小さな青いバーがすぐ下にでてくるだけで、文字が一切出てこないのです。
文字の代入が失敗しているのかとおもって以下の(WPARAM)ComboNoの部分を1にしてみたりしましたがきちんと代入はされているようです。
for ( i = 0; i <= 3; i++ )
SendMessage(GetDlgItem(hDlgWnd, IDC_COMBO1), CB_INSERTSTRING, (WPARAM)i, (LPARAM)combostr[i]);
SendMessage(GetDlgItem(hDlgWnd, IDC_COMBO1), CB_SETCURSEL, , 0L)
HPには乗っていないようですが、コンボボックスが押されたときの表示処理をなにか書かなければいけないのでしょうか?
それともリソースエディタに何か問題があるのでしょうか?

VC++6.0Sp5

23 名前:デフォルトの名無しさん :03/06/25 10:27
>>22
コンボボックスのドロップダウンリストの高さが足りないだけ

24 名前:デフォルトの名無しさん :03/06/25 11:02
>>22
リソースエディタで、コンボボックスの▼をクリックしてみなよ。下に伸ばせるようになる

25 名前:20 :03/06/25 11:18
>>21
Spy使ってみたけどよく分からないです。ReBarがあるみたいだったけど。
SplitterWndを使っているので、CreateViewのあとに
m_wndFolderDB.Create(m_wndSplitter.GetPane(0,0), IDD_DIALOGBAR, CBRS_TOP, 1);
とかやってみたんですが、うまくいきませんでした。

26 名前:22 :03/06/25 11:56
>23

>24

ありがとうございます。解決しました。
コンボボックスのプロパティばっかり見てました。
まさかマウスで下に伸ばすことができるとは・・・。
_| ̄|○

やっぱり何か本買っておいたほうがよさそう・・・。

27 名前:デフォルトの名無しさん :03/06/25 15:09
WndProcはどこから呼び出しているのですか?GetMessage(&msg,NULL,0,0)、
TranslateMessage(&msg)、DispatchMessage(&msg)のどれかだと思うのですが。

28 名前:デフォルトの名無しさん :03/06/25 17:45
>>22
MoveWindowとかでテキトーに伸ばしたら?

29 名前:デフォルトの名無しさん :03/06/25 19:11
DIBSectionなんですけど、簡単なクラスにしてダブルバッファリングに使ってます。
bmpを読み込んで表示、ペンやブラシを使った描画なんかもとくに問題ありません。

それで今度、画像バッファのピクセルデータを直接弄って、バックバッファに
転送すると(BitBlt)、以前の画像のままでどこも変わっていません。
データを弄った後に、StretchDIBitsでbmpを画像バッファに転送してやり、それから
画像バッファからバックバッファにBitBltしてやるとうまく行きます。

まあ当然かな?とも思いますけど
弄ったデータ->画像バッファ->バックバッファ->画面DC
っていう流れは普通ですか?(バックバッファに直接書けと言うのはナシでお願いします)


30 名前:デフォルトの名無しさん :03/06/25 22:17
指定したディレクトリ内のファイル名とサブディレクトリ名を表示させたいのですが

プロジェクトがこのソリューション構成で選択されていないため、このプロジェクトの構成はスキップされました。

GetFileSystemEntriesの引数照合がうまくいきません

というエラーが出てしまいます
現在、WIN32コンソールプロジェクトで作ってますが
どのプロジェクトを使った方がいいのでしょうか?
C++.NETを使ってます

どこが間違ってるんでしょうか?わかる方いらっしゃいましたらよろしくお願いします

#include "stdafx.h"
#include <afx.h>
#include <windows.h>

#using <mscorlib.dll>
using namespace System;


int _tmain(int argc, _TCHAR* argv[])
{
  char StrPath[255];//対象フォルダ用の文字列宣言
  char Str_Filename_Array[1024][255];   //ファイル名格納変数
  //対象フォルダパスの入力
  scanf("%s", StrPath);

  Str_Filename_Array[0]=Directory.GetFileSystemEntries(StrPath);
  printf("%s",Str_Filename_Array[0]);
}

31 名前:デフォルトの名無しさん :03/06/26 03:52
以下のようなエラーが出ているのですがどうやって解決するかわかりません。

c:\〜\include\vector(132) : error C2036: 'struct Cab::_cab_token_t *' : サイズが定義されていません。

おそらくヘッダに問題があるのではないかと思うのですが、エラーの意味自体
ほとんど理解できずにいる状態で参っています。
まさかvectorいじれというわけではないでしょうが・・・

分かる方いらっしゃれば宜しくお願いします。

32 名前:デフォルトの名無しさん :03/06/26 09:01
>>31
コンパイラ エラー C2036
'class-key' : サイズが定義されていません。
指定された識別子は宣言されずに、そのアドレスが使われました。
宣言されていないオブジェクトのサイズを使うことはできません。
次にこのエラーの例を示します。

struct A* pA;
struct B { int i; };
B* pB;
void main()
{
 pA++; // エラー、A のサイズは分かりません
 pB++; // OK, B は宣言されています
}

/////

つまりは、vecotr のテンプレート引数に渡した構造体の宣言が怪しいと思われ。


33 名前:30 :03/06/26 10:16
WIN32コンソールプロジェクト.NETのプロジェクトで作成したら
プロジェクトがこのソリューション構成で選択されていないため、このプロジェクトの構成はスキップされました
というエラーは解消されたのですが

error C2065: 'Directory' : 定義されていない識別子です。
error C2228: '.GetFileSystemEntries' : 左側がクラス、構造体、共用体ではありません。

エラーが出てしまいます
解決策がありましたらよろしくお願いします
ソースは>>30のままです

34 名前:デフォルトの名無しさん :03/06/26 10:58
初めてのプログラム板に流されてきました。
@
もし
 A かつ B
ならば
 not B にして、C する

A
もし
 A かつ not B
ならば
 B にして、C する

これを書けばこんな感じなのでしょうか?
if A and B then not B C
if A and not B then B C

@A両方を行いたいのですが、永遠にループしてしまいます。
そうではなく
 @の場合はAを一度行って終わり。
 Aの場合は@を一度行って終わり。
このようにしたいのですがどうすればよいでしょうか?

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

35 名前:_ :03/06/26 10:58
http://homepage.mac.com/hiroyuki44/

36 名前:デフォルトの名無しさん :03/06/26 13:11
(゚Д゚)

37 名前:デフォルトの名無しさん :03/06/26 13:16
>>34
http://pc2.2ch.net/test/read.cgi/php/1056078605/112-

38 名前:デフォルトの名無しさん :03/06/26 16:13
アプリケーションが起動して、メインウィンドウを表示するとき
ShowWindowに渡すフラグって、何にするのがいいの?

MFCのソース見ると SW_SHOWNORMAL 使ってるし、
>初めてウィンドウを表示するときには、このフラグを指定してください。
ってMDSNにも書いてあるが、じゃ SW_SHOWDEFAULT はいつ使うのかと。
SW_SHOWDEFAULT の方が行儀いい...?

39 名前:デフォルトの名無しさん :03/06/26 19:09
Visual C++を買うと、Windowsのアイコンやビットマップファイルが手に入ってましたよね?
インストールしても見つかりませんが、どこにあるんでしょう。
単体VC++でなくて、MSDEVを買わないと無いのかな?

40 名前:デフォルトの名無しさん :03/06/26 19:24
需要と供給のバランスが悪い。

41 名前:デフォルトの名無しさん :03/06/26 19:49
■■■かわいそうな「ゲーム君」を2ちゃんの力でトップにしよう!■■■

HSPプログラムコンテスト2003オンライン投票
http://www.onionsoft.net/hsp/contest2003/entryn1.html

HSPプログラムコンテスト2003に一番乗りで出展したものの               
Windowsに標準でついてくるゲームを手軽に起動できるという(というかただのショートカットつめあわせ)
しょーもないプログラムでたたかれまくっているプログラミング暦3年(!)の高校生の
作品、ゲーム君をみんなの力で一位にしよう。              
【【【 投票方法 】】】            
http://www.onionsoft.net/hsp/contest2003/entryn1.html の一番下、エントリーNo8の「ゲーム君」
評価を「A」で選んでコメントを記入して「送信」(コメントいれるとなおよし)            
http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi?md=cmt&id=8
でいままで送信されたコメントが見えるよ!(けっこう笑える)             
順位 http://www.onionsoft.net/hsp/contest2003/eval/eval.cgi            

42 名前:デフォルトの名無しさん :03/06/26 19:51
あの、レジストリキーの名前の最大長ってどれくらいなんでしょうか。
RegEnumKeyEx()にバッファサイズがあるんですけど、何いれればいいのか
わかりません。

43 名前:デフォルトの名無しさん :03/06/26 22:23
おながいします。m(__)m
GDI+を使うために最新のPlatformSDKをインストールしたのですが
VC6のインクルードファイルやライブラリファイルのディレクトリ
の優先順位先頭にそのPlatformSDKのフォルダを指定して良い
ものでしょうか?
というのが、現在の先頭はデフォルトのDeveloperStudioの
VCフォルダになっているのですが、その中のヘッダファイルと
同名のファイルがPlatformSDKにもあるもので。。。
ちなみにPlatformSDKのフォルダを最下位にすると、GDI+を使用
するときに、ULONG_PTRという型が無いといって叱られます。
BaseTsd.hというファイルがインクルードされているのですが
現在インクルードされているVCの方では型が宣言されていなくて
PlatformSDKのほうでは宣言されているようです。
長文しみません。。。


44 名前:デフォルトの名無しさん :03/06/26 22:25
>>38
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_showwindow.htm

>>39
アプリケーションの追加と削除の、VC++のセットアップから追加・削除できる(ハズ)。
インストールしてるなら、VC++に関連するフォルダを死に物狂いで探すべし。

>>42
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_regenumkeyex.htm
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_regqueryinfokey.htm




…つーか、少しは調べようぜ……
…つーか、釣りじゃねぇよなぁ?

45 名前:デフォルトの名無しさん :03/06/26 22:43
>>43
新SDKを、新規ディレクトリにインストールすると、そんな感じに困ったことになった気がする。
なもんで、そのとき私は、
新SDKの include と lib ディレクトリの内容を丸々
旧SDKの include と lib ディレクトリに上書きしてしまった。
とりあえずこれで問題なく動いてくれたと思う。

まぁやるんであれば、当然ながら
ファイルバックアップしてからやりなされ。

46 名前:38 :03/06/26 22:46
>>44 ども。CWnd::ShowWindow() のほうだけ見てますた(;´Д`)

47 名前:43 :03/06/26 22:49
>>45
レスありがとうございますm(__)m
やっぱり上書きするしかないですか。。。
既存のがあるのでコワいのですが、僕も
バックアップとってやってみますネ。
どうもです。。。




48 名前:42 :03/06/26 23:49
>>44
ありがとうございます。

49 名前:デフォルトの名無しさん :03/06/27 00:43
>43,>45
待て待て!別の場所にインストールしても
新SDKのinclude,libを最優先にすればそれでいいはずだぞ。

VisualC++付属のPlatform SDKは、あれは要するにVC++発売時点での
Platform SDKがオマケで付いてきてるだけなんだから。

新Platform SDKのヘッダと、VC++のMFCやATLのヘッダを一緒に
使ってうまくコンパイルできないようなことが希にあるが、
適当に対処するかMSに文句を言ってくれたまえ…。

50 名前:デフォルトの名無しさん :03/06/27 00:54
>>40 同感。あまりに多すぎると順に片づける気力もなくなっちゃうぞ

>>34 どこかのスレに既に回答あり。これじゃいけないの?
if (A){ B= !B; C; }

>>27
Windows2000でMFCアプリを動かしたときのコールスタックの一部はこんな風になる。
AfxWndProcBaseがMFCのWindowProcだ。

AfxWndProcBase(HWND__ * 0x001303f6, unsigned int 273, unsigned int 32784, long 0) line 220 + 21 bytes
USER32! UserCallWinProc@20 + 24 bytes
USER32! DispatchMessageWorker@8 + 264 bytes
USER32! DispatchMessageA@4 + 11 bytes
CWinThread::PumpMessage() line 853

>>29
> それで今度、画像バッファのピクセルデータを直接弄って、バックバッファに
のあたりの言ってることが分からない…。

51 名前:デフォルトの名無しさん :03/06/27 02:05
VisualC6で、F7を押すと変更の有無に関わらず
全ファイルがリビルドされるようになってしまいました。
元に戻す方法があれば教えてください!

52 名前:デフォルトの名無しさん :03/06/27 06:59
>>51
日付設定がおかしくなってんじゃないの?
Windowsの設定と対象ファイルのタイムスタンプを確認しる

53 名前:デフォルトの名無しさん :03/06/27 09:14
>>52
全くそのとおりでした。
ありがとうございました。

54 名前:デフォルトの名無しさん :03/06/27 10:56
やっぱ探したけど、VC++単体だとアイコンやビットマップファイル無さそうです。
どこからか入手出来ないかな?

55 名前:デフォルトの名無しさん :03/06/27 11:43
>>54
VC++単体は持ってないので分からないけど
もしかしてCD-ROMの方に収録されてるんじゃ?

56 名前:デフォルトの名無しさん :03/06/27 13:55
>>54
C:\Program Files\Microsoft Visual Studio\Common\Graphics\Icons\Win95\
にあったけど。VCのCDを *.ico *.bmp で検索すれば出てくるんじゃないかな。

//俺は、そういうアイコンは ExtractIconEx() とか SHGetFileInfo() で
//OSの実行ファイルから直接アイコン取得して表示してるよ。

57 名前:デフォルトの名無しさん :03/06/27 17:44
WinSockを使って非同期のネットワーク接続を
実現するプログラムをDLLで作りたいんですが、
どうしたらいいのかさっぱりです。
なにか参考にできるような資料はありますでしょうか?
わかりにくくてすみません。

58 名前:デフォルトの名無しさん :03/06/27 17:52
>57

本屋行けばいいんじゃねーの?

59 名前:デフォルトの名無しさん :03/06/27 18:05
VC++6.0のインテリセンス(メンバ自動表示)が働かなくなってしまったんですが、
どうやったら復活しますか?
「ツール」−「オプション」ではチェック入ってます。

60 名前:デフォルトの名無しさん :03/06/27 19:22
>>59
プロジェクトの.ncbファイルを削除してリビルド
してみたら。

61 名前:デフォルトの名無しさん :03/06/27 19:31
>>60
ありがとうございます。
出るようになりました。

62 名前:デフォルトの名無しさん :03/06/28 00:15
>>57
・DLLの作り方を勉強する。(簡単なモノから作る)
・WinSockの本でネットワークにアクセスする勉強をする。

この二つを分けて勉強すれば辿り着く。ガンガレ!
言っとくがマジレスだ。

63 名前:デフォルトの名無しさん :03/06/28 00:40
「かちゅ〜しゃ」のように、スプリッターウィンドウの中のビューを切り替えるには
どうすればいいのでしょうか?

64 名前:デフォルトの名無しさん :03/06/28 05:16
#include <cmath>

int main(){
std::sqrt(1);
return 0;
}

このファイルをBorland C++でコンパイルするとエラーは出ないのに
Visual C++でコンパイルすると
error C2653: 'std' : 識別子がクラス名でも名前空間名でもありません。
というエラーが出てしまいます。
なぜなんでしょうか。

65 名前:デフォルトの名無しさん :03/06/28 07:58
cmath.h

// cmath standard header

#if _MSC_VER > 1000
#pragma once
#endif

#ifndef _CMATH_
#define _CMATH_
#ifdef _STD_USING
#undef _STD_USING
#include <math.h>
#define _STD_USING
#else
#include <math.h>
#endif /* _STD_USING */
#endif /* _CMATH_ */

/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/

66 名前:64 :03/06/28 14:51
>>65
解決しました。
ありがとうございました。

67 名前:デフォルトの名無しさん :03/06/28 15:50
画像の情報を生成して(ドットごとの色を指定して)
ビットマップで書き出したいのですが、参考書籍や
サイトでお勧めのものがあったら教えていただけませんか?
とりあえずぐぐってみたものの、有力なサイトは見つかりませんでした。

GUIメニューで画像の保存とかを選ぶのではなく、
プログラムを走らせたら勝手に書き出してくれるようなのを作りたいです。

68 名前:デフォルトの名無しさん :03/06/28 21:24
>67
猫でもわかる〜のSDK第2章に載ってる罠

69 名前:デフォルトの名無しさん :03/06/28 21:38
MFCを学ぶのに最適なページ知りませんか?

70 名前:デフォルトの名無しさん :03/06/28 21:41
>69
ttp://www.yahoo.co.jp/

71 名前:デフォルトの名無しさん :03/06/28 21:42
>>69
http://www.mfckitty.org/

72 名前:デフォルトの名無しさん :03/06/29 02:09
  r‐-‐- ⌒ヽ
  | | | ||  i i'^i
  h_,|_,|_,ノ( ノ|/ |
 | ``".´ ´"  ノ
 人  入_ /~
 |     /
 |    |
 |    ';      ,,----、,,,,,,,,,、、
 |    ';     / ,,-‐―、ヽヽヽヽ
 |    |    〔/     ))))ヾヽヽ
 |    ト   /.,,,,、、 ,ヽξ\Ξ/
 |    \   / ==/  .,==-   レi!
 ヽ     |\〔、 ,(_,、ノ( "",,ノ:: 6)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ';    ノ  λ:" ‐=‐^ン ...::::: |/  < さいたま〜!(@w荒
  ト   ノ   λ:::::. .::.. ::...::::::/     \__________
   \ ̄     \::::::::::::::// ._
    \      \__/   `ヽ
      |                \
      |      / ̄ヽ        ヽ
      |     HardRock     ヽ i
      |      ヽ_/        |  ヽ     / さ、さいたま〜!! /

73 名前:デフォルトの名無しさん :03/06/29 10:59
>>64
おれは、stdは省略して「::」だけでやってる。
これだとVC++でも、BC++でも、コンパイル通る。

ちなみに、ほんとにノーマルのBC++?
CompilerとかBuilderとか後ろに付くやつじゃなくて?

74 名前:名無し@沢村 :03/06/29 16:03
おまいら、くだらん質問する前に少しは調べろ。
http://www.codeproject.com/

75 名前:. :03/06/29 17:55
質問です。

表示後に、「閉じる」ボタンで非表示にしたモードレスダイアログが再表示できなくて困ってます。
ShowWindow(SW_SHOW)で再表示しようとすると、ウインドウハンドルがないといって怒られます。

ShowWindow(SW_HIDE) ⇔ ShowWindow(SW_SHOW)
の切り替えをするときに、ほかに何かしなければならないのでしょうか?

MainFrmにて
m_pCDialog = new CDialog(CWnd::GetDesktopWindow());
if (m_pCDialog->GetSafeHwnd() == NULL)
{
  m_pCDialog->Create();
  m_pCDialog->MoveWindow(0, 0, 90, 90, TRUE);
  m_pCDialog->SetImageNum((unsigned int)pDC->m_uiNumCameras);
  for (unsigned int i = 0; i < pDC->m_uiNum; i++)
  {
    m_pCDialog->Set(i, pDC->a.GetInfo(i), pDC->a.GetBuffer(i));
  }
  m_pCDialog->ShowWindow(SW_SHOW);
}

CDialogにて
CDialog::OnHide()
{
  ShowWindow(SW_HIDE);
}

としています。

76 名前:名無し@沢村 :03/06/29 20:28
>>75
そりゃあ「閉じる」ボタンを押した後にDestroyWindow()が呼び出されているんでしょうなあ。

77 名前:貧乏脱出!これであなたはお金持ち :03/06/29 20:49
普通に働いてお金持ちになれるのは全体の1%のみって本当!?
本当にお金持ちになるにはやはり「副収入」が必要!
一日30分 おうちでコピペ、コピペ!
嘘だと思うんならランキング見てみてくださいよ↓↓
(直リン不可)
http://www.adultshoping.com/addclickport.cgi?pid=1053353765(直リン不可)

...../////

78 名前:デフォルトの名無しさん :03/06/29 21:30
>>75
>MainFrmにて
>m_pCDialog = new CDialog(CWnd::GetDesktopWindow());
>if (m_pCDialog->GetSafeHwnd() == NULL)
この辺のコードはMainFrmのどこに入ってんの?

79 名前:. :03/06/29 22:06
ありがとうございます。

>>76
DestroyWindow()を呼び出している覚えはないんですが、
どこか裏で呼び出されているってことでしょうか?

>>78
えーっと、このダイアログを呼び出すためにつくったボタンのイベントハンドラの中で呼んでます。
はじめMainFrmのコンストラクタで呼んで、親(MainFrm)のウインドウハンドラ
をダイアログに渡そうと思ったんですが、うまくいかなかったので...
その後、MainFrmを前面に出したくなったので、デスクトップのウインドウハンドラを渡してますが。

どのタイミングでダイアログのインスタンスを作っていいのかいまいちよくわかってません。


80 名前:デフォルトの名無しさん :03/06/29 22:16
http://book-i.net/ad02/

81 名前:デフォルトの名無しさん :03/06/30 01:04
>>79
・「CDialog」の部分は、本当は違う名前という理解でOK?
・DoModal()してないので、DestroyWindow()は呼ばれてないと思う。
・「ウインドウハンドラ」ではなく「ウインドウハンドル」
・再表示させるときの ShowWindow(SW_SHOW) はどんな風に呼んでるの?

82 名前:デフォルトの名無しさん :03/06/30 01:10
>ShowWindow(SW_SHOW)で再表示しようとすると、ウインドウハンドルが
>ないといって怒られます。

一番大事なこの部分のコードとエラーメッセージを書いてくれないとな

83 名前:デフォルトの名無しさん :03/06/30 01:19
>>79
Dialog::OnCloseに掛。


84 名前:デフォルトの名無しさん :03/06/30 07:56
>>79
>このダイアログを呼び出すためにつくったボタンのイベントハンドラ
m_pCDialog という名前から察するに、CDialogクラス(あるいはそれを継承したクラス)のポインタが
CMainFrameのメンバ変数として宣言されていると思うけど……
イベントハンドラが2回以上呼び出された場合の処理は?
どこかでdeleteしてる?

85 名前:. :03/06/30 11:55
>>81
>・「CDialog」の部分は、本当は違う名前という理解でOK?
OKです。
>・DoModal()してないので、DestroyWindow()は呼ばれてないと思う。
なるほど
>・「ウインドウハンドラ」ではなく「ウインドウハンドル」
失礼しました。
>・再表示させるときの ShowWindow(SW_SHOW) はどんな風に
こんな感じです。

if (!m_pCalibDialog->IsWindowVisible())
{
  m_pCDialog->ShowWindow(SW_SHOW);
}

ちなみに、閉じるボタンのところで、
ShowWindow(SW_HIDE);
Sleep(1000);
ShowWindow(SW_SHOW);

とやっても、再表示されませんでした。


>>79
Dialog::OnClose()だと特別な処理かなにかがされるのでしょうか?
プログラム実行中はダイアログは1つだけを表示、非表示にしてつかいたいので
Destroyはしたくないのですが。

>>84
上のように、唯一のダイアログを使いたいので、MainFrmのデストラクタでのみdeleteしてます。

86 名前:_ :03/06/30 11:57
http://homepage.mac.com/hiroyuki44/jaz04.html

87 名前:81 :03/06/30 17:11
>>85
んー、問題ないように見えるけどねぇ

やっぱ、変なとこで DestroyWindow()してんのかな。
そこから攻めたほうがいいかも。

>ちなみに、閉じるボタンのところで、
>ShowWindow(SW_HIDE);
>Sleep(1000);
>ShowWindow(SW_SHOW);
うちではできたがなぁ。

88 名前:デフォルトの名無しさん :03/06/30 22:25
>>85
唯一のダイアログということだけど、

>>79
>どのタイミングでダイアログのインスタンスを作っていいのかいまいちよくわかってません。
作るのはメインフレームのOnCreateでいいんじゃないかい?

ボタンのイベントハンドラで
>m_pCDialog = new CDialog(CWnd::GetDesktopWindow());
なんて書いたらメモリリークが激しく起こりそうな予感。
ちゃんとポインタを初期化してチェックもしてれば別だけど。


89 名前:. :03/07/01 00:06
>>87 ほかの方々
おかげさまで、少し進展しました。
CDialog の OnShowWindow() で CDialog の上に乗せるタブコントロールを
Create() していたのがまずかったようです。
お騒がせしました。

>>88
確かにメモリリークは起こりそうなのですが、上でも述べましたように、
MainFrmのコンストラクタで new CDialog(this) すると、怒られる現象に悩まされていて、
このようにしているわけでして。
でも、おっしゃるとおり、チェックしなければならないのでめんどうそうですね。

セオリーとしては new CDialog() はどこでするべきなんでしょうか?


90 名前:デフォルトの名無しさん :03/07/01 00:13
>>89
OnCreate()

91 名前:デフォルトの名無しさん :03/07/01 01:00
>MainFrmのコンストラクタで new CDialog(this) すると、怒られる現象

コンストラクタの段階ではメインウィンドウができてないので当然 this->m_hWnd
は NULLとなり、怒られる

92 名前:. :03/07/01 01:38
>>90
>>91
他みなさま、ありがとうございます。
あとは、何とかやってみようと思います。



93 名前:デフォルトの名無しさん :03/07/01 15:59
VC++6 です。
CArchive& ar があって、

 while (ar.ReadString(buf)) {
  TRACE("%s\n", buf);
 }

とかやっているのですが、ファイルの内容が表示される途中で、

 CArchive exception; EndOfFile.

とか表示されます。実際のファイルに EOF が入っているとかはないです。
try/catch を入れてみても catch できません。

exception が表示される原因は何なのでしょう?


94 名前:93 :03/07/01 16:00
age ます……

95 名前:デフォルトの名無しさん :03/07/01 16:32
VC++.NETです(フォームアプリケーション)
今、読み込んだテキストファイルを文字コードや改行コードの変換
プログラムを作っているのですが

'型キャスト' : 'System::String __gc *' から 'const char *' に変換できません。
というエラーが出てしまい困っています
コード変換の為にfopenは欠かせないのでキャストが出来ないで困ってます
char型にキャストできる方法はありますでしょうか?

//ファイルダイアログボタンを押した時
private: System::Void button2_Click(System::Object * sender, System::EventArgs * e)
{
if(openFileDialog1->ShowDialog() == DialogResult::OK)
{
System::IO::StreamReader * sr = new
System::IO::StreamReader(openFileDialog1->FileName);
textBox1->Text=(sr->ReadToEnd());
label1->Text=openFileDialog1->FileName;

FILE *in_fp;
in_fp=fopen((const char *)openFileDialog1->FileName,"r");

sr->Close();
}

}

96 名前:デフォルトの名無しさん :03/07/01 18:15
ウインドウのボーダー、メニューバー、タイトルバーのサイズはどうやって求めれるでしょうか?
ウインドウのリサイズの時に困ってます。

横 描画領域+ボーダーx2
縦 描画領域+ボーダーx2+メニューバー+タイトルバー

と考えて、SetWindowPosでやろうとしているのですが、他に効率のいい事があればお願いします。

97 名前:デフォルトの名無しさん :03/07/01 19:27
>>96 AdjustWindowRect

98 名前:デフォルトの名無しさん :03/07/01 22:18
スレッド同士で何かしらの同期を取る一般的な方法ってどんな方法でしょうか?

99 名前:デフォルトの名無しさん :03/07/01 23:07
イベント、ミューテックス、クリティカルセクション、セマフォ

100 名前:デフォルトの名無しさん :03/07/01 23:08
セマフォ

101 名前:デフォルトの名無しさん :03/07/01 23:10
イベント、ミューテックス、クリティカルセクション、セマフォ
の内どれを使うかはMSDN読んでちょ


102 名前:名無し@沢村 :03/07/02 00:57
>>96
CScrollView::ResizeParentToFit()

103 名前:デフォルトの名無しさん :03/07/02 12:04
>>98 グローバル変数(w

104 名前:デフォルトの名無しさん :03/07/02 12:08
>>96
GetSystemMetrics()見れ

105 名前:デフォルトの名無しさん :03/07/02 12:14
>>93
LPTSTR ReadString( LPTSTR lpsz, UINT nMax );
throw( CArchiveException );

ってあったけど、サイズ指定する必要あるのでは?

Bool ReadString(CString& rString );を通ってないって事だと思う


106 名前:デフォルトの名無しさん :03/07/02 16:52
スレッドの終了の仕方を教えてください。
ThreadFile(){
while(bflag!=1){・・・・・・
}
return 0;
}

ThreadEnd(){
bflag=1;
CloseHandle(hThread);
・・・・・・
}

※bflagはグローバル変数です。
このような感じで、終了させているのですがデバックしたところCloseHandle(hThread);の部分で例外処理が起きてしまいました。
解決方法をご教授していただけると幸いです。



107 名前:デフォルトの名無しさん :03/07/02 17:14
>>106
スレッドが実際終了したのかを確認せんとね。
WaitForSingleObject辺りを調べてみたら?

108 名前:デフォルトの名無しさん :03/07/02 17:14
CloseHandle の時の hTreadの値調べたいいんじゃない? NULLとかになってない?

109 名前:デフォルトの名無しさん :03/07/02 18:25
プログラム内での値をEXCELのファイルに書き出すこと
はできるのでしょうか。

例えば変数の変化していく値をEXCELの各セルに書き出したいのです。
とても難しいでしょうか。

110 名前:デフォルトの名無しさん :03/07/02 18:30
>>109
DDE使えば出来る。
・・・・・・・・・今更DDEもないかな・・・・・・・。

111 名前:デフォルトの名無しさん :03/07/02 18:51
>>109
オートメーション

112 名前:デフォルトの名無しさん :03/07/02 19:18
>>111
すいません。
オートメーションってなんでしょうか。


113 名前:デフォルトの名無しさん :03/07/02 20:28
>>112
初心じゃ無理、COMとOLEの知識が要る

114 名前:デフォルトの名無しさん :03/07/02 21:08
>>113
そうですか・・・
ありがとうございます。
テキストファイルの書き出しで我慢します。

115 名前:デフォルトの名無しさん :03/07/02 22:16
>>107
>>108
ありがとうございました。
その辺をもう一度調べてみます。


116 名前:デフォルトの名無しさん :03/07/02 22:26
>>109
私はヘタレなのでコンマで区切ってテキスト出力して、
EXCELにCSVとして読み込ませてました。

数値と文字列だけならこの方が楽なので

117 名前:デフォルトの名無しさん :03/07/02 22:30
>>116
別にヘタレでもないと思うよ。

118 名前:デフォルトの名無しさん :03/07/02 22:53
>>117 同感。

VC++.NETについて質問です。

方向キーなどのシステムキーの受け取り方がわからないです。ダイアログボックスにメッセージ
OnSysKeyDown() ( WM_SYSKEYDOWN ) を定義しても、システムキーを受け取ってくれない
のです。
HELPを見ると、「WM_SYSKEYDOWN」メッセージは「ALTキー + ??」に使われてしまっているようです。





119 名前:118 :03/07/02 22:56
VC++6.0は、OnSysKeyDownでシステムキーを受け取ることができたはずですが・・。

よろしくおねがいします。

120 名前:デフォルトの名無しさん :03/07/02 23:01
方向キーはOnKeyDownじゃなかった?

121 名前:118 :03/07/02 23:04
>>120
OnKeyDownも駄目でした・・・。

122 名前:デフォルトの名無しさん :03/07/02 23:18
>>118
ダイアログじゃなくて、ダイアログ内でフォーカスをもっているコントロールのWM_KEYDOWNが呼ばれてるはず


123 名前:デフォルトの名無しさん :03/07/02 23:19
PreTranslateMessage内でWM_KEYDOWNを監視かな

124 名前:118 :03/07/03 00:04
>>123
PreTranslateMessageを使ってみたら、うまくいきました。

どうも、ありがとうございます。

125 名前:デフォルトの名無しさん :03/07/03 01:50
リソースのストリングテーブルって、何か「セグメント」っちゅーのがあって、
16個単位でロードされるのでメモリ節約云々てMSDNに書いてあるけど、要する
にリソースIDを

#define IDS_STRING_A1 1000
#define IDS_STRING_A2 1001
#define IDS_STRING_A3 1002
#define IDS_STRING_B1 1016
#define IDS_STRING_B2 1017
#define IDS_STRING_C1 1032

こんな風に16単位で使う場面ごとにグループ分けしとけばいいってことでつか?

126 名前:125 :03/07/03 01:54
それとも先頭からIDが連番かどうかに関係無く16個まとめて(上の例では先頭の
1000から16個無いので、結局全部)ロードされるのでしょうか?

127 名前:   :03/07/03 10:25
スタティックライブラリを作ったのだけど、その後がよくわかりません。

ライブラリ用のヘッダファイルは
ツール→ オプション→ディレクトリ→インクルードファイル
にあるパスに置いとけば#include<>で読み込まれるけどlibファイルは
ツール→ オプション→ディレクトリ→ライブラリファイル
にあるパスに置いとくだけじゃ駄目なの?
プロジェクト→プロジェクトへ追加→ファイル
でlibを追加すればコンパイルできるけどCの標準ライブラリはそんなことしなくても使えるのは何故?
自分のライブラリもヘッダファイルをインクルードするだけで使えるようななりたい。
そしてデバック用とリリース用を使い分けないと警告が出るんだけどCの標準ライブラリはどのように自動的に選択されてるの?
またstdio.libとかstring.libとか見つからないけどどっかにあるの?


128 名前:デフォルトの名無しさん :03/07/03 11:12
プロジェクトー設定ーリンク のオブジェクト/ライブラリモジュール 

129 名前:95 :03/07/03 12:22
やっぱりキャストは無理なんでしょうかね・・・
string* ならキャストが出来たのですが
肝心のchar型できません・・・

130 名前:127 :03/07/03 12:28
>>128
ありがとう。確かにそこにライブラリ名を追加するとできた。
でも同じ名前のデバッグ用とリリース用のスタティックライブラリを同一パスに置けないから
片方の名前を少し変えるしかないね。違うパスにおいても片方がいつも優先されるから。
ヘッダファイルとライブラリの名前は違ってても大丈夫だった。
Cの標準ライブラリもこういうふうになってるのかな?

131 名前:デフォルトの名無しさん :03/07/03 12:56
>>127
printfとかが入っているのはlibc.libでは。


132 名前:127 :03/07/03 13:22
>>131
ありがとう。ヘッダと名前が違ってもいいんだね。ライブラリは。


133 名前:名無し@沢村 :03/07/03 13:39
>>127
ヌヒよ、ヘッダファイルに

#ifdef _DEBUG
#pragma comment(lib, "aho.lib")
#else
#pragma comment(lib, "baka.lib")
#endif

と書いておけ。

134 名前:デフォルトの名無しさん :03/07/03 13:54
>>129
CStringは使っちゃだめなの?
System::String_gcが何かわからん

135 名前:デフォルトの名無しさん :03/07/03 14:27
>>134
分からないなら答えるなよ

136 名前:  :03/07/03 15:11
>>133
ありがとう。ヘッダのインクルードだけでリンクできたよ。
#pragmaは見たことあったけどどんな意味か調べたことなかった。役に立つね。



137 名前:名無し@沢村 :03/07/03 16:51
>>95
System::String::CopyTo()でwchar_tの配列へ文字列をコピーする。
fopen()の代わりに_wfopen()を使う。

これでどうだ? 出来るかどうか知らないが。

138 名前:109 :03/07/03 21:12
>>116
すいません。詳しく教えてくださいませんか。
なんとかして使えるようになりたいんです。

139 名前:デフォルトの名無しさん :03/07/03 21:17
>>138
単純に数値なり文字列なりをカンマで区切って書いていくだけ。

例えば、

1234,ああああ,abcd

なら、A1に1234、B1にああああ、C1にabcdが入るって感じ。
改行を入れればエクセル上でも次の行になる。
セル間を抜きたければ,,とすればいい。

140 名前:デフォルトの名無しさん :03/07/03 22:40
>>139
なんどもすいません。
CSVというのがよくわからなくて。。。
何か例を書いていただけるとありがたいのですが。

出力できるまでのプログラムを書いてくれるとうれしいです。

141 名前:デフォルトの名無しさん :03/07/03 22:42
>>140
甘えるなボケ
CSVくらい検索しろ

142 名前:デフォルトの名無しさん :03/07/03 22:49
>>140
EXCELでファイル保存するときにファイルの種類をCSVにして、
それをメモ帳か何かで見てみるとどんな風に成ってるか
分かりますよ

143 名前:デフォルトの名無しさん :03/07/03 23:04
>>142
甘えてました。調べてみます。すいません。レスを汚して

144 名前:デフォルトの名無しさん :03/07/03 23:05
>>140
CSVってのはカンマ区切りのテキストファイルだから例を挙げるまでも無いっしょ。
>>139に書いてあるような感じだよ。

1234,ああああ,abcd
2345,いいいい,bcde
3456,うううう,cdef
4567,ええええ,defg

みたいな。ファイルのopen,read,write,closeが解らないなら正直論外。
まずそこから勉強しる。


145 名前:デフォルトの名無しさん :03/07/04 00:37
CSVファイルの読み込みでできました。
ありがとうございます。

146 名前:デフォルトの名無しさん :03/07/04 00:45
CSVの処理は一見むちゃくちゃ簡単そうだけど、
文字列にカンマや制御コードやダブルコーテーションが入っている時の処理があるから
意外と奥が深いんだよな。とくにCSVの解析。

147 名前:デフォルトの名無しさん :03/07/04 11:03
Excelならタブ区切りの方がシンプルかもね

148 名前:デフォルトの名無しさん :03/07/04 11:37
Win32アプリで、標準Cのprintfの文字列が指定した桁より小さかったら、
スペースで埋める、-だったら、左寄せにするみたいなこと出来ますか?
やり方を教えてください。

149 名前:_ :03/07/04 11:40
http://homepage.mac.com/hiroyuki44/hankaku02.html

150 名前:デフォルトの名無しさん :03/07/04 13:23
>>148
printf使えば?
ウインドウとかに表示するならsprintfで文字列作って表示。
もしくはCStringのFormat()。

151 名前:95 :03/07/04 14:18
>>137
char g[100];
System::String::CopyTo(0,g,100,openFileDialog1->FileName->Length);

FILE *in_fp;
in_fp=_wfopen(g,"r");

これでやってみましたが
2 番目の引数を 'char [100]' から '__wchar_t __gc[]' に変換できません。
__gc 配列と Object * または Array * 間でのみ変換できます。

というエラーが出て出来ませんでした・・
CopyToの使い方が間違ってるのかな?

152 名前:デフォルトの名無しさん :03/07/04 14:35
>>150
できました。ありがとうございました。

153 名前:デフォルトの名無しさん :03/07/04 15:25
1つのプログラムの1セット全部(exe,cpp,dsw等)をCDを介して別のパソにコピーし、
dswを開いた所、ClassView情報ファイルにアクセスできませんと出て、また
ビルドした所、プログラム データベース '\debug\vc60.pdb' を開けません、とでました。
そこで、Debugフォルダの中の全てのファイルを消して、再度ビルドした所
できました。ただ、関数名を書いて(を書いた時に出てくる仮引数リストが出なく
なり、また、上の所の関数一覧表も表示されなくなりました。解決方法を教えて
ください。

154 名前:デフォルトの名無しさん :03/07/04 15:43
>CDを介して別のパソにコピーし、
実はリードオンリ属性がついたままという落ちではあるまいな

155 名前:デフォルトの名無しさん :03/07/04 15:56
>>154
そういう落ちになってしまいました。

一度消してしまうと、関数名を書いて(を書いた時に出てくる仮引数リスト
が出なくなり、また、上の所の関数一覧表も表示されなくなると言うのは
もう復活できないんですか?あと、この現象は、ソースをコピーしてビルド
した時などにも起こることがあります。

156 名前:153 :03/07/04 17:14
初めの二つの問題は、ドラッグ→プロパティで一気に属性を変える事で
解決できました。また、後の二つの問題も同じ方法で解決できたのですが、
一度消してしまったので、だめになってしまったようです。

ユーザー関数があるという認識(仮引数-型-名前表示、ウイザードバーの表示)
を更新させるには、まず、ヘッダーファイルがあると認識されてなければ
ならないようです。新規にヘッダーファイルを作って、コピーする事で
その瞬間に、全てのユーザー関数が一度に認識されました。

ここでの認識されていないというのは、ビルド等は普通に行なえるが、
便利な機能が使えなくなっているということです。

認識されなくなったヘッダーファイルを認識させる方法があるなら教えてください。

157 名前:デフォルトの名無しさん :03/07/04 18:17
wstring ws = L"あ";

ws.c_str()が返してくれるのは、ASCIIでしょうか、ウニコードでしょうか。

158 名前:_ :03/07/04 18:18
http://homepage.mac.com/hiroyuki44/hankaku02.html

159 名前:デフォルトの名無しさん :03/07/04 20:24
>>155
clwファイルやncbファイルを消す

160 名前:デフォルトの名無しさん :03/07/04 21:09
CPUの周波数によって表示を変えたり
メモリーの容量で表示を変えたり
HDDの容量で表示変えたり
OSによって表示変えたり実行できるOS制限したり

できませんか?  

161 名前:デフォルトの名無しさん :03/07/04 21:15
できますが、マルチなので教えません。

162 名前:デフォルトの名無しさん :03/07/04 21:20
どうやって?

163 名前:デフォルトの名無しさん :03/07/04 21:39
>>157
うに

164 名前:デフォルトの名無しさん :03/07/04 21:43
>>163
うにはねーべ
ユニだろ

165 名前:153 :03/07/04 22:36
ncbは消してもダメでした。clwはありませんでした。用語的には、
ウィザードバーはこのファイルをトラッキングしていないと言うみたいです。

166 名前:無料動画直リン :03/07/04 22:38
http://homepage.mac.com/miku24/

167 名前:デフォルトの名無しさん :03/07/04 22:49
>>165
>clwはありませんでした
じゃ作れよ

168 名前:153 :03/07/04 23:33
>>167
作るもんなんですか?ncbとかoptみたいに勝手に作られるタイプのものだと
思っていました。ただ、考えてみると、無いという事は消す必要が無いと
いう事で、作る必要も無いと思うのですが。どういうものなんですか?

169 名前:名無し@沢村 :03/07/05 02:30
>>151
ヌヒよ、managed C++ の基本を勉強したほうがいいんじゃないのか?
そういう俺も使ったことはないんだが。

String* s = openFileDialog1->FileName;

__wchar_t g = __gc new __wchar_t[s->Length + 1];
s->CopyTo(0, g, 0, s->Length);
g[s->Length] = L'\0';

FILE* in_fp = _wfopen(g, L"r");

こんな感じでどうだ?
MSDNライブラリ見ながら適当に書いてみたが。

170 名前:デフォルトの名無しさん :03/07/05 03:28
初心者です。
「USB接続されている全デバイスの取得」や
「USB接続されているCF」を検索出来るような
APIってありますか?
宜しくお願いします。


171 名前:20 :03/07/05 10:34
だれか(;´Д⊂)

172 名前:デフォルトでない名無しさん :03/07/05 10:49
>>171
Spy++でExplorerを見る位しましょう。


173 名前:20 :03/07/05 10:55
>>172
>>25

174 名前:デフォルトの名無しさん :03/07/05 11:36
WTLのCPaneContainer/CPaneContainerImplを調べれ。

175 名前:20 :03/07/05 13:32
>>174
ありがとうございます。早速調べてみます。

176 名前:153 :03/07/05 15:58
できました。
プロジェクト→プロジェクトへ追加→ファイル→ファイルを選んでOKをクリック
です。複数を一度に行ないたい場合は、ドラッグしてOKをクリックでできます。
お答えいただいた方、ありがとうございました。

177 名前:デフォルトの名無しさん :03/07/05 16:07
エディットボックスやボタンを作ったんですけど
そのボタンをもう使わないからDELETEで消すとエラーが現れます。
そのボタンに関連のある変数を全て消してもエラーが出ることがあります。

使わないボタンを消すにはどうやって削除するといいんでしょうか。
今は可視ボタンを無効にして見えなくしてます。

178 名前:デフォルトの名無しさん :03/07/05 16:14
>>177
手動
Delphiなら自動なんだけどね

179 名前:デフォルトの名無しさん :03/07/05 17:00
またDel厨が出てきた。ウザイ。

180 名前:デフォルトの名無しさん :03/07/05 17:11
>>178
糞レスすんな。ハゲ。

>>177
どんなエラーか書かないと答えようがない。

181 名前:デフォルトの名無しさん :03/07/05 17:11
>>177
クラスウィザードから消そうよ。

182 名前:デフォルトの名無しさん :03/07/05 20:08
>>178
ほんとにウサイなDel房。


183 名前:デフォルトの名無しさん :03/07/05 20:13
>>181
消せないだろ?
手動で消せって警告でてくるのに

確認したのはVC6だけど

184 名前:デフォルトの名無しさん :03/07/05 20:25
変数しか消してないのか。ボタンのハンドラや他の関連するコードは消してないのか。

185 名前:デフォルトの名無しさん :03/07/05 20:27
C#なら楽なのに(激藁

186 名前:デフォルトの名無しさん :03/07/05 20:28
>>185
糞レスすんな。ハゲ。

187 名前:デフォルトの名無しさん :03/07/05 21:24
MFCを使ってソースを書いている場合にスレッドを作るときはCreatThreadで作ると終了時に例外処理は出やすくなるんですか?
ダイアログを終了させたときに例外処理が出てしまいます。
教えていただけるとうれしいです。


188 名前:デフォルトの名無しさん :03/07/05 22:55
>>187
関係ないと思われ。複数のスレッドから同時にオブジェクトを操作する
場合には非MFC時同様の注意が必要。

189 名前:デフォルトの名無しさん :03/07/05 23:03
>>187
Sleep等を入れると直ったりする。

190 名前:デフォルトの名無しさん :03/07/05 23:04
VS.NETで、windows.hをインクルードしてるのに
WS_EX_LAYERED
が、定義されてないってでるのは何でだろう

マウスをかざしたらインテリセンスが働いてちゃんとでてるのに

191 名前:名無し@沢村 :03/07/05 23:22
>>190
_WIN32_WINNT を正しく定義していないから。

192 名前:デフォルトの名無しさん :03/07/05 23:49
>191
_WIN32_WINNTでぐぐったら猫でもわかるがヒットしました
基本中の基本だったんですね、すみません

193 名前:6 :03/07/06 01:31
プログラミングをやってみたいと思い、visualc++.netを買ったんですが
C言語の知識がない為、使い方がわからない状態です。参考本というのも
.netに関して殆どなく、amazonで評判の良かった"やってトライ"を買った
のです初めからプログラミングされているサンプルを書き換えて行くともの
ばかりで、中途半端にしか理解出来ない状態です。
質問は二つなのですが、c++.netを使う上でC++6.0やC#の本は初心者に参
考になるでしょうか?0からプログラミングを組んで行く過程を載せている
ような参考書はないものでしょうか?

194 名前:デフォルトの名無しさん :03/07/06 01:39
>>6
0からプログラミングを組んで行く過程を載せている
ような参考書はないものでしょうか?

Cからやれ・・・
非常に地味に感じるかもしれないけど。
そんなに回り道ではない

195 名前:デフォルトの名無しさん :03/07/06 02:32
>>6(>>193)
>>194 氏の言うと通り、CやC++の基本の部分からやってみれ。
以外にも重要で、Win32プログラムを作る上でも、MFC使っていても
基本は使っていくもの。
それから「猫でもわかる」で、最初からやっていくのも手。

196 名前:デフォルトの名無しさん :03/07/06 02:55
金をどぶに捨てかけた>>193に乾杯

197 名前:デフォルトの名無しさん :03/07/06 03:05
むしろ>>193はw(略

198 名前:デフォルトの名無しさん :03/07/06 03:09
しっかしよくわからないものをよく買う気になるよなぁ

199 名前:デフォルトの名無しさん :03/07/06 03:32
「金をだしたら、モトをとるため意欲が出る」というヨタ話でも
真に受けたんではないか?

200 名前:デフォルトの名無しさん :03/07/06 05:35
金をどぶに捨てた>>193は完敗

201 名前:デフォルトの名無しさん :03/07/06 06:07
>>196-200←貧乏人


202 名前:デフォルトの名無しさん :03/07/06 06:08
おれもc++.netってただのC++6.0の次のバージョンだとおもってたw

203 名前:デフォルトの名無しさん :03/07/06 07:24
>>202
え?違うの?

204 名前:6 :03/07/06 11:43
>>195「猫でもわかる」ですか。探してみます。
>>194,202,203
CとC++が同じ物だと思っていたのですよ。実際今でも違いがわかりませんが
C++.NET以外の参考書がc++.netに通用するかどうかが怖い所です。
>>196,197,200,201 お褒めの言葉どうも。(.ー.)
金をどぶに捨てるつもりはないんですがね・・・。
近い将来どうしても使わなくてはならないのです。

205 名前:デフォルトの名無しさん :03/07/06 12:21
いまどき通じるのか知らんが
C++の書籍=グラマー
VC++の書籍=リーダー

あと一緒だろうとたかをくくってボーランド系の本を買う儀式が
あなたを待っています

206 名前:デフォルトの名無しさん :03/07/06 13:01
★★★★★★★★★★★★★★★★★★★★

もうたまりません!!(・∀・)
(;´Д`)ハァハァ(;´Д`)ハァハァ
↓↓↓↓↓↓↓↓↓↓
http://www12.ocn.ne.jp/~sihori/adaruto1.htm

★★★★★★★★★★★★★★★★★★★★

207 名前:デフォルトの名無しさん :03/07/06 13:59
Cstring型に入っているshift_jis文字列をunicodeに変換する簡単な方法ってありますか?

208 名前:デフォルトの名無しさん :03/07/06 14:17
VC++でMFCの関数や使い方が乗っている詳しい本知りませんか?

209 名前:デフォルトの名無しさん :03/07/06 14:22
すいません、C++で生成されたクラスインスタンスの解放について質問があります。
以下のコード中の"※"が付いたコメント部分について、いったいどちらが正しいのでしょうか。

void test()
{
 int i,cnt;

 cnt = 3;

 // この↓クラスは定義/実装済みとして...
 TestClass *arrCls;
 arrCls = (TestClass*)malloc(sizeof(TestClass)*cnt);

 // こんな初期化はいらない?
 for(i=0;i<cnt;i++) arrCls[i] = *(new TestClass());

 arrCls[0].doSomething();

 // ※ 下でメモリをfreeにするなら、個別にdeleteはいらない?
 for(i=0;i<cnt;i++) delete &arrCls2[i];

 // ※ 上で個別にdeleteするなら、ここでfreeはいらない?
 free(arrCls2);

}


210 名前:デフォルトの名無しさん :03/07/06 14:30
メモリは動的に確保した分だけ解放しなければならない。

その前にvectorなりCArrayなり使ったほうが。

211 名前:209 :03/07/06 14:35
>>210
ありがとうございます。で、その解放の方法について、知りたいんです。
>>209 のソースのように、mallocでメモリを確保して、そこで個別にnewしている場合、
delete するべきなのか、それとも freeで終わっていいのか、と悩んでいます。

> その前にvectorなりCArrayなり使ったほうが。
すいません、勉強(基礎固め)中なので、あえてこんな事しています(苦笑

212 名前:デフォルトの名無しさん :03/07/06 15:08
> for(i=0;i<cnt;i++) arrCls[i] = *(new TestClass());
これは、newしたインスタンスのコピーするわけで、
newした分がリークする。リークするので、deleteの
しようがない。

どーしてもmallocでいくなら、placement newを使うこと。

213 名前:名無し@沢村 :03/07/06 15:22
>>207
CStringW(LPCSTR)

214 名前:209 :03/07/06 15:25
>>212
すいません。気づきませんでした。
>>209のソースだと、deleteされるのは、コピーされた方ですね。

> どーしてもmallocでいくなら、placement newを使うこと。
..なるほど。..っていうか"placement new"の意味がわからないので、
ちょっと調べてみます。ありがとうございました。

215 名前:デフォルトの名無しさん :03/07/06 19:01
自分全く知識が無いんですが
まず何を見て勉強すればいいんでしょうか。
検索しても何が何やら・・・
本買った方がいいですかね?

216 名前:デフォルトの名無しさん :03/07/06 19:12
>>215
何がしたいの?趣味?仕事?

217 名前:デフォルトの名無しさん :03/07/06 19:21
>>215
付属品一通り目を通せ

218 名前:デフォルトの名無しさん :03/07/06 20:19
>>215
何のために買ったのですか?

219 名前:デフォルトの名無しさん :03/07/06 21:20
まぁ何も知らない人がVCを買っても、
VCをVCとして意味のある使い方が出来るまで数ヶ月〜数年かかるわな。

220 名前:デフォルトの名無しさん :03/07/06 21:24
ちょっと(不?)便利なエディタを買いました
ぐらいの認識を脱する頃には次のバージョンの告知がきてますた
BCCからはじめろっていうのはあながち間違ってないかも

221 名前:デフォルトの名無しさん :03/07/06 21:29
>>215
まず猫に逝け!
使い方が分からんの何にもならんからな。

222 名前:デフォルトの名無しさん :03/07/06 22:45
パッケージ品を買えば物事が解決すると思ってるんだろうな・・・

223 名前:デフォルトの名無しさん :03/07/06 23:07
べつに

224 名前:デフォルトの名無しさん :03/07/06 23:09
その点、割れ厨は有料無料どころか英語だろうが有効な情報を探すのに余念がないぞ
ページ単位で雑誌のスキャン画像が出回ってるのには驚いた
犯罪だけど熱心さだけは大したもんだよ

225 名前:デフォルトの名無しさん :03/07/06 23:16
コマンドラインアプリケーションを作っているのですが、
セットアップしたらPATH環境変数も設定されている状態に
したいのです。

セットアッププロジェクトでインストールフォルダの
パスをシステムのPATH環境変数に自動登録する方法が
分かりません。

どなたか、お教え下さい。

226 名前:デフォルトの名無しさん :03/07/06 23:49
>>225
ttp://forums.belution.com/ja/vc/000/053/01s.shtml

227 名前:デフォルトの名無しさん :03/07/07 00:05
コンボボックスの扱い方について質問です。
コンボボックスをダイアログに挿入し、変数のタイプをCComboBox、カテゴリをコントロールに設定し、
後は何も手を加えずに実行したところ例外処理が出てしまいました。
なぜでしょうか?
どう対処すればよいか教えてください。


228 名前:デフォルトの名無しさん :03/07/07 00:49
>>226
ありがとうございます。
これでうまくいくかと思ったのですが、
セットアッププロジェクトは環境変数を
変更(置き換え)してしまいます。
PATH変数の現在の値とインストール先の
フォルダのパスをマージするにはどうしたら
良いのでしょう?



229 名前:デフォルトの名無しさん :03/07/07 00:56
現在の値 + ";" + フォルダのパス を書き込め!

230 名前:デフォルトの名無しさん :03/07/07 01:21
>>229
セットアッププログラムなので、現在の値自身は
分からないのです。現在の値を取れるかと思い、
%path%を書いてみたのですが、レジストリに
%path%と書かれてしまって、登録前の値を取り出す
ことができませんでした。


231 名前:デフォルトの名無しさん :03/07/07 02:08
>>213
ありがとうございました
早速試してみます

232 名前:デフォルトの名無しさん :03/07/07 02:12
>>213
検索したらMSDNサイトに引っかかりました
これからは自分でもっと調べます
余計な手間かけてすみませんでした

233 名前:デフォルトの名無しさん :03/07/07 14:21
すいません。エラーが消えないので質問します。

新しいダイアログを作ってコンストラクタでそのダイアログを作成するようにしたら
エラーになりました。以下のことを行うまではエラーになりませんでした。

@新しいラジオボタンを以前にあったラジオボタンの数から追加した。

しかも、メインのダイアログとは別に2つダイアログを新しく作っているのですが、
そのうちの一つはダイアログの作成関数をコンストラクタで作っているのに
その関数をとばしてしまいます。

これはどういう原因なのでしょうか

234 名前:デフォルトの名無しさん :03/07/07 15:15
>>233
別なコンストラクタ呼んでねぇ?
引数確認しる

235 名前:95 :03/07/07 15:37
>>169
教えてもらったやり方でやってみたらエラーがなくなりました
ありがとうございました

もう少し変数や関数の勉強します・・

236 名前:デフォルトの名無しさん :03/07/07 19:28
>>227
あれだな、リソースIDがバッティング(重複)してる可能性あり

resource.hを開いてそのコンボボックスのIDを確認しる
そんで別のコントロールに同値のIDが割り当てられてたら
そのIDを他のIDに変える

変えるIDはresource.hの下のほうに
#define _APS_NEXT_CONTROL_VALUE *** ***は数字
になってるからその数字を割り当てて
_APS_NEXT_CONTROL_VALUEの値を+1する

例えば #define _APS_NEXT_CONTROL_VALUE 32768 になってるなら
32768を割り当てて
#define _APS_NEXT_CONTROL_VALUE 32769 にする


237 名前:デフォルトの名無しさん :03/07/07 22:26
>>236
ありがとうございます。早速、調べてみます。
助かりました。

238 名前:デフォルトの名無しさん :03/07/07 22:55
文字の比較について教えてください。

char cBuff[]=" ";
strcpy(cBuff,m_edit);
if(strnicmp(cBuff,"M",1)==0)
{
・・・・・
}

文字列はエディットボックスからCString型で取得し、char cBuff[]にキャストしています。
ここで、エディットボックスに’M'を入れてデバックするとif文を通り抜けてしまい同じ文字だと認識してくれません。
どうしてでしょうか?教えてください。


239 名前:デフォルトの名無しさん :03/07/07 23:22
>>238
デバッグでifでブレークしてその時のcBuffの内容を見てみたら?

240 名前:デフォルトの名無しさん :03/07/08 00:38
もまいらGoogleが七夕バージョンになっていまつ^^

http://www.google.co.jp/

241 名前:デフォルトの名無しさん :03/07/08 00:56
>>240
おっ。いろいろなタイミングでかわるのは知っていたが、
ちゃんと国ごとにあわせているとは。やるな。

242 名前:デフォルトの名無しさん :03/07/08 14:01
自作のプログラムを実行すると、
「例外処理 (初回) は xxxxxxxxx.exe にあります: 0xC0000005: Access Violation。」
と出てしまいます。
プログラムの処理自体は終了しているみたいなんですが…。
原因とかわかりますでしょうか?

243 名前:デフォルトの名無しさん :03/07/08 14:41
>>242
多分メモリ関連。

244 名前:デフォルトの名無しさん :03/07/08 22:18
今月号のCマガを読んで多言語を扱うライブラリICUを使おうと思いました。
http://www.roguewave.co.jp/developer/info/icu/icu.html

しかしサンプルプログラムを動かすための開発環境のインストールや構築すらできません・゚・(ノД`)
Visual C++.NETで使いたいのですが誰か猿でもわかるように手取り足取り解説お願いします。
ほんとお願いします<(_ _)>

245 名前:デフォルトの名無しさん :03/07/08 22:28
スレッド内で、UpdateData(false)を使ってダイアログに表示しようと思ったんですが、
表示できませんでした。
スレッド内で得たデータをダイアログに常に表示しようとするときはどうすればよいんでしょうか?

246 名前:デフォルトの名無しさん :03/07/08 22:37
>>245
メッセージ飛ばすとか。
つーかダイアログに何を表示しようとしてるの?

247 名前:デフォルトの名無しさん :03/07/08 22:39
>>246
受信したデータの表示です。

248 名前:デフォルトの名無しさん :03/07/09 14:14
>>246
こんなことしてないか?

CHogeDlg::Hoge()
{
 AfxBeginThread( worker_thread, (LPVOID)this );
}

UINT worker_thread(LPVOID ptr)
{
 CHogeDlg* pDlg = (CHogeDlg*)ptr;

 pDlg->m_edit = "(゚д゚)ウマー";
 pDlg->UpdateData(FALSE);
}

249 名前:デフォルトの名無しさん :03/07/09 21:43
>>248
思いっきり似たようなことしてます・・・・(多分)

スレッドについて、それ以上にVC自体もまだまだ、勉強が足らない部分があるので、
良いアドバイスを頂けるとうれしいです。


250 名前:デフォルトの名無しさん :03/07/09 23:06
エクセルの表に書かれた文字や数字を書き換えたい場合
どんな関数を使えばよいのでしょうか?



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