VisualC++相談室 5

このエントリーをはてなブックマークに追加
GetBuffer()をしてリリースしないとか、
char*に強引にキャストするとか、ヤバい奴がけっこういるな。
916デフォルトの名無しさん:02/01/21 15:36
>>914
GetBufferをすると、
インスタンス内のポインタが同じバッファを指していると、
コピーされるみたいですね。
とりあえず、CString::operator LPCTSTR() と、CString::GetBuffer() を見る。
↑あ、ソースのことね。m_pchData は LPTSTR型だね。
>910は LPTSTR と言いたかったんだろ。
そんなキャストするよりはコピーして渡した方がいいというのには同意。
920デフォルトの名無しさん:02/01/21 16:38
リストビューを詳細表示したときにヘッダーをダブルクリックすると
カラムの幅を自動調節してくれますが、
これをコードから行うにはどうしたら良いですか?
ふつー、
CString cstr = "hogehoge";
char *str = _strdup( (LPCSTR)cstr );
...
free(str);
>920
LVM_SETCOLUMNWIDTH で LVSCW_AUTOSIZE。
>>922
できました!どうもありがとうございます。
924デフォルトの名無しさん:02/01/21 17:35
質問です。CFileDialogでファイルを選択するときに、前回の設定
(詳細、一覧、大きなダイアログ)などを記憶させる方法を教えてください。
詳細の場合はソートの方法も復旧させたいのですが、方法がわかりません。
>924
シリアライズしる!
926演算(比較)速度:02/01/21 18:45
boolと BOOLって、やっぱ BOOLの方が速い?
なんでBOOLのほうがはやいの?
x86のワード長の関係?
929926:02/01/21 19:13
っていうか、実際試してみりゃいいんじゃん。
 BOOL a;
 for(int i=0; i<100000000; ++i)  a = TRUE;

 bool a;
 for(int i=0; i<100000000; ++i)  a = true;
を比較したら、boolの方が、平均で 150msぐらい速かった(゜ε ゜ なんと。
基本的になんでもプログラムって大概小文字のほうが速い。
931926:02/01/21 19:18
 BOOL a = TRUE;
 int b;
 for(int i=0; i<100000000; ++i) if(a) b=1;
とやったら、今度は BOOLの方が平均 200msは速かった。
代入は bool、比較は BOOLの方が速い?
>>931
そんなん代入はBOOLの方が3バイト分(VC++6とかでは)でかいんだからあたりまえやん
比較は>>928の言うとおり。
>>929,931
volatile無くてダイジョブか?

boolって!0な値を代入するとぜんぶ1に変換されるんだな・・・
今まで知らんかった・・・
>volatile無くてダイジョブか?
デバッグビルドだったので、ダイジョブ(だよね?)
935いさましいチビ:02/01/21 21:12
このスレを使い倒そうぜ!!
eMbedded VC何ですが、ブレークポイントを置いても実行時に
one or more breakpoint cannot be set.みたいなエラーが出て、
白ブレークポイントにされてしまいます。
クリーンとかしてみたけど改善しません。
なにが原因なんでしょか?
938937:02/01/22 00:57
ガーン、ブレークポイントを置きたかったクラスをまだ使ってなかった ;(
間抜けでした。
939924:02/01/22 01:05
>925
返答どうもです。CFileDialogにはSerialize()が実装していないので、
出来ないみたいなんですが・・。
940 :02/01/22 07:03
>>876
MSにTELしたら、20011231に期限が切れたクーポン券が同封されたパッケージを
購入した人は一月中に登録すればOK。だと。
941デフォルトの名無しさん:02/01/23 00:30
CMenuExtension::QueryContextMenu なんですけど、
return で返す値が今一つよく分かりません。

#define ID_MENU0 0
#define ID_MENU1 1
#define ID_MENU2 2

STDMETHODIMP CShellExtension::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
{
 ...
 InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU0, "mめにゅ0");
 InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU1, "mめにゅ1");
 InsertMenu(hMenu, 0, MF_STRING | MF_BYPOSITION, idCmdFirst + ID_MENU2, "mめにゅ2");

とした場合、

 return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(ID_MENU2 - ID_MENU0 + 1));

で良いの? どうも自信がなくて。
942941:02/01/23 00:31
↑ あ、IContextMenu::QueryContextMenu です。
943885:02/01/23 07:55
>>885 >>886
http://www.stlport.com/dcforum/DCForumID6/603.html
こんな投稿があったので試してみましたが、やはり同じです
_STLP_NATIVE_INCLUDE_PATH に設定してみても同じでした
同様の症状がでて、解決した方、救ってください。
944デフォルトの名無しさん:02/01/27 03:29
質問させて頂きます。COLORREF型のRGBマクロの値を判定するにはどうすれば
よいのでしょうか。私が参考にしている本には、

COLORREF color;

if(GetBValue(color) == 0 && GetBValue(color) == 0
  && GetBValue(color) == 0)

となっていて、白と黒は判定できるのですが、それ以外は反応無しなのです。
どうすればよいでしょうか?
945さくら:02/01/27 03:41
あのー、ちょっといいですか?あー・・・、でも無視されそう・・・でも質問します!
ダイアログに貼り付けたリストボックスで、アイテムが選択されたときに送られるメッセージは何ですか?spy++で調べてもたくさんですぎてわかりませんでした。
あと、選択されているアイテムが変わったときに送られてくるメッセージも教えてくださ〜い(>А<)
LBN_SELCHANGE。
947さくら:02/01/27 03:51
>946
あっ、やったぁできましたぁ!ありがとうございます〜☆(^Э^)ヾチュッ
つぎからきちんとMSDNで探そうな。あ、それと、マトモな情報は
やっぱし英語のヤツしかなかったりするから。
>>948
ム板マ板にいるプログラマ全員でかかれば、MSDNライブラリの
英文を全部和訳出来そうな気がする、と言ってみるテスト。

そんなことが出来る暇なプログラマはDQNばっかりだよ、
と返ってきそうな採点結果。
>>949
そんなことが出来る暇なプログラマはDQNばっかりだよ
ローボコン100点
951号泣マン:02/01/28 23:26
ListViewコントロールのサブアイテムの編集方法ってあるのでしょうか?

自力で検索しましたが、
http://codeguru.earthweb.com/listview/edit_subitems2.shtml
みたいな英語のページしかないのでめげています。
私はMFCを使わない(使えない)ので、ちょっとショックです。

WindowsSDKのソースがあるとうれしいのですが。。。

宜しくお願いいたします。
> 私はMFCを使わない(使えない)ので、ちょっとショックです。
猫に訊くとか、ATL/WTLのソース読むとか、MFCのソース読むとか、
方法は幾らでもあるだろうに。
このスレをageた時点でもう……逝っていい
それよりもなぜコテハンにする必要があるのだろうか。
「クソスレ・クソレス、コテハンの法則」
があるから、それに従ったんだろう。
どーでもいい事をコテハンで書き込む連中には激しく萎え。
956号泣マン:02/01/29 11:50
本当はおまえらわからないんだろ!(藁)

あ〜あ期待した折れが馬鹿だったよ。

じゃーなー
>>956
一万円で、サンプルを書いてあげるよ。
>>956
質問は新スレでしろよ。
それに煽るな。

サンプルがMSDNの中にある。
InitListViewImageLists でクエリーかけてみろ。listview.cが見つかる。

ただ、個人的にはListViewのサブ項目の編集は使いにくいので
別の方法を模索するのを勧めるけどな。
>>958
間違ってこっちに質問が来ないように、埋め立てカキコを
しちゃあかんのだろうか?

と、聞いているフリをして埋め立てをちょっと行ってみる。
960太郎:02/01/31 21:54
すいません。
VCを勉強しているのですが。
よく分かりません。
単なる、ダイアログベースで作成して、
プロパティーページを出そうとしているのですが、
デバックで一度動いて、二度目で落ちてしまいます。
クラスは、CPropertyPageとCPropertySheetを使っています。

使用しているのは、VALUESTAR VL700R/5のマシン、
OS WINDOWS MEです。

ひとつ分かっているのは、一度、ツールバーのプロパティーを
動かしたら、デバックで死ぬことは、ありません。
VC6、サービスパック5をインストールしています。

よろしくお願いします。
>>959
埋まると dat 落ちしてしばらく参照できなくなる。

>>960
次スレに移ってください
VisualC++相談室 6
http://pc.2ch.net/test/read.cgi/tech/1011615035/
962次郎:02/01/31 22:00
Visual C++ 6.0にバグがあると思うのですがみなさんはどう思います?


??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
??=endif

がコンパイルできないんです。


??=include <stdio.h>
??=if 1
main()??<printf("Hello??/n");??>
#endif

だとコンパイルできるですけれど・・・・・
みなさんはどう思います?
ちなみに??ばっかりですけれど文字化けではありません。
秀丸のメニュー右には行桁が表示されていますが
同じようなことをするにはどうすればいいでしょうか。
>>963
現在のテキストカーソル位置の取得なら
MAGURO ONLINE にサンプルコードがあったと思ったが…?

(実際、中身見たことないで 確認してくれ >>963 よ )