□□□VC 初心者質問スレ 2□□□

このエントリーをはてなブックマークに追加
有効なオブジェクトだけど?
クラスのブロックの後ろに;がなーいよ。とツッコミ。
940937:02/05/04 17:43
もしかしてローカル変数入れてるんじゃ・・・と不安になりましたが
違うんですね。
>>937

>mydata.push_back(string(s)):
この時点では、s="ウマー"; となって、stringの一時オブジェクトが
作られる。そのあと、push_back()はコピーコンストラクタで
「値のコピー」を行って、m.mydata[0]に有効なオブジェクトが入る。
そのあと一時オブジェクトであるstrin(s)は消えるんだけど、
m.mydata[0]はstring(s)とは無関係な、有効なオブジェクトが残る。
ヘタな説明ですまそ。これで理解してくれれば嬉しいが。
コンパイラの質問ってここで聞いていいんですか??
943942:02/05/04 21:30
板違いだったらすみませんが質問ですが
VC 6.0と.NETともにデバッグしようとすると
かなりの確立でVCがフリーズします。
Win2000,XP両方発生します。
具体的にはF5押すとエディタがデバッグの画面に切り替わり
その後フリーズします。その際他のウィンドウとかも
巻き込まれます。タスクマネージャーは立ち上がらないのですが
1分ほど時間が経ってから閉じるボタンを押すと
「応答がない」のダイアログがでて何とか終了できます。
終了すると他のウィンドウなどは元に戻ります。
調べられる限り調べたのですがだめでした。
ちなみにノートンは切ってありますし、
オーバークロックもしておらず
オプションのデバッグ項目はデフォルトで使用しています。
ご存知の方おられましたら教えてもらえないでしょうか?
板違いだったら教えてください。
よろしくお願いします。
Win2kではたまに、XPではかなりの高確率で
デバッグ及びビルド開始時に失敗するね<VC6
.NETはよくしらん
>>944
VC6出たときから今までほぼ毎日使ってるが
そんな現象には一度も遭遇したことがない。
ちなみにOSはWin2K
>>945
ビルドボタン押したときに、ファイルを保存していますのまま数秒たった後に、不正終了しない?
>946
漏れはならんなぁ。
Spy++で死にそうになることはあったw
948デフォルトの名無しさん:02/05/05 01:13
メモリDCにテキスト描画して
それをウィンドウのDCに転送したいんですができませんかね?

...
HDC hdc, memdc;

SelectObject(memdc, hbm); // hbmには640*480の任意の画像
hdc = GetDC(hwnd);
memdc = CreateCompatibleDC(hdc);

TextOut(memdc, 300, 200, "hello, world!", 13);
// ここでmemdc → dc に転送したい
...

ビットマップはBitBltで転送できるんですけどテキストが・・・
TextOut(hdc, 300, 200, "hello, world!", 13);ならもちろん表示されるんですが

やはりWM_Paintで処理するしかないのかな・・・
あ、hdcにもビットマップセレクトされていてサイズは640*480です
念の為
>>あ、hdcにもビットマップセレクトされていてサイズは640*480です
>>念の為
間違えました(爆
hwndのクライアント領域のサイズが640*480です
memDCにSelectObjectするビットマップがないような気が・・・

memdcと互換のHBITMAP<かDIB>をクリエートする。
>memdc = CreateCompatibleDC(hdc);
HBITMAP hbmpSave = (HBITMAP)SelectObject(memdc,memdcと互換のHBITMAP<かDIB> );
>TextOut(memdc, 300, 200, "hello, world!", 13);
SelectObject( memdc, hbmpSave );
>>943
うちも玉ーになります.
SB Live! か、geforce の
どちらか入ってませんか?
953942:02/05/05 03:43
>>952
SB Live!挿してます。
付いてたドライバー関連のソフトウェアも
いくつか入ってます。
これが原因とは考えたことありませんでしたが
関係あるんですか?
とりあえず明日アンインストしようと思ってますが。。
954952:02/05/05 04:02
>>953
SB Live!というかcreative製品のドライバって昔っから出来が悪いですよね。
実は .net beta 時にうちでも問題起きて、msさんに質問したんですよ。
そしたら、ms製ドライバでは再現しないって事になりまして。
確かに落ちるのがSB Live!のdevldr32でした。
最近ではマシンが固まるとSB Live!付属とおもわれるdevldr32を殺すと
マシンが復活します。
955942:02/05/05 04:22
>>954
ありました、devldr32.exe
具体的な解決策としては
SBのドライバー関連全て削除して
始めから入ってるドライバーに差し替えたら
直りますか?
ちなみに今直接問題のファイルリネームしたら(->devldr32.bak)
勝手にexeファイル作成されてました(笑)
今作業中なので明日、やってみたいと思います。
なんか勘違いしてたら訂正お願いします。
どこ探しても対処見つからなかったので
かなりうれしいです。
956デフォルトの名無しさん:02/05/05 20:36
超厨な質問スマソ。
Main_Proc()のflgAに格納されている値を
別の関数Sub_Procで参照、または代入するのにはどうすればいいの?
957942:02/05/05 21:21
えっと結果から報告します。
ダメでした。
Liveのドライバー、ユーティリティ関係
全て消しても固まります。
その後、ドライバーをUPDateしましたが同じでした。
状況が似てたのでこれは、と思ったのですが
残念です。
他の方法ご存知の方おられたら教えてもらえないでしょうか?
シェルの作成についての課題なのですが、

MyshellはCshellと違って、Cで実行できていたコマンドや機能のうち
働かないものがある。これらを調べ、どのような機能が実行できないか、
なぜできないか、どのような機能を追加すればいいか?

例えば次のが実行できない

エイリアス、ヒストリー、ワイルドカード、ファイルへのリダイレクト、
shellプログラミング、ディレクトリー操作(popd、pushdなど)

これらから4つほど(エイリアス、ヒストリーは必須)をmyshellに追加せよ。

という課題です。助けてください、お願いします。できればソースを、、。


959958:02/05/05 23:34
myshellです

#include<stdio.h>
#define MAXARGS 10 /* 許されるコマンドの引数の最大の数 */
#define LINELENGTH 80 /* コマンドラインの最大文字数 */
#define CONTINUE 1
#define EXITCOM 0

main(int argc,char* argv[])
{
char linebuf[LINELENGTH];
int hist;

for(hist=1; ;hist++){
printf("myshell[%d] ",hist);

    gets(linebuf);
  
if(exec_one_command(linebuf)==EXITCOM) break;
}
}
char *skipspace(char* s)
{
while(*s==' ') s++;

return s;
}

960958:02/05/05 23:35
続きです

int getcl(char* line,char* argmv[])
{
int argnum=0;

do{
line=skipspace(line);
if(*line=='\0'){
argmv[argnum]=NULL;
return argnum;
}
argmv[argnum++]=line;
while(*line!='\0' && *line!=' ') line++;
if(*line=='\0'){
argmv[argnum]=NULL; return argnum;
}
*line='\0'; line++;
}while(1);
}

int exec_one_command(char linebuf[])
{
int argnum, status;
char *argmv[MAXARGS];

argnum=getcl(linebuf,argmv);
if(argnum==0) return CONTINUE;

if(strcmp(argmv[0],"exit")==0){
return EXITCOM;
}
if(fork()==0){
execvp(argmv[0],argmv);
printf("Error at execvp\n");
exit();
}
wait(&status);
return CONTINUE;
}



961958:02/05/06 00:11
ageます。よろしくお願いします
>>958
課題ってのは?
学校のレポートのこと?
963950:02/05/06 03:37
>>951
まさにその通りでした
ありがとうございます

もう一度確認してみたらSelectObject(memdc, hbm);実行する前に
TextOutしてました
そりゃ、テキスト描画されないわな・・・
>>958
おまえ別スレにも投稿しただろ?
死ね
967デフォルトの名無しさん:02/05/08 21:49
コンボボックスを無効にしたり、有効にしたりしたいんだけど、メッソッドで
やればいいんでしょうか??
EnableWindowだっけ?
そっだっよ
970967:02/05/08 22:01
はやっ。
やってみます。
産休。
971967:02/05/08 22:54
続きです。
有効/無効はできたのですが、グループ化してあるオブジェクトの場合には
最初のコントロールIDのメンバのオブジェクトが有効/無効になりますよね?
グループの後ろのほうのオブジェクトを有効/無効にしたいのですが、どうすれば
いいんでしょうか?
メンバ変数に登録するコントロールIDはメッセージマップのオブジェクトIDすべて
でてこないのはなぜなんでしょう?

初心者ですいません。
コントロールのIDからCWndを得れば?
973967:02/05/08 22:56
それをやるには?(_o_)
974967:02/05/08 23:10
もしかして、DoDataExchangeでDDX_Controlを直接手書きで作るってことですかね?
やってみます。
975967:02/05/08 23:21
目的どおりに動きました。
産休っ
976デフォルトの名無しさん:02/05/10 03:37
ActiveXのオブジェクトには、ボリュームで使われるような左右につまんでまわすボタンってないんでしょうか?
977デフォルトの名無しさん:02/05/10 03:39
VC辛いぽ(ToT)
978976:02/05/10 23:26
まじすか。ないすか。
誰か作んないすか?みんなどうしてるすか?
イメージリストの使い方わかんねぇ
980デフォルトの名無しさん:02/05/11 19:28
スライダーのハンドルに、BN_CLICKEDが欲しいのだけど、Class Wizzardで
でてきません。どうして?
Vc++ V.5だから??
>>979
それはおかしい
982980:02/05/11 19:32
>>981
980ですよね?
MM_OUTOFMEMORYしか表示されないんですよ。
なんでだろう〜♪
983980:02/05/11 19:43
コントロールウィンドウのものではなく、ActiveXのSlider ControlV6を
使用してできそうなことがわかりました。
984デフォルトの名無しさん:02/05/11 20:12
SDIで新規作成したときにできるテキスト欄?はリッチエディット何ですか?
文字表示したり弄ったりするのに何をキーワードに検索すりゃいいっすか。
985980:02/05/11 21:27
スライダーって、下が0、上がMAXとかってできますか?
>>984
まるで違う。
ただグラフィックとして文字などを表示することができるだけ。
>>985 できる