5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

VisualC++相談室 5

885 :デフォルトの名無しさん:02/01/21 06:25
STL.portをVC++で使おうと思い

4.5.1をダウンロードして、展開 (場所は...\Microsoft Visual Studio\VC98\Include\STLport-4.5.1\)
VC++のオプションのディレクトリ設定のところで一番上に
C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\INCLUDE\STLPORT-4.5.1\STLPORT
を追加

iostreamは元のを使うってことで
...\STLport-4.5\stlport\stl_usr_config.hの最初のほうにある 
# define _STLP_NO_OWN_IOSTREAMS 1 から#を削除し、コメントでなくす とか

stlport/stl/_site_config.h の上の方に
#define _STLP_NO_OWN_IOSTREAMS とか
やってみたりしたのですが、コンパイル時に

:\program files\microsoft visual studio\vc98\include\stlport-4.5.1\stlport\new(50) : fatal erro
r C1083: インクルード ファイルがオープンできません。'../include/new(THIS_FILE, 50)': No such file or dire
ctory

となってしまいます。../include/newが無いとか言われてるので vc99\include\stlport\
に置いてみたりもしましたが、同様の結果でした。
また、iostreamをコンパイルしてインストールし上記の#defineをしない場合でも同様でした。
そんなこんなで、徹夜状態の私を救ってください。お願いします。

886 :885:02/01/21 06:33
../include/newが無い

../include/newのエラーの行は
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
でnewが無い

887 :デフォルトの名無しさん:02/01/21 06:52
README.VC++.html見れば解決するかと。

888 :888:02/01/21 08:08
VC++でdoubleより範囲の広い数を扱える方法はありませんか?
有効桁数は同じでもいいのですが…

889 :デフォルトの名無しさん:02/01/21 08:34
広い数?

890 :デフォルトの名無しさん:02/01/21 11:37
CString型のメンバ変数からchar型の代入はキシュツですが、
CString型のメンバ変数からchar型の配列の代入はどうすればいいのでしょうか。

891 :デフォルトの名無しさん:02/01/21 11:50
>>890
_tcscpy または lstrcpy


892 :デフォルトの名無しさん:02/01/21 12:22
>>890
こんなかんじでもいける気がする。
LPTSTR str=new char[10];
CString cstr("hogege");
str=(char*)LPCTSTR(cstr);

893 :日下部圭子 ◆ib749tYo :02/01/21 12:40
In article >>892, デフォルト名無しさん/892 wrote:
> こんなかんじでもいける気がする。

だめですね。

----------------------------------
||//
(@_@) Kusakabe Keiko
----------------------------------

894 :デフォルトの名無しさん:02/01/21 13:12
>>893
何が?

895 : :02/01/21 13:29
CString::GetBuffer で取り出さないとだめ・・・だったと思う。


896 :デフォルトの名無しさん:02/01/21 13:31
>>892
ネタ?

897 :デフォルトの名無しさん:02/01/21 13:35
フォートランってどうよ?

898 :た。:02/01/21 13:37
こんなんでどうよ?
CString strTime;
CTime t = CTime::GetCurrentTime();
strTime=t.Format("%H:%M:%S");
LPTSTR p1 = strTime.GetBuffer( 255 );



899 :デフォルトの名無しさん:02/01/21 13:39
エクスプローラのwindowを閉じるには
どうすればいいんでしょうか?
WM_CLOSEを送ってもビープ音が鳴るだけなんですが。

900 :デフォルトの名無しさん:02/01/21 13:43
>>898
GetBuffer()は、リリースしないといけないからめんどくさい。


901 :デフォルトの名無しさん:02/01/21 13:49
変更しないならリリースしなくていいんじゃないの?

902 : :02/01/21 13:52
>>900
ほかに方法あるのだろうか?

903 :デフォルトの名無しさん:02/01/21 13:56
>>901
リリースは省略できないよ。


904 :デフォルトの名無しさん:02/01/21 14:02
>>902
なるだけCStringやconst char*系を使うようする。

一部にchar*系を要求するAPIがあるけど、そういうときは
char*のバッファにコピーして使う。


905 :デフォルトの名無しさん:02/01/21 14:03
>>892
> LPTSTR str=new char[10];

このメモリはいつdeleteするのだろう。



906 :デフォルトの名無しさん:02/01/21 14:04
代入のみが目的なら、>>892も有りだとおもわれ。

907 :た。:02/01/21 14:04
>>900
そんなこといったら、
cは関数終了に
}
で閉じなきゃ成んないからめんどくさい。
ってのと同じレベルかと。
GetBufferしたら勝手にこびとさんがReleaseBufferしてくれるように
手を鍛えると良いかと。

#でもMFC周りは色々手続きが煩雑でめんどくせーよな。
#Penなんかも切替えてもSelectObjectで元に戻すの
#忘れたりけっこうするし。


908 :デフォルトの名無しさん:02/01/21 14:08
>>905
リークしてますね。

909 :た。:02/01/21 14:14
>>908

そう言うときはいつもお世話になってるBoundsChecker。
結構うそ吐き出すけど。
MFCのなかでリークしてるなんてどないするんぢゃ。

910 :デフォルトの名無しさん:02/01/21 14:47
>>904
その場合は LPCSTR にキャストして直渡しでいいのでわ?

911 :デフォルトの名無しさん:02/01/21 14:51
>>910
LPCSTRだとchar*にわたせない気が。

912 :デフォルトの名無しさん:02/01/21 14:54
char*を要求するのって、リストビューのLVITEMとかでしょ。
読み書きで同じ構造体使うやつ。
そう言うのはモレも強引にキャストしちゃうけど。。

913 :デフォルトの名無しさん:02/01/21 15:03
>>911
だからバッファにコピーするっていってるじゃん。

914 :デフォルトの名無しさん:02/01/21 15:08
>>912
同感。MSNDに
「CString はメモリを節約するために、同じ値を持つ 2 つの文字列が
同じバッファ領域を共有できるようにします。
しかし、MFCを使用しないでバッファ領域の内容を直接変更すると、
両方の文字列が変更されてしまいます。」
とあるが、GetBuffer()はこれ対策なんでは・・などと思うわけで。
char*キャストして渡す分にはイイとおもう。

915 :デフォルトの名無しさん:02/01/21 15:10
GetBuffer()をしてリリースしないとか、
char*に強引にキャストするとか、ヤバい奴がけっこういるな。


916 :デフォルトの名無しさん:02/01/21 15:36
>>914
GetBufferをすると、
インスタンス内のポインタが同じバッファを指していると、
コピーされるみたいですね。


917 :デフォルトの名無しさん:02/01/21 15:55
とりあえず、CString::operator LPCTSTR() と、CString::GetBuffer() を見る。


918 :デフォルトの名無しさん:02/01/21 15:58
↑あ、ソースのことね。m_pchData は LPTSTR型だね。

919 :デフォルトの名無しさん:02/01/21 16:05
>910は LPTSTR と言いたかったんだろ。
そんなキャストするよりはコピーして渡した方がいいというのには同意。

920 :デフォルトの名無しさん:02/01/21 16:38
リストビューを詳細表示したときにヘッダーをダブルクリックすると
カラムの幅を自動調節してくれますが、
これをコードから行うにはどうしたら良いですか?

921 :デフォルトの名無しさん:02/01/21 16:50
ふつー、
CString cstr = "hogehoge";
char *str = _strdup( (LPCSTR)cstr );
...
free(str);


922 :デフォルトの名無しさん:02/01/21 17:09
>920
LVM_SETCOLUMNWIDTH で LVSCW_AUTOSIZE。

923 :デフォルトの名無しさん:02/01/21 17:23
>>922
できました!どうもありがとうございます。

924 :デフォルトの名無しさん:02/01/21 17:35
質問です。CFileDialogでファイルを選択するときに、前回の設定
(詳細、一覧、大きなダイアログ)などを記憶させる方法を教えてください。
詳細の場合はソートの方法も復旧させたいのですが、方法がわかりません。

925 :デフォルトの名無しさん:02/01/21 17:43
>924
シリアライズしる!

926 :演算(比較)速度:02/01/21 18:45
boolと BOOLって、やっぱ BOOLの方が速い?

927 :デフォルトの名無しさん:02/01/21 18:46
なんでBOOLのほうがはやいの?

928 :デフォルトの名無しさん:02/01/21 18:53
x86のワード長の関係?

929 :926: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ぐらい速かった(゜ε ゜ なんと。

930 :デフォルトの名無しさん:02/01/21 19:15
基本的になんでもプログラムって大概小文字のほうが速い。

931 :926: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の方が速い?

932 :デフォルトの名無しさん:02/01/21 19:27
>>931
そんなん代入はBOOLの方が3バイト分(VC++6とかでは)でかいんだからあたりまえやん
比較は>>928の言うとおり。

933 :デフォルトの名無しさん:02/01/21 19:42
>>929,931
volatile無くてダイジョブか?

boolって!0な値を代入するとぜんぶ1に変換されるんだな・・・
今まで知らんかった・・・

934 :デフォルトの名無しさん:02/01/21 20:01
>volatile無くてダイジョブか?
デバッグビルドだったので、ダイジョブ(だよね?)

935 :いさましいチビ:02/01/21 21:12
新スレ作りました。
http://pc.2ch.net/test/read.cgi/tech/1011615035/l50

936 :デフォルトの名無しさん:02/01/21 21:32
このスレを使い倒そうぜ!!

937 :デフォルトの名無しさん:02/01/22 00:51
eMbedded VC何ですが、ブレークポイントを置いても実行時に
one or more breakpoint cannot be set.みたいなエラーが出て、
白ブレークポイントにされてしまいます。
クリーンとかしてみたけど改善しません。
なにが原因なんでしょか?

938 :937:02/01/22 00:57
ガーン、ブレークポイントを置きたかったクラスをまだ使ってなかった ;(
間抜けでした。

939 :924: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));

で良いの? どうも自信がなくて。

942 :941:02/01/23 00:31
↑ あ、IContextMenu::QueryContextMenu です。

943 :885: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++で調べてもたくさんですぎてわかりませんでした。
あと、選択されているアイテムが変わったときに送られてくるメッセージも教えてくださ〜い(>А<)

946 :デフォルトの名無しさん:02/01/27 03:46
LBN_SELCHANGE。

947 :さくら:02/01/27 03:51
>946
あっ、やったぁできましたぁ!ありがとうございます〜☆(^Э^)ヾチュッ

948 :デフォルトの名無しさん:02/01/27 04:49
つぎからきちんとMSDNで探そうな。あ、それと、マトモな情報は
やっぱし英語のヤツしかなかったりするから。

949 :デフォルトの名無しさん:02/01/27 08:22
>>948
ム板マ板にいるプログラマ全員でかかれば、MSDNライブラリの
英文を全部和訳出来そうな気がする、と言ってみるテスト。

そんなことが出来る暇なプログラマはDQNばっかりだよ、
と返ってきそうな採点結果。


950 :デフォルトの名無しさん:02/01/27 19:39
>>949
そんなことが出来る暇なプログラマはDQNばっかりだよ
ローボコン100点

951 :号泣マン:02/01/28 23:26
ListViewコントロールのサブアイテムの編集方法ってあるのでしょうか?

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

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

宜しくお願いいたします。

952 :デフォルトの名無しさん:02/01/28 23:31
> 私はMFCを使わない(使えない)ので、ちょっとショックです。
猫に訊くとか、ATL/WTLのソース読むとか、MFCのソース読むとか、
方法は幾らでもあるだろうに。

953 :デフォルトの名無しさん:02/01/28 23:44
このスレをageた時点でもう……逝っていい

954 :デフォルトの名無しさん:02/01/28 23:48
それよりもなぜコテハンにする必要があるのだろうか。

955 :デフォルトの名無しさん:02/01/28 23:54
「クソスレ・クソレス、コテハンの法則」
があるから、それに従ったんだろう。
どーでもいい事をコテハンで書き込む連中には激しく萎え。

956 :号泣マン:02/01/29 11:50
本当はおまえらわからないんだろ!(藁)

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

じゃーなー

957 :デフォルトの名無しさん:02/01/29 11:54
>>956
一万円で、サンプルを書いてあげるよ。

958 :デフォルトの名無しさん:02/01/29 12:16
>>956
質問は新スレでしろよ。
それに煽るな。

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

ただ、個人的にはListViewのサブ項目の編集は使いにくいので
別の方法を模索するのを勧めるけどな。

959 :デフォルトの名無しさん:02/01/30 11:18
>>958
間違ってこっちに質問が来ないように、埋め立てカキコを
しちゃあかんのだろうか?

と、聞いているフリをして埋め立てをちょっと行ってみる。


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

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

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

よろしくお願いします。


961 :デフォルトの名無しさん:02/01/31 21:57
>>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 :デフォルトの名無しさん :02/02/01 04:42
秀丸のメニュー右には行桁が表示されていますが
同じようなことをするにはどうすればいいでしょうか。

964 :( _ 。。) _ バタ。 ◆lUd9keO2 :02/02/03 13:36
>>963
現在のテキストカーソル位置の取得なら
MAGURO ONLINE にサンプルコードがあったと思ったが…?

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

245 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)