トップページ⇒tech
1001コメント306KB

VisualC++相談室 【7】

レス数が1000を超えています。これ以上書き込みはできません。
0001いさましいチビの女の子NGNG
VisualC++関連の話題を扱うスレッドです。

前スレッド
http://pc.2ch.net/test/read.cgi/tech/1011615035/l50
0002943NGNG
2ゲッチュ
0003デフォルトの名無しさんNGNG
3だっつーの!!(怒)
0004デフォルトの名無しさんNGNG
>>1
女の子かー。
0005デフォルトの名無しさんNGNG
んなわけない。
0006アルメイダNGNG
すみません、以前リストボックスの色のつけ方を質問した者ですが
色はつけることが出来たのですが、リストボックス内全部が同じ
色になってしまいます。
リストボクスッが複数項目ある場合、その項目毎に色を変えることは
出来ないのでしょうか

お忙しいところ申し訳ありませんが
教えていただけるようお願い致します。
0007デフォルトの名無しさんNGNG
VCのシステムって根本的にどうゆうことなの?
C++やってるが全然わからん。
0008デフォルトの名無しさんNGNG
小人が入ってるらしい
0009デフォルトの名無しさんNGNG
>>6
前スレの919
0010デフォルトの名無しさんNGNG
>>7
C++ + MFC + IDE用コード。
0011デフォルトの名無しさんNGNG
STL.hって何入れれば使えるようになりますか?
0012デフォルトの名無しさんNGNG
「エクスプローラでファイルを右クリックしたときに表示されるポップアップメニュー」
と同じものをプログラム的に表示するにはどうしたらよいのでしょうか?
やさしい有識者のお方、ご助言よろしくお願いいたします。
0013デフォルトの名無しさんNGNG
>>1御付かれみたまちゃん
0014デフォルトの名無しさんNGNG
>>12
http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/programmersguide/shell_int/shell_int.asp
あたりを読むとか。MSDN LibraryやPlatform SDKにもサンプルがあった気が。
日本語解説があるかどうかは知りません。
0015デフォルトの名無しさんNGNG
マウスの中ボタンと左ボタンを入替えるプログラムを作りたいのですが
とりあえず中ボタンをフックで捕まえることが出来るのですがその後に
左ボタンが押された用に見せる処理がうまくいきません。

どのようにすれば良いか教えてほしいYO!
0016デフォルトの名無しさんNGNG
>15
捕まえられたんなら、
そこで左クリックのメッセージを投げとけば?
0017デフォルトの名無しさんNGNG
CM_Get〜の関数を使って、あるデバイスが現在ドコに繋がっているか(※)を
調べるには如何すれば良いんでしょうか?

※ノートパソなんかで、SCSIカードがPCMCIAに繋がっているとか...
0018デフォルトの名無しさんNGNG
誰かPostgreSQLをWin32でコンパイルして配布してください。
0019デフォルトの名無しさんNGNG
   _____
 /::\_____\   
 |: ̄\∩`_´) \ 
 |:   :| ̄ ̄U ̄:|
0020デフォルトの名無しさんNGNG
MFCで、毎フレームある作業をさせたいときはどうすれば?
0021デフォルトの名無しさんNGNG
>>20
毎フレーム
0022デフォルトの名無しさんNGNG
OnIdle
0023デフォルトの名無しさんNGNG
ときどき出てくるVC7ってVC6の次バージョンのこと?
それともVS.NETに入ってる偽VC++のこと?
0024デフォルトの名無しさんNGNG
前者と後者はどう違うんだ
002515NGNG
>16
WH_MOUSE_LLでWM_MBUTTONXXをフックしてWM_LBUTTONXXをPostMessage
してみてもうまくいかないYO! このやり方じゃダメですかね?
0026Disca ◆NAfP6znE NGNG
VisualCでMySQLを動かしたいのですが、どのようにしてプログラムすれば良いのでしょうか…。
0027デフォルトの名無しさんNGNG
>>26
このへんとか
ttp://www.mysql.gr.jp/jpdoc/3.22/manual.ja_ODBC.html
0028Disca ◆NAfP6znE NGNG
>>26
ありがとう、参考になりました。
0029デフォルトの名無しさんNGNG
.netが発売されてから、あまり伸びてないね。
新しい人は、C#に関心があるのかな?
0030デフォルトの名無しさんNGNG
souka?
003123NGNG
>>24
VC6の次バージョン: ネイティブコードを作る。
偽VC: VC#.net, VB.netなどと同様の中間コードを作る(.netのない環境では動かない)

という意味です。
で、VC7はどっちなんでしょ?
0032デフォルトの名無しさんNGNG
>>31
VisualSstudio .NETだろ?
ネイティブコードも作れるし、CLI版も作れる。
0033デフォルトの名無しさんNGNG
>>15
ごめん。嘘ついてた。コレだと抜けが多すぎる...

>>25
システムフックのDLLを作ってそこで置き換える。
完璧なのを作りたいのなら、
マウスドライバに被せるような、フィルタドライバを作る。
0034デフォルトの名無しさんNGNG
CM_Get_DevNode_Registry_Propertyって関数の第2引数に指定する#defineで
"CM_DRP_CAPABILITIES"の意味は何なんでしょうか?
知ってる方回答よろしく。m(_ _)m
0035デフォルトの名無しさんNGNG
Excel2000 のオブジェクトを VC++6.0 で使いたいんですけど、どうしたらいいのでしょう?
Excel97 のサンプルは見つけたのですが、それを 2000 で使おうとすると、
excel9.tlh 内で
「error C2501: '_CommandBarsPtr' : 識別名を宣言するのに、型が指定されていません。」
等のエラーが出てしまいます。

ご存知の方、ご回答よろしくお願いします。
0036デフォルトの名無しさんNGNG
VisualC++6.0 スタンダードエディション+DirectXでプログラムを作った
時はある程度安定してたけどVisualC++6.0エンタープライスにしたら
ビルドしたアプリがフリーズすることが多くなったんですけど自分だけ?
0037デフォルトの名無しさんNGNG
>>36
アンタのコードにもともとバグがあったんだよ。
スタンダードエディションでは最適化をしないから、
今まで発覚しなかっただけ。
0038デフォルトの名無しさんNGNG
VC6.0でつくったアプリには、
プロパティのバージョン情報以外に、
プロダクトIDのようなものが、
埋め込んであるんですか?
0039デフォルトの名無しさんNGNG
>>36
サービスパックを最新のを当ててる?
0040デフォルトの名無しさんNGNG
vc6エンタープライズとvc6.netどっちがよいのですか?
0041デフォルトの名無しさんNGNG
>>40
vc"6".netにしる!
0042デフォルトの名無しさんNGNG
自分のアプリを友人のマシンでテストプレイさせたら

Runtime Error!

って出てきます。自分のマシンではおきません。これって、
DLLが足りないとかが原因でおきるんですか?

だとしたら、どのDLLが必要なのかを簡単に調べる方法って
ありませんか?(使ってるAPIやらを全部洗い出してMSDN
ライブラリで調べろってのは勘弁してください)
004342NGNG
ごめん。ageさせて。
0044デフォルトの名無しさんNGNG
>>42
> どのDLLが必要なのかを簡単に調べる方法
Dependecy Walker 辺りを使うとよろし。
004542NGNG
>>44
ありがとうございましたー。

フル英語なのがちょいムカつく(しかも、日本語pathは大文字変換のせいでバグありだ)けど、
これのおかげで何とかなりそうな予感です。
004615NGNG
>33
レスありがとう。
う〜ん、簡単に出来そうと思ったんだけどなかなか難しそうだな。
004723NGNG
>>32
ネイティブコードもつくれるとは知らんかったです。
ありがとございます。

じゃあ、ここで聞くことじゃないかもしれないけど、VC#.netもネイティブコード
吐いてくれるのかな?
0048デフォルトの名無しさんNGNG
シェルエクステンションでエクスプローラにツールバーを加えたん
ですけども、そのうえのボタンを押したときに選択しているファイ
ルを取得する方法を教えてください。
0049デフォルトの名無しさんNGNG
エクスプローラのあれは、
ListViewやないの?
0050デフォルトの名無しさんNGNG
エクスプローラのListViewを取得することができるのかな?
もしくはメッセージをおくるとかですか?
0051初心者NGNG
基本的な質問なんですが、
VC6で、C++の教本に載ってる、プログラムを
普通に入力して実行するにはどのように
したらよろしいんでしょうか?
0052デフォルトの名無しさんNGNG
>>51
・・・VC6の教本も買った方がいいと思うよ。マジで。
0053デフォルトの名無しさんNGNG
>>51
VC6を立ち上げなさい。
ファイル、新規作成、プロジェクト選択、ファイル、新規作成、
ソースファイル(cpp)で後はコードを打て。
0054デフォルトの名無しさんNGNG
>>51
VC6.0のエディタにコードを入力してビルド->実行じゃだめなの?
C++の教本に載っているようなものならコマンドラインからclを使った方がいいけど。
0055デフォルトの名無しさんNGNG
VC6 を使っています。
自作クラスへのポインタの std::list を iterator を使って for でループしようとすると

SourceFile.cpp(121) : error C2678:
二項演算子 '<' : 型
'class std::list<class NAMESPACE::CLASSNAME *,class std::allocator<class NAMESPACE::CLASSNAME *> >::iterator'
の左オペランドを扱う演算子は定義されていません。
(または変換できません)(新しい動作; ヘルプを参照)

というエラーが出てしまいます。まったく意味不明なのですが、
どういう意味でしょうか?
0056デフォルトの名無しさんNGNG
std::list::itarator を扱う operator < は定義されてないから
そんなもん使うんじゃねぇ!という意味でしょう。
0057デフォルトの名無しさんNGNG
STLのiteratorの巡回終了条件には、!= を使うのが常道で、
i < list.end();みたいなコードは書けない場合もある。
005855NGNG
>>56
それっぽいエラーが出たので対象クラス用の比較演算子群を定義したら
そのエラーは消えました。
ともあれ、ご返答いただきましてありがとうございました。

>>57
なるほど…ズバリこれでした。
iterator を使ってないコードからコピペしたので全然気づきませんでした。
ありがとうございました!!
0059デフォルトの名無しさんNGNG
アルゴリズム使えよ
0060デフォルトの名無しさんNGNG
ポインタのリストだからな…
全てのポインタが必ずi < list.end();のアドレスにあるとは限らん。
0061デフォルトの名無しさんNGNG
>39
>サービスパックを最新のを当ててる?
サービスパックって複数枚あるんですけど、どれでしょうか?
0062デフォルトの名無しさんNGNG
>>59
transform?
0063初心者NGNG
CWnd::OnKillFocus は入力フォーカスを失う直前に呼び出されるみたいですが、
フォーカスを失った直後に処理をしたい場合はどうしたらいいでしょうか?
0064デフォルトの名無しさんNGNG
教えて君で申し訳ありませんが。
今、VC++でプログラムを自作し、移動ステージを動かさねばなりません。
しかし付属のマニュアルにはコントローラのパネル操作でのステージ移動
についてしか書いてなく困っているしだいです。
PCにコントローラを繋いで、そのコントローラに直接コマンドを
送る方法について教えてください。
おそらくこんな書き方では伝わりにくいと思うのですが・・・。
よろしくです。
0065リアル厨房 NGNG
nが真のとき偽を返し、nが偽の時真を返すファンクションが欲しいのですけれど、
どのように書けばスマートに行けるのでしょうか?

こんなのは不味いですよね。
御教示頂けたら幸いです。

bool Classname::funcname(n) const{
  if(n){
    return (false);
  }else{
    return (true);
  }
0066デフォルトの名無しさんNGNG
return !n;
0067リアル厨房 NGNG
>>66
それも試したのですが動かなくてお伺いした所存です。
他に間違いがあると思いますので、もう少し試して見ます。有難う御座いました。
0068リアル厨房 NGNG
関数を呼び出す時の()を付け忘れておりました。
どうもお騒がせ致しました。
0069Disca ◆NAfP6znE NGNG
return (n ? false : true);
0070デフォルトの名無しさんNGNG
return !!!n;
0071デフォルトの名無しさんNGNG
operator !()しか定義されてなくて、
if( !!obj )
{...}
とやる罠
0072デフォルトの名無しさんNGNG
一番基本的で他言語からも呼び出せるDLLが作りたいのですが
なんだかいろいろな方法があって困っています。
一番正当な方法がしりたいのですが、HPなどあったら教えてください。
0073デフォルトの名無しさんNGNG
VCは、買ってみて、幻滅した。
結局コンパイラとデバッカしかつかっとらん。
俺はウィンドーズだけじゃなく、リナックスのアプリケーションも
作りてーんだぁーーーーー(切)
マイクロソフト マンセーー
0074デフォルトの名無しさんNGNG
>73
すまない。その高度なボケにうまく突っ込む技術はオレには無い。
0075デフォルトの名無しさんNGNG
単にマンセーの意味を間違ってるだけだと思われ
0076デフォルトの名無しさんNGNG
                 /)
             、2)Y⌒  ⌒フ   +
           ッ-i'´       ⌒フ
           (´ ,.-゙ー-、     ろ、
        * シ彡ノ"ミVv    )
      *    ノノノノ"ヽヽヽミ   シ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.          ,l')∩  ∩ |)|ヾ ミ  < DoLoveLove?
           ,○)、 ▽  ノjl| YY゙    \________
           {_∃ `l____/⌒'i|
            ̄ Yl"゙⌒lY |  +
              ,ト|__/ハ i、
           ,iニiニiニユ ゙h,,)
           ノtYTYヾ\
          /''フ''''ー<"ヽ、
           /__ノ     \ノヽ、
          (__)     ゞ__)

0077デフォルトの名無しさんNGNG
普通にMSDNLibraryを起動するとタスクマネージャにhh.exeってのが表示されますよね?
でも、VC++から起動すると表示されません。
これは、どういう風に起動しているのでしょうか?
007872NGNG
わかりました。
0079デフォルトの名無しさんNGNG
ショートカットのプロパティをみれ。
0080デフォルトの名無しさんNGNG
ヲい!モ前ら!
プロジェクトファイルが提供されてない、メイクファイルしかない、
プロジェクトをVCで開くとき、どんな方法を使ってますか?
0081デフォルトの名無しさんNGNG
>>77 COMのinprocess serverだろ。
VCから起動すると、たまにヘルプのキー入力を奪い取ったり(CTL+Fとか)かなり不便。
0082デフォルトの名無しさんNGNG
std::negateで駄目な理由がおもいつかん。
0083デフォルトの名無しさんNGNG
>15
いまさらだけどこんな発見。
コレ → SwapMouseButton
気づいてたらスマン。
0084デフォルトの名無しさんNGNG
電源投入時の時間が知りたいんですけど、何かAPI知りませんか?
(電源投入時 → OSが起動した時間です。)
「起動してからの時間を取って、現在の時間から逆算」ってのは無しの方向で...
ご存知の方、よろしくお願いしますm(_ _)m
0085デフォルトの名無しさんNGNG
>>84
RDTSC
電源投入時からっつーのは難しい。
0086デフォルトの名無しさんNGNG
>>84
Winが起動してからならGetTickCount
そしてスレ違い
0087デフォルトの名無しさんNGNG
HBITMAPってなんですか?
メモリー上にビットマップのデータがあってそれへのポインタですか?
008884NGNG
レスどうも。>>85 >>86
質問の仕方の書き方を間違った...ついでに板も。←Win32APIのトコか?
A→Bなんて書き方をしちゃあイケナかったね。
システムが起動した(出来れば電源投入時)時間を取得したかったんですよ。
やっぱり経過時間から逆算するしかないのか・・・
0089デフォルトの名無しさんNGNG
>>72
今ならCOM。将来は.NET。
かな?
0090デフォルトの名無しさんNGNG
環境変数をVC使ってプログラムで登録するのはどうすれば良いですか?
0091デフォルトの名無しさんNGNG
>>90
プロセス環境の環境変数の取得/設定なら、
Get/SetEnvironmentVariableです。
が、Windows全体の環境変数を設定する方法はわからないです。
0092デフォルトの名無しさんNGNG
レスありがとうございます。>>91
質問悪くてすみません。
おっしゃられている通り、全体の環境変数なんですよ・・・
0093デフォルトの名無しさんNGNG
FILE構造体を引数にもつ関数をもったDLLを作成し、
いざ実行プログラムでstderrを引数にして呼び出したら
DLLの関数内のfprintfで落ちるんだけど、なぜなんでしょう?
0094デフォルトの名無しさんNGNG
OnDraw()で描画後、画面に表示されません。
Invalidate()とかしても表示されません。もしくはOnDraw()のループになります。
どうすればいいですか?
0095デフォルトの名無しさんNGNG
Invalidateはクライアント全体を更新領域に追加する関数。
その後OnDraw(WM_PAINT)を呼び出して、無効領域の描画を行う。
OnDraw内でInvalidateをすると無限ループに陥る可能性がある
009694NGNG
かわりの関数おしえてくださいです。。
0097デフォルトの名無しさんNGNG
きっちりメッセージループを回しているなら、
好きなタイミングでInvalidateすれば次、もしくはさらに後のループで描画されるはず。
メッセージループを回していないなら、Invalidate後にUpdateWindowしろ。
009894NGNG
もしかしてOnDrawで表示されないのはまだドキュメントが作成されてないからかな
と思い、新規作成を選んだら表示されました。

これを最初から行うにはどうすればいいのでしょう?

つまりOnCreate()とかそんなハンドラで、
それを呼び出す時点でViewは完成していて、OnDraw()が動いてくれる、そんなような関数ありますか?
0099デフォルトの名無しさんNGNG
はじめから無題が開いているだろ。
もしかしてMDIか?
きっちり状況を説明しろよ
010094NGNG
SDIです。
実行した時点ではなにも表示されません。
この状態で
・他のウインドの下に隠してから、もう一度アクティブにしてあげると表示される
・新規作成を選ぶと即座に表示される。

です。よろしくお願いします
010177NGNG
>>79
そうじゃなくて、VC++の側からのような起動はどういう風にしているのか知りたいんです。
0102デフォルトの名無しさんNGNG
>>101 たぶんHTMLHelp API でhhctrl.ocxを呼ぶ
0103デフォルトの名無しさんNGNG
早速ですが、VC6 SP5で開発をはじめたVC初心者です
最近、プロジェクトのロード時間と、エディタの改行時間が重くて、困っております
プロジェクトのロード時は、『リストボックスを読み込んでいます』で、
エディタでは、ブレイクポイントのあるソースで改行をすると、砂時計でまたされます
何か、ご存知の方、ご指導ください
010415NGNG
>83
レスサンクス、オレも亀レススマソ。
SwapMouseButtonは右左を入替えだけなんだよね。
右中はフックしてmouseEvent投げてやればある程度できるんだけど、
mouseEventのコールがまたフックされる、それをフラグで回避してる
けどやり方がおかしいためか挙動が変になっちゃう。
2日ほど仕事の空があってその間で出来るかなっと思って作り始めけど今は仕事で
時間が割けんのでストップ中です。
0105デフォルトの名無しさんNGNG
       ,.-、       ,..-‐−- 、、
     /^`~",  :\  ,ィ":::::::::::::::::::;;;;;iii>;,、
   ,.-",   /......:::::i::l /:::::::::::::::;;;;;;;;iii彡" ::ヤi、
  ,.i  .|  :キ:::::::::::|::V::::::::::::;:"~ ̄     ::i||li
 / 、  | ,;:::::l:::::::::::マ,.-‐-、j'_,.ィ>、、   .:::iii》
 i、 ヘ  :\:::::::キ;:::::::(:::j::):...) `‐-‐"^{"^ヾノ"
  ヤ、 \:::::\,::::\:;;;:iゞ:-:;ィ     ,.,li`~~i    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.,;iiλ\.,,ィ^-‐'`ー",:::|::;X'::7、   ・=-_、, .:/   <      ついに完成した。これがドラえもんだ!!
";ii::i`ゝ、::;;;:、-‐-;;;;i‐'''|  .〉'.ヘ    ''  ./     \_____________________
.;ill;;:\::::::::::::::::;ノノl} ィ|、./:ー-`=‐-、、ノ
iilllllli;;:::`:‐-‐'":;ノ  │丶=‐-、,,_`l, ,.へ
llllllllllllii;;,,___;;;iill|||( ´�D`) \ー=、7^ヾ'‐-、、
|||||||||||||||||||||||j'::::(U,U‐"、:::::\..::/   \  `ヽ
             UU
0106VC挑戦中NGNG
VC始めて1ヶ月の初心者です。ActiveX(COM)の質問をさせてください。
ダイログにActiveX(DLL)を貼り付けられなかったので(貼り付けて実行するとダイアログが表示されない)
コード中で作成することにしました。(VBでは貼り付けてコントロールが表示される)
#importディレクティブでロードし、スマートポインタをCoCreateInstanceで作成しています。
このDLLには、コントロールを持っているのですが、そのコントロールを表示することが出来ません。
コントロールを表示するメソッドは、DLLに実装されているものなのでしょうか?
それとも、OLE関係の関数で外部から表示することが出来るのでしょうか?
ちょっと内容がわかりづらいかもしれないですけど、宜しくお願いします。
環境はVC++6 SDKです。
0107デフォルトの名無しさんNGNG
タスクトレーにアイコンを入れてみたんですが色がおかしいです。
どうやら16色じゃないとダメみたいです。
自分はWin98です。
MeやXPでも16色表示ですか?
0108別の人NGNG
>>94
SDI・MDIのヴューに対する開始時の処理は OnInitialUpdate() で。
・・・で、Invalidate()&UpdateWinodw() をペアで呼ぶと OnDraw()(≒WM_PAINT
正確には少し違う)が走る。
∞になるのは、既出だが多分OnDraw()の中でInva〜 or Update〜 を読んでるから。

最初だけ表示されないのはタイミングだけの話なので、面倒臭けりゃ後回しに
しといて後からゆっくり試しましょう。じゃ
0109デフォルトの名無しさんNGNG
>>103
真面目な話、マシンの問題くさい。
ハードディスクが壊れる寸前、読み込みに時間のかかるセクタがコンパイラの
バイナリにぶち当たっている?のでは
大体、開発環境はマシン負荷が一番かかるので、イカれ始めはコイツから
発覚しやすい、多分。
0110デフォルトの名無しさんNGNG
>>106
開発時に貼り付けるだけのときでも、関連パスが通ってなけりゃ
駄目だったりとか色々あると思う。そのためのプロパティ用コーディングやら
なんやらやってあるはずなので。でも詳しいことは知らん。
0111デフォルトの名無しさんNGNG
>>107
アイコンリソース内に大小2つ持ったりしてんじゃないの。
ちゃんとしたアプリは。
0112不明なデバイスさんNGNG
Visual C++ 6.0 Professional Edition: \84,100 (\13,600)

これって、アカデミックパックでもほとんどかわりありませんか?_
0113デフォルトの名無しさんNGNG
DLLとダイナミックリンクする場合
どういうタイミングでリンクさせるべきですか?

(1)プログラム開始時にリンクさせてそのまま
(2)実際にDLL内のプロシージャを使用するときにリンクして必要無くなったら開放

複数のDLLとリンクさせてDLL内のプロシージャを使うことが
殆どない場合(2)にすべきですか?
(2)の方がメモリの使用量が少なくて他のアプリには優しそうですが
いちいちロードしていたら処理速度が落ちそうです。
メモリにキャッシュされていればロード時間は短縮されそうですが
キャッシュされているくらいメモリに余裕があるなら(1)の方が効率的ですよね?

どうしましょう?
0114デフォルトの名無しさんNGNG
>113
楽な方でいいんじゃ無いですか?w

チウか9xってデフォルトだと死ぬほどディスクキャッシュにメモリ
持っていきますよね。もうね以下略。
0115デフォルトの名無しさんNGNG
>>113
EXEやDLLのコードは実メモリに常駐しないよ。
仮想記憶上に割当てられて、必要なときに読みこまれるから、
(2)にメモリ節約や処理速度のメリットは無いよ。
(2)はプラグインの実装や、DLLバージョンの違いによる
APIの有無に対応する場合に有効です。

0116デフォルトの名無しさんNGNG
でも、起動を早くする効果はある
0117113じゃないけどNGNG
>>115>>116
ってことは、

(3)初めて必要になったときにリンクして、以後そのまま使用する。

って感じで、プロキシクラスっぽい使い方がベスト?
0118デフォルトの名無しさんNGNG
VC++6入れようと思うのですが
Visual Studio 6.0 と Visual Studio .NETって
どっち入れたほうがいいですか?
0119デフォルトの名無しさんNGNG
車に乗ろうと思うのですが
カローラと223系近郊型電車って
どっち乗った方がいいですか?
0120デフォルトの名無しさんNGNG
飴をなめようと思うのですが
サクマドロップスとミルキーって
どっち舐めた方がいいですか?
0121デフォルトの名無しさんNGNG
チンポ入れようと思うのですが
ヘルスとイメクラって
どっち入ったほうがいいですか?
0122デフォルトの名無しさんNGNG
>>114
どういう制御なら満足なの?
0123デフォルトの名無しさんNGNG
>>115
MFCxx.DLLみたいな、たくさんのEXEからつかわれる
やつは、DLL化したほうがシステムの負担が減るんじゃない?
0124デフォルトの名無しさんNGNG
>>115
>EXEやDLLのコードは実メモリに常駐しないよ。
>仮想記憶上に割当てられて、必要なときに読みこまれるから、

どのくらいの頻度でスワップするか知らないけど、
ほぼ常駐状態なのでは?
0125デフォルトの名無しさんNGNG
>>124
もっと仮想記憶について勉強してこい
0126デフォルトの名無しさんNGNG
OSのファイルハンドルからFDを得るのか、
その逆の動作をするAPIかcrtの関数があったと思うのですが、
検索しても見あたらなくて困ってます

どなたかご存じありませんか?
0127デフォルトの名無しさんNGNG
じゃこういう理解でいい?
 DLLがロードされたというのは メモリマップドファイル化された状態
 だから、実メモリ上は共有され
 実際にどこかのプロセスでアクセスがあるまでは実ロードも保留されている。
0128デフォルトの名無しさんNGNG
>>125
なんか勘違いしてないか、こいつ。
0129デフォルトの名無しさんNGNG
TranslateAcceleratorを使うと、子コントロールに入力フォーカスがあっても
キー入力を奪っちゃうんだけど、これを回避する方法はない?

たとえば、Aキーにアプリケーションの終了とか割り当てちゃうと、
エディットコントロールにフォーカスがあってもAが入力できないとか。
0130115NGNG
>>127さんの理解で正解。
仮想記憶1ページ分(Win32では4KB)の実メモリさえあれば
どんなサイズのEXE/DLLでも実行が可能です。

0131デフォルトの名無しさんNGNG
>122
たまにはメモリ整理してくれよ…と。今は使ってないので問題無しw
0132デフォルトの名無しさんNGNG
すみません教えて下さい
VC++いくつかのクラスを定義して、コンパイルしようとすると
最近こんなことを言われます

ビルド : 警告 : ビルドに失敗しました
(またはビルドの方法がわかりません) 'C:\しぃ言語\sea\Debug\sea.pch'

pchファイルとはなんでしょうか?
 対処法などあるのでしょうか 教えて下さい
0133デフォルトの名無しさんNGNG
これって初心者向け?
0134デフォルトの名無しさんNGNG
とりあえずVC立ち上げ直して、クリーンビルドやってみたら。
0135デフォルトの名無しさんNGNG
>>131
整理って実際には?
0136デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1006834463/182

がよくわからぬ。詳しく説明きぼんぬ。
0137デフォルトの名無しさんNGNG
>136
コンパイラの警告を無視せずちゃんと調べろ、くらいの意味だと思われ。
0138デフォルトの名無しさんNGNG
>>137
警告ですか。…警告が出てなくても落ちる時は
主にどこを調べればよいでしょうか。
0139デフォルトの名無しさんNGNG
>138
ポインタに変なモノが入っていないか、根気よくデバッグして調べる。
参考までに、リリース版でこける原因のトップ3は
1. 初期化されていないポインタ
2. 初期化されていない配列や構造体
3. ASSERTトラップ
だ。頑張れ。
0140デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=cache:Gku2r4QU1fMC:www.dodgson.org/lab/docs/hat/boost_intro.html+boost+shared_ptr&hl=ja&lr=lang_ja

ここのarrayの説明に、templateに整数で引数を渡すとVCじゃ問題ありみたいなことが書いてあるんだけど、
どういう問題があるの?
0141デフォルトの名無しさんNGNG
ウィンドウのフレームや、タイトルバー、その他のバーの色を変えたいんだけど
できますか?
0142デフォルトの名無しさんNGNG
できる
0143デフォルトの名無しさんNGNG
>142
教えて下さい。おながいします。
0144デフォルトの名無しさんNGNG
VBとVCにスレッド両方に書き込みましたが
「マルチポストうぜ〜」などと煽らずにマジレスしてください。

VBでファイルにバイナリアクセスする場合に
本にはバイト配列を使用して書き込むと書いてありましたが
どうやるんですか?
VCの場合はLONG型や浮動小数点型でもポインタを使って
バイト配列の一部にコピーしたりするのは簡単ですが
VBはポインタが無いのでどうやって変換して良いのか分かりません。
例えばLONG型(4バイト)と倍精度浮動小数点型(8バイト)を
12バイトの配列に格納する方法
逆に12バイトの配列からLONG型と倍精度浮動小数点型を抽出する方法教えてください。
0145デフォルトの名無しさんNGNG
>>144
何のために、そんな事したいの ? 普通に文字列で書いて、文字列で読みだしゃい
いじゃん。

どうしてもやりたいなら、C で .dll 書いてそれ呼び出すか、RtlMoveMemory
API を使えばできるが、「VBはポインタが無いので」と言う認識では無理、
あきらめな。
0146デフォルトの名無しさんNGNG
>>144
マルチポストしたなら答えてもらう資格はない
0147デフォルトの名無しさんNGNG
string hogehoge="ageage";
MessageBox(NULL,hogehoge,"Message",MB_OK);
みたいにするとき
hogehogeの文字列char[]を参照するにはどうしたらいいDEATHか?

0148デフォルトの名無しさんNGNG
&hogehoge[0]
0149147NGNG
>>148

おー!待ってたぜ。
ありがとう
I love you babe!
0150デフォルトの名無しさんNGNG
>>149
マジかよ
0151デフォルトの名無しさんNGNG
>>148-149
ワラタ
0152デフォルトの名無しさんNGNG
すみませんちょっと教えてください
LPSTR
っていう変数名がなにげによくでてくるんですが
これってなんなんでしょうか?
 ヘルプをみても文字列への 32 ビット ポインタとしか書いてない・・・・
CString *と同じですか?
0153デフォルトの名無しさんNGNG
char* と同じです。
0154デフォルトの名無しさんNGNG
>>152
typedef char CHAR;
typedef CHAR *LPSTR, *PSTR;
0155デフォルトの名無しさんNGNG
char 文字列知らない人・・・?時代は変わったのか・・・。

>文字列への 32 ビット ポインタ
0156デフォルトの名無しさんNGNG
charへのFARポインタだろ
全くもう..
0157デフォルトの名無しさんNGNG
FARって何?
0158デフォルトの名無しさんNGNG
>>157
セグメントをまたいでのメモリアクセスが可能なポインタ。
0159デフォルトの名無しさんNGNG
FAR…過去の遺物では?
0160デフォルトの名無しさんNGNG
64kb境界を越えられるポインタだろ
全くもう..
0161デフォルトの名無しさんNGNG
セグメントって何?
超えられない?

わけわからーん。
0162デフォルトの名無しさんNGNG
>>160
それが1セグメントっす。
0163デフォルトの名無しさんNGNG
>>159
ナニ、過去の遺物だって? 寝ぼけたこといってるなぁ。
VC がどんなコードを吐いてるか、考えたことないのか?

「FAR ポインタなんて過去の遺物」なんて言ってるヤツは、
今後一切、例外処理を使うなよ。
例外処理をしている DLL を呼び出すこともまかりならん。
0164デフォルトの名無しさんNGNG
>>163
FAR自体を知らなくても例外処理できるから遺物なんでつよ(´Д⊂
0165デフォルトの名無しさんNGNG
128bitコンパイラとかでてきたらFAR/NEARの復権もあり得るかモナ。
0166163NGNG
>>164
あのね、「遺物」というのは、もう誰も使ってないから「遺物」なんだよ。

たとえ知らなくても、現役で使われていたらそれは「遺物」とは言わんと思うが。
0167159NGNG
>166
んと,VC++のインクルードファイル見たんですよ。すると,

#define far
#define FAR far

ってなってたので。

32bit以前のコード移植の為にあるだけだと思ってたんですが。
0168デフォルトの名無しさんNGNG
>>167
将来のコンパイラとのソース互換確保のためじゃないの?
0169デフォルトの名無しさんNGNG
>>156-160
お前ら本当に大丈夫か ? まさか、Near ポインタがいまだに 16bit とかいって
んじぁねーのか。
0170デフォルトの名無しさんNGNG
Nearポインタって何〜?
0171デフォルトの名無しさんNGNG
きょうびセグメントつったら、最大4Gで、16bitのセレクタで指定しるアレだろ…
0172デフォルトの名無しさんNGNG
NT(win32)じゃnearもfarもねーぞ!!。フラットだ!!。
「64k」って...いつの時代の話してるんだゴラァ!
0173デフォルトの名無しさんNGNG
そろそろ64bitの時代が来ますがお前らどうですか?
VS.NETからPlatformSDKも最新版(64bit対応)になってそのままだと
通らないソースとか出てきてショボーンだったりしませんか?
0174デフォルトの名無しさんNGNG
IntPtrとかなー、ちょっと直感的でないtypedefだとおもいません?
0175デフォルトの名無しさんNGNG
>>173
一部のAPIは64bitへの移植に備えてるみたいだが、まだ中途半端で困る。
0176デフォルトの名無しさんNGNG
つーか、64bitOS上で64bitコード書くつもりかおまえら何様だ(藁
0177デフォルトの名無しさんNGNG
現在新visualc++6.0入門ビギナー編(林晴比古)で勉強中です。
何かアドバイスをください。
0178デフォルトの名無しさんNGNG
その本を投げ捨てましょう。
0179デフォルトの名無しさんNGNG
まずその本を捨てろ。
0180デフォルトの名無しさんNGNG
VC++ (SDK)でRealPlayer用のファイルを再生する場合、どのようにすればいいのでしょうか?
RealSDKをDLしてみたんですが、MFCでコンソールアプリ用だったし。
rmoc3260.dllを#importしてCoCreateInstanceでスマートポインタを取得するところまではできたのですが、
「再生ウィンドウを表示して、自作ウィンドウに埋め込む」というのが出来ません。
VBとDelphiなら簡単にできましたが、ActiveXを使うにはVCは向いてないのでしょうか?
どなたか知恵を貸してください。
0181デフォルトの名無しさんNGNG
VBはともかく、Delphiがやっていることと同じ事をやればOK。
もちろん、VC標準にはない機能は自分で実装すること
0182180NGNG
>>181
!?
DelphiもVBと同じ方法ですよ?
フォームにActivexコントロールをペタッと貼り付けて…
0183デフォルトの名無しさんNGNG
>>182
ハァ?
おまえがDelphiでやった事じゃなくて、
Delphiが内部でやっていることだっつーの。
VCLのソースだって付いてきてるんだろ
0184180NGNG
>>183
実はDelphi全くの初心者で…
フォームに貼り付けて実行して表示された段階でできた!って思っただけなので。
(VCではダイアログに貼り付けても表示すらされない)
ちょっとDelphi勉強してきます。
0185チビNGNG
あげ
0186デフォルトの名無しさんNGNG
ATLあるいはMFC使うのが通例。手でActiveXコントロールコンテナ書くのは無謀。
0187学徒NGNG
プログラムで0.1を百万回たさせても十万という値が出ずに中途半端な値
(確か十万よりちょっと大きかったです)が出るわけですがこの理由は何なのでしょうか?不思議でしょうがないです
int i=0;
float a=0;
while(i<1000000){
i++;
a=a+0.1;
}
誰か御教えください、おねがいしますm(_ _)m
またこのことについて載っているサイト等ありましたら御教えくださいませ
0188デフォルトの名無しさんNGNG
>187
0.1というか浮動小数点数が2進数でどう表されてるかを
勉強すると良いかと。
0189デフォルトの名無しさんNGNG
>187
10進数の 0.1 は、2進数では割りきれない値だから、その誤差が出る。
ループで加算のかわりに、乗算でも結果は同じだと思うな。
float a = 0.1;
printf("%f\n", a*1000000 - 100000);
0190デフォルトの名無しさんNGNG
>>187
10/3 = 0.3333333を3回足しても10という値が出ずに中途半端な値
(確か10よりちょっと小さかったです)が出るわけですがこの理由は何なのでしょうか?不思議でしょうがないです。
0191もうだめぽ・・・NGNG
×10/3 = 0.3333333
○10/3 = 3.3333333
0192デフォルトの名無しさんNGNG
http://www.google.com/search?hl=ja&q=%95%82%93%AE%8F%AC%90%94+%8C%EB%8D%B7&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0193デフォルトの名無しさんNGNG
>>190
情報処理技術者試験でも受けてみなはれ。
0194180NGNG
>>186
MFC嫌いなんだよな〜
MFC使うならVBで書いたって同じだし…
でもユーザが
「VC++ SDKで。
プレゼンテーションを表示したいから、フォームでRealPlayerを実行したい」
ってなわがまま言うもんだから…
しっかし、COM難しすぎ!!
0195デフォルトの名無しさんNGNG
>MFC嫌いなんだよな〜
なら、ATL/WTLですね :-)
0196デフォルトの名無しさんNGNG
Win2000sp2で、PlatformSDK 2001/oct のセットアップがどうしても
失敗するんですが、原因わかる方、いる?

Errors occurred during installation.
1601: A Windows installer error has occurred.
512: Installation failed with one or more errors.
Plaese correct the errors and/or try again.
0197学徒NGNG
>>188-192
皆様ありがとうございます
0.1は2進数で割り切れない数だからだったんですね
ということはfloatでなくてdoubleにでもすれば少しはましになるということですね
完全に解決する方法はないのでしょうか?

>>189
>printf("%f\n", a*1000000 - 100000);
これはなぜ -100000引いてるんですか?
0198デフォルトの名無しさんNGNG
>197
文字列で数値表現すれば一応解決w
0199デフォルトの名無しさんNGNG
あの、質問いいでしょうか?

mciSendStringやsndPlaySoundなどで音を鳴らすときに
2つ以上の音を同時に鳴らすことはできないといわれました。
DIRECTSOUNDを使えばできるといわれたんですが
これは本当なのでしょうか?

また、もし本当なら、DSOUNDを使う以外にどのような手段があるでしょうか?
0200デフォルトの名無しさんNGNG
自前ミキサを使ってwaveOut〜
0201デフォルトの名無しさんNGNG
あらかじめ、2つの音がミックスされたwavを用意しておく。
0202デフォルトの名無しさんNGNG
>>200
自前ミキサとは何でしょう?
検索エンジンにもひっかからないところを見るとプログラム用語ではないのでしょうか?

>>201
BGMと効果音なので、そういう手段はとれないんですよ。
0203デフォルトの名無しさんNGNG
>>202
ぉぃぉぃ
まぁ、名前を聞いて理解できないようじゃおまえにゃ実現できない方法だから安心しろ。

BGMとSEなら、midi/waveで普通に並列で慣らせるだろ。
BGMをwaveで鳴らすような馬鹿なことはするな
0204デフォルトの名無しさんNGNG
蛇足だが、自前ミキサとは自分の力で複数の音をリアルタイムに合成して
1つのwave outから沢山の音を出す事。素人にはおすすめ以前に、出来ない。
何にせよ、199君はDirectSoundを学ぶ事を勧めるよ。
0205デフォルトの名無しさんNGNG
いや、ミキシング自体はものすごく簡単なんだが。
0206デフォルトの名無しさんNGNG
むう、そんなに難しいものでしたか……
DIRECTSOUNDではできるんですが、
ちょっとした事情によりDSOUNDを使ってはいけないんですよ。

検索すればソースとかが出てきてもよさげなので、
それを改造してミキサを実装することにします。

すばやい回答ありがとうございました。
0207デフォルトの名無しさんNGNG
>>205
ミキシングは簡単だが、sndPlaySoundしか知らない奴にダブルバッファリング
でリアルタイム合成出力なぞ出来る訳がなかろう。
0208デフォルトの名無しさんNGNG
あれ、でも今試しに2回sndPlaySoundをやったら
同時に音がなったんですが、これはサウンドボードによるものなのでしょうか?
そんなに良いサウンドボードは使ってないんですが……
0209デフォルトの名無しさんNGNG
最近のサウンドカードは2〜4chの出力を持っていて、
その数までなら普通に同時に鳴らせられる。
それから、Win2k(XPはしらん)ならOSがミキシングしてくれるから、
自前で書かなくても問題はない。
0210デフォルトの名無しさんNGNG
なんとなくわかってきました。
WAVEファイルを読んでメモリにおいておき、
それを自分でWAVEOUTで出力するんですね。

実際に音の合成をするにはどのような演算をすればいいんでしょう?
それが検索でなかなか見つからなくて……
0211デフォルトの名無しさんNGNG
>>209
ありがとうございます。
最近のマシンのみを対象にする場合はそれでもOKということですね。
0212デフォルトの名無しさんNGNG
>>210
足し算です。但しオーバーしないように、あらかじめ元のwaveを縮小しておくべし。
0213デフォルトの名無しさんNGNG
>>212
ありがとうございます、検索で見ながらさっそくやってみます。
0214デフォルトの名無しさんNGNG
最近CPUをCeleron1.1GHzに替えたんですが、そしたらデバッガ上で実行する時
SSE命令の所を通るとIllegalInsatruction例外が発生するようになってしまいました。
SSEは自分で書いた物じゃなくてDirectXの中なんですが。
デバッガ上でなくシェル上でなら普通に動作します。
VC++6.0使ってるんですが、そういや最新のSP当てて無かったなぁ、とSP5
を当てて見たものの解決せず。
どうやったらこれ解決できるんでしょう?

検索して見たらこのスレの過去ログがヒットした物の、HTML化されて
無くて閲覧できづ。
キシュツだったらスマンですが、誰か何か知って居たら教えて下さい‥‥
0215デフォルトの名無しさんNGNG
DirectX内で__tryで囲ってあるから大丈夫、という話だったきがする。
IllegalInstructionを「ハンドルされてなければ停止」にすればいいとか。
0216デフォルトの名無しさんNGNG
がいしゅつだったらごめんなさい。
xxx.libxxxという名前のフォルダの下にライブラリファイルを置いたら、
リンクできないんですがなぜですか?
使用しているコンパイラはVC++6.0です。
0217216NGNG
age忘れ
0218デフォルトの名無しさんNGNG
>216
MSDNで「リンカ入力ファイル」で検索すると
 .libxxxなんて入力ファイル形式が無いが。
0219216NGNG
>>218
ファイルじゃなくてフォルダの名前が"xxx.libxxx"なんです。
具体的にいうと
C:\Documents and Settings\username.LIBxxx\My Ducuments\project\hoge\lib
に置いてあるライブラリがリンクできないんです。LIBxxxはドメイン名です。
0220216NGNG
ためしに
C:\work\xxx.libxxx\
というフォルダを作ってそこに置いてみてもだめでした。
0221デフォルトの名無しさんNGNG
DLLからDLLを呼ぶことってできます?
できるなら注意点を教えて欲しいです。
0222デフォルトの名無しさんNGNG
>220
c:\Docu...\username.LIBxxx\...\hoge\lib\にライブラリファイル全部移しても
全然問題ないのだが。
ライブラリファイルのディレクトリがちゃんと通ってないのでは?
かオブジェクト/ラブラリモジュールの中に*.libの綴りが間違ってるとか?
0223デフォルトの名無しさんNGNG
>>197 あらかじめ10倍にしておけ そして出力する時に少数点を付けろ
0224216NGNG
>>222
「ファイルをプロジェクトに追加」でそのライブラリファイルを指定して追加しても、
リンク時にそのライブラリに入っているはずの関数が未解決になるんです。
ほかのフォルダに移してリンクすればちゃんとできます。
>219の\projectのフォルダを丸ごとC:\workとかに移動すれば、
そのままでリンクが通るのに、
パスの途中に*.lib*という名前のフォルダがあるとだめなんです。
いい忘れてましたがOSはWindows2000です。
0225デフォルトの名無しさんNGNG
S-JIS環境でUnicodeの文字(ハートマークとか)をTextOutで出力するにはどうすればよいのですか?
CharSetでSHIFTJIS_CHARSETはあるのですが、Unicodeにあたるものが見つかりません。
よろしくお願いします。
0226SevenTH@SUNDAYNGNG
>>225
UnicodeのAPIを呼び出す。
0227デフォルトの名無しさんNGNG
>226
なるほど、
TextOutW( dc, 0, 0, L"\x2665", 1 );
これで出来ました。
ありがとうございました。
0228デフォルトの名無しさんNGNG
あの、ずっと今までフルスクリーンばかりで
今回はじめてウィンドウモードでプログラム組んでみたんですが
640*480にしても、タイトルバーなどを含めて640*480に
なってしまいます。描画可能領域を640*480にするには
どうしたらいいんでしょうか?
0229デフォルトの名無しさんNGNG
>>221
双方の DLL でリンクするランタイムライブラリの種類に注意すべし。

シングルスレッド/マルチスレッド、スタティックリンク/ダイナミックリンク、…。
0230デフォルトの名無しさんNGNG
>228
AdjustWindowRect
0231デフォルトの名無しさんNGNG
>>230
そのAPIを検索したらわかりました。
ありがとうございます^^
0232デフォルトの名無しさんNGNG
スロットゲームを作りたいのですがスロットが回転する部分の
実装方法がわかりません。どなたか教えていただけませんか?
0233デフォルトの名無しさんNGNG
回転する部分の何がわからないんだよ
ドラムのデータの持ち方か?
アニメーションの方法か?
0234デフォルトの名無しさんNGNG
>>233
アニメーション方法です。
0235216NGNG
>>215
むーん。
SSEをサポートしているCPUなんで、IllegalInstructionが送出されること自体が
おかしいような‥‥
「ハンドルされて無ければ停止」を試してみたいですが、手元に環境が無くて。
明日試して見マス。
0236デフォルトの名無しさんNGNG
Windowsプログラマのみなさん
辛く無いですか?
0237チビNGNG
age
0238デフォルトの名無しさんNGNG
>>236 そうですね 舐めてみたら確かにカライです
0239デフォルトの名無しさんNGNG
VC6-SP5を使用しています。
コンパイルオプションに -MT (マルチスレッド対応)をつけた途端に
作成中のプログラムの挙動がおかしくなりました。

コンストラクタの初期化リストで NULL に設定したメンバの値が
勝手に何か別の値に書き換えられてしまうのです。

コンストラクタ内で MessageBox で確認すると NULL になっていますが、
メンバ関数を呼び出した時、書き換えていないはずの値にゴミが入っています。

関係する全てのファイルをマルチスレッド対応ライブラリにリンクするように
変更しましたし、まだライブラリを変更しただけで、コード内で
別スレッドを作成したりはしていませんので、別スレッドが書き換えているという可能性も低いです。

どうしてこうなってしまうのでしょうか?ご存知の方いらっしゃいましたらお願いいたします。
0240デフォルトの名無しさんNGNG
>>239
どうしてって、潜在的なバグが表面化しただけだろ
Bounds CheckerとかPurifyで確認しろ
0241デフォルトの名無しさんNGNG
【質問】
VC++でゲーム作ろうとおもってるのですが、
簡単なサイコロ目当てゲームをとりあえずやってみようとおもってるんだけど、
とりあえず、普通のウィンドウズようアプリ(アイコンクリックしたら起動、DOS窓じゃない)
って状態にもっていきたい。

とりあえず空っぽのなんの機能もないウィンドウは作った。
そこにC++のメインのゲーム処理ソースは一体どこに書いたらいいの?
クラスとかたくさんありすぎてわけワカメです。
0242デフォルトの名無しさんNGNG
>>241
タイマーイベントでいいんじゃないか?
0243デフォルトの名無しさんNGNG
>>242
ななにそれ!?
0244デフォルトの名無しさんNGNG
>>243
検索すれよ。
0245デフォルトの名無しさんNGNG
>>244
あったけど、意味がわらん。
0246デフォルトの名無しさんNGNG
>>245
全部説明させる気かよ。
なんか本でも買って読めよ。
0247デフォルトの名無しさんNGNG
タイマーイベントなんて本にのってないかったよ。
0248デフォルトの名無しさんNGNG
pCmdUI->SetText("hoge");
で字に下線つけるのはどうすればいいですか?
普通にVC上でメニュー作る時に
キャプションに 開く(&O)
ってやるかんじでできる下線です。
0249デフォルトの名無しさんNGNG
pCmdUI->SetText("&hoge");
0250デフォルトの名無しさんNGNG
pCmdUI->SetText("&hoge");
だとできました。

ただpCmdUI->SetText("hage\t&hoge");
とするとだめでした。
こういうもんですか?
0251デフォルトの名無しさんNGNG
VBプログラマのためのVC++って本読んでVBで使えるATL COMをC++で作ってみました。
VBで走らせてみると、”ActiveXはオブジェクトが作れません”とかなんとかいわれる。
仕方ないから本のサンプルコードコピって試しても同じだった。

状況;
本の環境:NT,
自分環境:98
レジストリ登録は行われてる。
VBのオブジェクトブラウザでも見れる。
VB上でのオブジェクトの宣言は問題ない。
メソッドやプロパティにアクセスすると上記のエラーが出る。

って感じなんです。散々調べたんですがもうギブです。
誰か原因&解決法教えて下さい。
0252デフォルトの名無しさんNGNG
誰か助けて下さい。
関数から抜ける時に _BLOCK_TYPE_IS_VALID っていうアサートが出ます。
ランタイムの delete 演算子が多重 delete 等の時に発している警告のようなのですが、
何故でるのかがわからないのです。
「関数から抜ける時」に発生するので、auto 変数だと思うのですが(ちなみに auto_ptr などは一切使っていません。)

これはどういう状況の時発生するのでしょうか?
指針のような物でもよいのでアドバイスを頂けないでしょうか?
よろしくお願いいたします。

0253デフォルトの名無しさんNGNG
>>252
メモリリークかアクセスしてはいけないメモリ(確保したメモリの外部)にアクセスしてる可能性
コードとにらめっこしませう
0254252NGNG
事故レスです。
やっぱりただの勘違い( delete したポインタを NULL クリアし忘れ…)
という凡ミスでした。

大変お騒がせしました。
0255252NGNG
あう、丁度レスを頂いた所だったのですね。
>>253
レスありがとうございます。
「そろそろ C++ も解ってきたな。」などと増長している所で
それ以前のレベルの間違いをしてしまいました^^;
精進したいと思います。
ありがとうございました。
0256デフォルトの名無しさんNGNG
char *p;

p = new char [4];
p[0] = 'a'; // OK
p[1] = 'b'; // OK
p[2] = 'c'; // OK
p[3] = 'd'; // OK
p[4] = 'e'; // アサート発生要因!!
0257デフォルトの名無しさんNGNG
>>やっぱりただの勘違い( delete したポインタを NULL クリアし忘れ…)
正確にはそれが要因ではなくて
解放したあとの変数にアクセスしてるのが問題ですかね・・・
0258デフォルトの名無しさんNGNG
CFileDialogについて質問があります。

CFileDialog dlg(FALSE, NULL, strPath,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"テキスト|*.txt|html|*.html|log|*.log||");

みたいなファイルダイアログを作成したとします。
リストボックスでテキスト、html、logと
フィルタの拡張子を選ぶと、自動的にその拡張子を
つけるようにするにはどうすればいいでしょうか?

0259デフォルトの名無しさんNGNG
>>254 >>257
もっと正確にいうと、「手動でdeleteしてNULLクリアする」という
クラス設計がおかしいんだけどね。
auto_ptrも「使ってない」って言ってるけど、「使いこなせない」の
間違いのような気がする。
252は「C++を極めるまで後5歩くらい」って感じてるんだろうけど、
少なくともあと100歩は進まないといかんぞ。「少なくとも」、だ。
0260デフォルトの名無しさんNGNG
今年から授業でVC++使うことになりました
まだ皆さんがなにいってるかわかりませんがついてけるようにがんばります。
0261デフォルトの名無しさんNGNG
MFCのSDIプログラムを起動するとタイトルに
「無題 - XXX」みたいに勝手に表示されてしまいますが
これを好きな文字列にするにはどのタイミングでSetWindowTextしたらいいですか?
OnCreate でやっても反映されません。
教えて!
0262デフォルトの名無しさんNGNG
FlexGridでセルに直接入力する技を教えてくれ。
0263デフォルトの名無しさんNGNG
>>261
PreCreateWindowで
cs.style &= ~(FWS_PREFIXTITLE | FWS_ADDTOTITLE);
0264デフォルトの名無しさんNGNG
>>263

ありがとう!!
0265デフォルトの名無しさんNGNG
エクスプローラで「?」マーク入りのファイルを作ろうとすると
「次の文字は使えません。」ってメッセージが出ますがその真似をするにはどうしたらいいですか?
ファイル管理ソフトでユーザーが入力したファイル名に不正な文字が含まれているかチェックするAPIは?
自分で1文字ずつ調べるしかないですか?
0266デフォルトの名無しさんNGNG
MFCならCString::SpanExcludingで
SpanExcluding(_T("\/:,;"));
みたいな感じでいっぺんに調べられるけど...
0267デフォルトの名無しさんNGNG
MoveFileEx()のエラーを調べる、つうのはどうよ。
適当なので無視してOK。
0268デフォルトの名無しさんNGNG
shlwapiの
UINT PathGetCharType(TUCHAR ch);
が使えるっぽい。
98or2000以上だけど。
0269デフォルトの名無しさんNGNG
VCで今からプログラムを書きはじめようかというところなんですが、
ソースファイルをフォルダ分けしようとしているんですが、
ヘッダーファイルをインクルードするときに
#include "../Control/Scene.h"みたいになり、ややこしくなります。
なにかいい方法はないでしょうか?
0270デフォルトの名無しさんNGNG
>>269
プロジェクトの設定をしましょう。
インクルードパスの設定できますよ。
0271デフォルトの名無しさんNGNG
>>270
ありがとう。おかげさまでインクルードすんの楽になったよ。
0272デフォルトの名無しさんNGNG
>>251
VB側でCreateObjectでロードしたのか
コントロールとして読みこんだのか
どっちなんでしょう?
コントロールなら適切なインターフェイスが実装されてないとか・・・
0273チビちゃんNGNG
age
0274ちびちゃんNGNG
age
0275ちびっちゃったNGNG
age
0276チビちゃんNGNG
あげ。
だれも書き込まない。
VCもすっかり下火ですね…
0277デフォルトの名無しさんNGNG
VC使ってるやつはそれなりにスキルあるからぶび厨みたいに
なんでも人に聞かないで自分で解決できるからだと思われ。
0278デフォルトの名無しさんNGNG
つか、C++、MFC、Win32APIのスレでだめなら(以下略)
0279デフォルトの名無しさんNGNG
リストボックスのスクロール幅は、
CListBox::SetHorizontalExtent()(LB_SETHORIZONTALEXTENT)で設定しますが、
これをリストボックス中の項目の長さに合わせて増減させるには、どのような
インプリメントをすれば良いですか?
//要は、エディットコントロールの水平オートスクロールみたいなのをやりたい
0280デフォルトの名無しさんNGNG
msdev が自動生成するクラス情報ファイル(拡張子 .ncb) を
自分で作れるツールってどこかに出てますか?
0281デフォルトの名無しさんNGNG
.NETが出たので、VB同様MFCも逝ってよしですか?

age
0282デフォルトの名無しさんNGNG
>>281
ふざけるな

sage
0283デフォルトの名無しさんNGNG
>>280
作れば?

VCのマイナーバージョンが変わるたびに書式が変わるかも知れない
データファイルを自分で作ろうというのなら誰も止めはしないよ。
0284デフォルトの名無しさんNGNG
True DB Gridのコントロール、無理矢理使って成功した人、います?
0285デフォルトの名無しさんNGNG
GetProfileInt()が
ChogeApp::Initinstance()内で
必ず失敗します。
なんででしょうか?
0286デフォルトの名無しさんNGNG
>>285
SetRegistryKey()をコールする前に使用している。
0287デフォルトの名無しさんNGNG
>>286
>Thx!ソース確認します
0288デフォルトの名無しさんNGNG
>>286
まんまでした。あはずかちい。。。
0289デフォルトの名無しさんNGNG
学校でC++をやっているから、家で補習でもしようかなと思いVisual Studio.netを買ったんだけど、
「プロジェクト : error PRJ0016 : このユーザーのセキュリティ設定が原因で、プロセスを作成できません。これらの設定はビルドで必要です。」
とまあ、こんなエラーがでてビルドが出来ないんですが、どうやったらいいんですか?
0290デフォルトの名無しさんNGNG
>>289 MSで検索して。出てる。
0291デフォルトの名無しさんNGNG
>>289
割れだろ
0292デフォルトの名無しさんNGNG
もうFAQ化してそう。
0293デフォルトの名無しさんNGNG
>>291
正解。
入手経緯や動機をいちいち書いてくるのはやましいことがある証拠
0294デフォルトの名無しさんNGNG
>>293
言われて読み直してみると面白いなぁ。
確かに>>289はいらない情報ばっかで、不自然にみえてきた。
0295神NGNG
いま始めたばかりで、HelloWorldの
表示とメニューバー押すとメッセージでハローワールド
って簡単なやつ作りました。

そんで、実際のプログラムはデバックフォルダにある「hello」の1個だけなんだよね。150kくらい。
コレ単体で動くんだよね。たとえばフロッピーにいれて他のパソコンに
コレだけもっていってもうごく?

あと、その他の8メガとかある大量のデータは作る工程のもので実際は関係ない?
0296デフォルトの名無しさんNGNG
リリース版を作りなさい。
0297デフォルトの名無しさんNGNG
>>290とか
KBで検索しろとか言うレスよく出てるけど、
MSのサイトで目的の情報探すのって結構難しくない?
0298デフォルトの名無しさんNGNG
「KBを検索すれば見つかる」のがわかっただけでもありがたいが。
0299かみNGNG
ねーこの8メガってなんなの?
0300デフォルトの名無しさんNGNG
>>299
神と言うよりはお上。
コンパイラにもいろいろ都合があるんだよ(リンクとか)。
0301デフォルトの名無しさんNGNG
8MBっていうと、プリコンパイルヘッダーのことか?略してプリコ・・・なんて言わねーよ
0302デフォルトの名無しさんNGNG
プリコンヘ
0303?NGNG
質問。

VCでwindowsのスタートボタンみたいなコントロールを使いたいんだけど、
(リストの1個を選択する子リストが表示されるやつ)
あれって、何ていうこんとろーるなんでしょうか?
教えてください。
標準のコントロールでなくActiveXですかね?


0304日下部圭子 ◆Z/ID97yU NGNG
>>303
普通のメニューを使えばサブメニューも使えるけど、
それではなくて?
0305303NGNG
>304
回答ありがとうございます。
メニューでなく、見た目的にコンボボックスとか、
スタートボタンみたいに押下するとリストが出る感じのものがほしいのです。
メニューって、フレームにしかつかないですよね?

0306 NGNG
>>305
ボタン押下時にポップアップメニュー出せばいいじゃん
0307プロジェクトマネージャーNGNG
あのー質問なんだけど
とりあえず今はメモ丁みたいな、なんもないスケルトン作って
そこに線や円を書かせたりしている、よくVC++の本に
のってるようなことやってるんだけど、

座標x,0で for文でxにx++してって、例えば「●」を、
ヨコにスルーっと動いていくアニメを作りたいんだけど、
一瞬で処理してしまって、アニメどころじゃないです。
そんでベーシックでいうwait50 みたいなスローにさせる
プロフラムってあるの?
0308日下部圭子 ◆Z/ID97yU NGNG
>>307
そういうのはタイマーイベントを使って処理するのが普通です。
(Sleep()でウエイトを入れてもいいけど)
0309プロジェクトマネージャーNGNG
タイマーイベント?

Sleep(30);

って1文いれると遅くなる?
0310308ではないがNGNG
>>309
タイマーイベントについては、SetTimer()とWM_TIMERを参照。
http://www.microsoft.com/JAPAN/developer/library/jpuipf/_win32_settimer.htm
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/htm/_wcesdk_win32_wm_timer.asp
MFCならCWnd::SetTimer()とCWnd::OnTimer()。
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cwnd.3a3a.settimer.htm
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_cwnd.3a3a.ontimer.htm

Sleep()は指定されたミリ秒だけ実行を中断する。
http://www.microsoft.com/JAPAN/developer/library/jpwinpf/_win32_sleep.htm
0311310NGNG
>>310
WM_TIMERはこっちの方がいいか。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/CommCtls/winui/timers_1w6q.asp
0312プロジェクトマネージャーNGNG
>>310
おーどのライブラリCDいちいちいれないと見れないとおもってたら
ネットでみれるんだ。ドーモ。!
0313?NGNG
>304
>306
ありがとうございました。
ポップアップメニューの存在を知りませんでした。
早速サンプル作って持っていったら...
SE:「そんなんじゃなくコンボボックスから子リストでるやつないの?」
呪まーす。

0314デフォルトの名無しさんNGNG
NULL文字セパレータ、ダブル NULLターミネートな文字列を扱うのに適した
クラスみたいなのってある?
0315デフォルトの名無しさんNGNG
>>314
扱うってどういう風に?
0316314NGNG
失礼。ostrstream で解決しますた。
0317デフォルトの名無しさんNGNG
>>313
ムダ飯喰らいのSEだな。
「本当のコンボボックスとはこれのことなのです。」とかなんとか
テキトーなことでも言っちまえ。
0318デフォルトの名無しさんNGNG
吃驚した!
VisualC++って
stdio.hを読み込めないの!?!?

これはC++だから読めないの?
0319デフォルトの名無しさんNGNG
んなわけねー。
0320デフォルトの名無しさんNGNG
よみこめたけど
"StdAfx.h"を読み込んで、
StdAfx.hファイル内で、stdio.hを読み出さないと、
「プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。」
こんなエラーがでる。
なんで??
厨な質問でごめん
0321デフォルトの名無しさんNGNG
VCでWinsockを扱うプログラミングを紹介してるページない?
探し方が悪いのかグーグルでみつからん
0322デフォルトの名無しさんNGNG
>>320
「プリコンパイルヘッダーを使う」という設定になってると、デフォルトで stdafx.h を読み込む
ようになってるよ。この設定のときに、stdafx.h をインクルードしていないと、
エラーになります。それが嫌なら、プリコンパイルヘッダーを使わないようにしよう。
0323デフォルトの名無しさんNGNG
初心者ですみませんが
120、30、1200を各々五桁、4桁、10桁で表示するプログラムの作り方がわかりません
教えてください。
0324デフォルトの名無しさんNGNG
>>321
あんまりネット上じゃ詳しく説明してるとこしらないなぁ
「WinSock2.0プログラミング」 翔泳社
読んだら為になるとおもうよ
0325デフォルトの名無しさんNGNG
>323
printf("%5d, %4d, %10d", 120,30,1200);
ってことか?
0326デフォルトの名無しさんNGNG
>>325
いや、120を五桁、三桁、10桁
30を五桁、4桁、10桁
1200を五桁、4桁、10桁
と表示したいのです。
0327デフォルトの名無しさんNGNG
は?
120(三桁)を0埋めで五桁にしたいってこと?
printf("%.5d",120);
ってことかいな?
VCと関係ないけどまいっか
0328デフォルトの名無しさんNGNG
>>326
日本語を勉強しましょう。
0329デフォルトの名無しさんNGNG
>>327
てことは
printf("%5d\n",120);
printf("%3d\n",120);
〜〜〜
って9回やらなきゃだめなの?
三つぐらいにまとめれるかなと思ったんだど
まあいいやさんくす
0330デフォルトの名無しさんNGNG
すまん。しくじった。
323で書いてるじゃん。
変数を勉強しなせ
0331デフォルトの名無しさんNGNG
>329
"%3d\n"の所とかをsprintfとかで作るですよ。関数にでもすればすっきり。
void ketaput( int keta, int num )
{
char buf[16]; // 適当
sprintf( buf, "%%%dd\n", keta );
printf( buf, num );
}
んな感じで。宿題っぽい気がせんでもないなw
0332デフォルトの名無しさんNGNG
>326
>いや、120を五桁、三桁、10桁
>30を五桁、4桁、10桁
>1200を五桁、4桁、10桁
if( strcmp( str, "120") == 0)
 return "五桁、三桁、10桁 ";
if( strcmp(str, "30") == 0 )
return "五桁、4桁、10桁";
if( strcmp(str, "120") == 0 )
return "五桁、4桁、10桁";
0333デフォルトの名無しさんNGNG
新手の知恵試しか?
0334デフォルトの名無しさんNGNG
五桁、4桁、三桁、10桁と、表記がバラバラなのには意味があるのだろう。
0335デフォルトの名無しさんNGNG
struct {
 int val;
 int dig[3];
} tbl[] = {
 {120, {5,3,10}},
 {30, {5,4,10}},
 {1200, {5,4,10}},
};
int i, j;
for (i=0; i<3; i++)
 for (j=0; j<3; j++)
  printf("\"%*d\"\n", tbl[i].dig[j], tbl[i].val);
VC++ 全然関係ないな…スマソ
0336デフォルトの名無しさんNGNG
>>331
majidewarata。

printfの%桁数指定で * が使えるぞ。
きちんと調べて見ろ。
0337VB厨毒NGNG
CHDocVwCtrl ってOCX?dll?
どこにあるんだ?
いろいろ参照しても
オブジェクトブラウザに出ないw
入ってないのかな?
…でも どんなもの?
0338デフォルトの名無しさんNGNG
SHDocVw
0339デフォルトの名無しさんNGNG
>>338それは WebBrowserコントロールの元じゃんw

うんとね
検索でたまたま 見つけたの
http://www.users.gr.jp/ml/archive/com/1978.asp
ここで言ってるCHDocVwCtrl って あるの?
だって オレだってVS6.0プロ入れてんだよ 一応 VBとInterDevしか使わないけどw
ほら あれが したいの 
WebBrowserコントロールのカスタマイズ!!
画像読まないとか、スクリプト実行させないとか なんとかインターフェイスいじるでんしょ
VBでできないかな?

みつかんないんだよね だまされたのかw
0340デフォルトの名無しさんNGNG
>>321
WinSock生でそのまま使うの?それともMFC使うの?
ソケット周りだけはMFC使うと鼻汁出るほど便利。
生Socketはめんどい。
0341デフォルトの名無しさんNGNG
>336
そんなのがあるのね・・・逝ってきまふ
0342デフォルトの名無しさんNGNG
VC++6.0 Professional Edition
をインストールしようとすると

c:\WINDOWS\System32\MSJINT35.DLL
c:\WINDOWS\System32\VBAR332.DLL

がないって言われちゃうんですけど、
これは重大なことでしょうか?
無視しちゃっても問題ないでしょうか?

OS は XP を使ってます。

よろしくお願いします。
0343デフォルトの名無しさんNGNG
今日パソコンショップに行ったら.NETが大々的に売り出されていました。
VCは「4月いっぱいで製造中止!お求めの方はお急ぎください。」という張り紙付きで隅っこのほうに置いてありました。
VCって死滅してしまうんですか?
VC使いは数年後には現在の「COBOLおじさん」みたいな扱いを受けるのでしょうか?
不安で夜も眠れません。
どうしましょう?
0344デフォルトの名無しさんNGNG
VC++.netがあるが?
0345デフォルトの名無しさんNGNG
>>343
数年後になってもVC(というかMFCorWINAPI)使いならばそういう扱いを受けるだろうね。
VCもできるし、.NETも出来るなら問題あるまい。
0346デフォルトの名無しさんNGNG
>>343
それはないと思うが・・・
0347デフォルトの名無しさんNGNG
通常の配列は、デバッグ時に全ての要素を
クイックウォッチで確認することができますが、
CArrayやCObArray系のクラスで作成した配列ではそれができません。
何か別に方法があるのでしょうか。
今はとりあえず、確認したい要素をintやCStringの変数に写していますが、
これはさすがに不便です。

あと配列ついでにもう1つ。
CArray、CObArray系で多次元配列って作れますか?
0348デフォルトの名無しさんNGNG
>>347
矩形配列は無理だけどでこぼこ配列なら可能。
0349デフォルトの名無しさんNGNG
>>340
MFCを使えば鼻汁出るほど便利なのか・・・
Cから生で使うには本買った方がいいかな・・・
本屋逝ったけど売ってなかった。
取り寄せしかないか
どなたかいい本してくれませんか
要求ばかりで申し訳ない。
0350デフォルトの名無しさんNGNG
>>348
凸凹配列ってどんな配列ですか?
検索しても1件しかヒットせず……。
0351デフォルトの名無しさんNGNG
その一件を読め
0352デフォルトの名無しさんNGNG
>>351
まー、読んでみて。
ttp://www.kgk-kak.co.jp/seihin/pdf/KGK%20TankSystem.pdf
0353デフォルトの名無しさんNGNG
>>349
たしかMAGURO Onlineあたりにサンプルがあったと思うんだが、今は休止中で
過去のコンテンツが見れないね。

とりあえず、TCPの簡単な流れだけ書いておくと、まず最初はWSAStartup()で
WinSockの初期化。これは必ず必要。終了時は同様にWSACleanup()。

■サーバ側
socket(AF_INET,SOCK_STREAM,0) ソケットハンドルを得る。引数はこんな感じで
bind() 通信に使用するポートを指定する。IPアドレスはINADDR_ANYでいい。
listen() クライアントからの接続を待つ。
accept() 接続を受理する。
send(),recv() データの送信、受信
closesocket() 通信終了

■クライアント側
socket(AF_INET,SOCK_STREAM,0) ソケットハンドルを得る。引数はこんな感じで
connect() サーバに接続する
send(),recv() データの送信、受信
closesocket() 通信終了

使用する関数と順番はこんな感じ。
ただし、send()やrecv()はデータが来てないときや送信できないときに呼ぶと
ブロックして戻ってこないから注意。select()でポーリングするか、WSAAsyncSelect()
でウィンドウメッセージで通知してもらうことで回避できる。

その他の便利な関数を挙げておくと
gethostbyname(),WSAAsyncGetHostByName() ホスト名からIPアドレスを取得
htonl() 32ビット値をネットワークオーダーに変換(エンディアンの変換)
ntohl() htonlの逆
inet_addr() ドット区切りのIPアドレス文字列から32ビット値に変換
inet_ntoa() inet_addrの逆
0354悩みつづけて3ヶ月!NGNG
下のようなちょっと大きめの3次元配列の定義の仕方を教えてください。

double val[3][100][100];

出来ないはずはないと思ったのですが、いざ定義してみると
ビルドはできるのですが実行ができないのです。
Cマスターの方々、この理由と解決策を宜しくお願いします。
0355デフォルトの名無しさんNGNG
static double val[・・・
0356デフォルトの名無しさんNGNG
なんだマルチか
0357デフォルトの名無しさんNGNG
vector<vector<vector<double> > >で解決だ!
0358デフォルトの名無しさんNGNG
環境がおかしい。
double三万個(240KB)くらいではスタックは余裕。
0359悩みつづけて3ヶ月!NGNG
vector???
なんですか?それ?
無知で申し訳ないです。
0360デフォルトの名無しさんNGNG
>vector???
>なんですか?それ?
>Cマスターの方々、この理由と解決策を宜しくお願いします。
ここはCスレじゃなくて、C++スレだよ。
0361デフォルトの名無しさんNGNG
>360
しばらくすると、そこには、「VisualC++(C言語限定)スレ」の文字が‥‥
0362初心者NGNG
VC++てなんて読むんですか?
0363デフォルトの名無しさんNGNG
びじゅあるしーぷらすぷらすと読むも良し。
ぶいしーぷらぷらと読むも良し。
えむえすしーと読むも良し。
発音を拒否しても良し。
ご自由に。
0364初心者NGNG
ありがとう!
0365デフォルトの名無しさんNGNG
>>354
コンパイラは何? 実はVC++ 1.0 とか、LSIC試食版ってオチはない?
0366デフォルトの名無しさんNGNG
>>365
VC++ 1.0 はいいとして、LSI-C はねーだろ。スレ違いだ。
そもそも、こいつは...
http://pc.2ch.net/test/read.cgi/tech/1019372139/61- とマルチし
てる奴で、しかもそっちで解決してるから無視でいいよ。
0367デフォルトの名無しさんNGNG
>>350
遅レスでスマソ。
矩形配列ってのは int array[2][2]; (Cの2次元配列)
でこぼこ配列ってのは int *array[2] = { new int[4], new int[1] };(配列の配列)

つまり、CArray自体を2次元として扱うことは出来ないけど、CArrayの中にCArrayを要素として持てば、それっぽいものは出来るってこと。
0368デフォルトの名無しさんNGNG
>>367
で、それをどうやってデバッグするの?
0369デフォルトの名無しさんNGNG
>>368
メモリウィンドウのアドレス欄に
CArray< CArray< int > > array ならば
array.m_pData[index].m_pData
と書けば array[index] の int 配列がみれる、もっとスマートな方法は、漏れは知らない。
0370デフォルトの名無しさんNGNG
VC++から.netへ移行するならVC++.NET?C#.NET?
0371デフォルトの名無しさんNGNG
>>370
VC++.NET
0372デフォルトの名無しさんNGNG
>>370
MSの記事によると、VC++ Proからの移行はVS.NET Proだそうだ
0373デフォルトの名無しさんNGNG
>>
回答どうもです。
そっかー、配列の中に配列を入れる、って手があったか。気づかなかった。
ありがとうでした。
0374 ◆nktTSMw2 NGNG
VC++であるソフトからある座標の色の情報を取りたいのですが、
VC++でそのような事は出来ますか?
また、出来るのならばそれを定期的に監視することは出来ますか?
これらの事が出来るのならば、VC++使い始めてどれぐらいで出来るようになりますか?

質問いっぱいですいませんが、そのやり方なども教えてくれると嬉しいです。
日本語下手ですんまそん
0375デフォルトの名無しさんNGNG
>>374
自作する必要性があるから訊いているんだろうけど、その前に、
http://www.hikarun.com/w/
このソフトをDLして使いなされ。これを使った上で、自作する必要が
あるんなら、そのときまた改めて訊くべきことを訊きなよ。
0376 ◆nktTSMw2 NGNG
>>375
ありがとうございます
早速使って見ることにします
0377デフォルトの名無しさんNGNG
「引数」 は「ひきすう」ですか? 「いんすう」ですか?

場違いですか?でも知りたいんです。
どうなんですか、みなさん?
0378デフォルトの名無しさんNGNG
>>377
http://www.kumei.jp/c_lang/intro/no_03.htm
↑「ひきすう」らしい。
0379デフォルトの名無しさんNGNG
そーだたんだ。
でもエキスパートはみな「あーぐめんと」ですか?
0380デフォルトの名無しさんNGNG
あーぎゅめんとだな
0381デフォルトの名無しさんNGNG
日本語化ソフトの作り方教えてくだされ。。。
0382デフォルトの名無しさんNGNG
>>381
まず、どこまで日本語に対応するのか明確にせよ。(そもそもどういうソ
フトを組んでんだよ。)
0383デフォルトの名無しさんNGNG
>>381
CreateFont〜系をフックして欧文フォントが選択されたら、
Unicodeフォントか日本語フォントをCreateして返し、
TextOut〜やExtTextOut〜系API等の文字列を受け取るAPIをフックして、
自動的にExciteなり自前なりで翻訳して、翻訳結果を画面に表示。
もちろん、lstrlenとかそういうのも全部フックしてくれ。
0384381NGNG
あんがと。けど俺には理解できんかった・・・。
0385デフォルトの名無しさんNGNG
>>383
それ、絶対失敗する。なんか自信ある。
0386デフォルトの名無しさんNGNG
>>385
ネタに突っ込むなよ。かっこ悪いぞ。
0387デフォルトの名無しさんNGNG
>>381
少しは自分で調べろよ。その程度の努力もできない奴は
Hellow Would!!出力プログラムでも作ってろ。
0388デフォルトの名無しさんNGNG
実数を一つ入力して(%lf)、全体の桁数を10桁として、それぞれ小数以下を
3桁、2桁、1桁で表示するプログラムを作りなさい。(%10.3f、***、***) ***
は各自決定せよ。
という問題があるのですが誰かわかりませんか?
0389デフォルトの名無しさんNGNG
宿題スレにどうぞ。
0390デフォルトの名無しさんNGNG
「VC++」
で処理をゆーっくりにするコードはなんですか?
たとえば、●を ツーっと横にアニメションで動かしたい。
この場合、ノーマルだと一瞬で絵画してしまい
単なる横棒になってしまう。
これをゆくり移動させるにはどしたらよいのか?
BESICでいうwaitってやつ。

また、このままだとよこに棒ができてしまう。
あくまでボールを動かしたい。
BASICでいうCLSにあたるものはなに?

なんだかソースを加えるだけでできるの?
0391デフォルトの名無しさんNGNG
>>390
この前とおなじやつか?
あの説明でわからなかったら何度聞いても同じ。
0392デフォルトの名無しさんNGNG
>>390
wait,clsつくるよろし。
0393デフォルトの名無しさんNGNG
>>391-392
別のスレで同じ質問が出て回答もされてる。
0394デフォルトの名無しさんNGNG
BESIC
0395デフォルトの名無しさんNGNG
>>394
そこに突っ込むかい…
あっちのスレでもまんまコピペしてるから同じミスがあるなw
0396ダルシムNGNG
VC++6.0やってるんだけど、

// CTestView クラスの描画

void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
int s;
s=10;
pDC->TextOut(200,6," 変数sを表示したいのだができない ");
pDC->TextOut(300,30,s);
}


なんだか、sは10と表示されず文字コード?みたいなので、謎の文字が出てしまいます。
どうしたらいいですか?

0397デフォルトの名無しさんNGNG
まずCを勉強してください。
0398デフォルトの名無しさんNGNG
まじでCからの勉強が必要です
0399デフォルトの名無しさんNGNG
なにこのスレ・・面白すぎる。。
0400デフォルトの名無しさんNGNG
CDC::TextOut() は、

virtual BOOL TextOut( int x, int y, LPCTSTR lpszString,
int nCount );
BOOL TextOut( int x, int y, const CString& str );

と言う風に定義されてるから、要は LPCTSTR (要するに char *、つまり
普通の文字列) か、CString (C++ の便利な文字列型) を受け取るわけ。
どうせ MFC 使うなら CString の方が便利だから、CString の勉強をし
よう。ヒントをあげとくと、CString::Format() あたりが近いと思う。
0401ダルシムNGNG
なんだかもうわかんないです
0402デフォルトの名無しさんNGNG
要するにTextOutではint型の変数は表示できません、てこと。
0403デフォルトの名無しさんNGNG
VCをつかっててふとおもったのですが、
アウトプットウィンドウのようなウィンドウを作るにはどうしたらいいんでしょうか?
エディットボックスとかシェルまわりかと思ったのですが、情報不足でよくわかりませんでした。
ご存知の方がいらっしゃいましたらぜひ教えてもらえないでしょうか?
0404デフォルトの名無しさんNGNG
2chで聞くより先にMSDN見れ。
0405デフォルトの名無しさんNGNG
char* s = "10";
0406デフォルトの名無しさんNGNG
CString s = "10";

or

CString s("10");

も可
0407デフォルトの名無しさんNGNG
CString s = _T("10");//のほうが俺はうれしい。
0408403NGNG
> 404
どの辺りをみればいいかさえよく分からないのですけど・・・。
バカですみません。
0409デフォルトの名無しさんNGNG
>>403
何を聞きたいのかあいまいすぎてわからん。
サイズ可変のドッキングバー -> CSizingControlBar でも検索するよろし。
編集不可能なエディット -> ReadOnly の CEdit の背景かえるだけでもよろし。
コンパイラとかの出力の取得 -> パイプを使えばよろし。(詳細忘れた)
0410デフォルトの名無しさんNGNG
404です。
>>403,408
スマソ。カキコのタイミングが悪かった。
ダルシム宛なんで気にしないで下され。

ついでに。
アウトプットウィンドゥってVisualStudioのようなヤシが希望ですか?
とりあえずCEditでググってみれば?

0411デフォルトの名無しさんNGNG
OutputDebugStringを受け取りたいんじゃないか?
0412403NGNG
一応、コンソールの出力を取得の仕方が知りたかったのですが、説明不足でしたね。
すみません。
どうもありがとうございました。
0413_T("hoge")NGNG
UNICODE アプリ作ってる人って多いんですか?
0414L"hoge"NGNG
おらは UNICODE 専用アプリしかつくらん。
0415デフォルトの名無しさんNGNG
あの〜
”〜.lib 外部シンボル "_main_initialize" は未解決です”
って100万回くらい言われるんです。
どうしたら良いでしょうか?
やっぱり死んだほうがいいですかね。
というアフォな事は質問しても良いですか?

ライブラリは全てぶち込んであります。
VC++6.0です。
0416デフォルトの名無しさんNGNG
本当に100万回だったら何かが壊れてる
0417デフォルトの名無しさんNGNG
console/windowsのFAQ?
0418415NGNG
あ、えっと1回のコンパイルでじゃなくて
何回試しても、という意味です。
コンソールアプリの話です。
というか初心者です。

>>415のようなメッセージに対して
libの設定はあってる、となると
次に何を疑えばいいのかわからず
途方に暮れてる次第です。
0419デフォルトの名無しさんNGNG
>>418
main_initialize() って関数か、main_initialize って変数 (だった
ら、命名の仕方を疑うが...。) がどっかで呼ばれてんじゃねーの ?
とりあえず、全ソースに対してファイルから検索かけたら ?
0420415NGNG
もうだめぽ。
諦めるYO。
外部シンボル恐怖症でつ。

えらーメッセージは
main.lib(pcacis.obj) : error LNK2001: 外部シンボル "_main_initialize" は未解決です
です。

>>419さんに従って検索しましたが
_main_initializeはmain.libにしかなく
main.libはちゃんと入ってます。

main.lib作った人にききましゅ。
0421デフォルトの名無しさんNGNG
>>420
main.lib がCで作られていてC++のプログラムから使おうとしているなら
C++のプログラムで

extern "C" _main_initialize( 引数リスト )

で宣言しておかないとリンクに失敗するぞ。
0422デフォルトの名無しさんNGNG
winsock のラッパーを書きたいんだが、
雛形とかどっかない?
使用を調べるの画面。
0423415NGNG
>>421
Thx!でもダメでした。メッセージ変わらず。ありが�d!
0424デフォルトの名無しさんNGNG
>>422
そんなプログラムWANに解放するなよ
0425デフォルトの名無しさんNGNG
>>421
それ、反対。そのケースなら、

test.obj : error LNK2001: 外部シンボル ""void __cdecl
main_initialize(void)" (?main_initialize@@YAXXZ)" は未解決です

と言う風に言われる。

main.lib(pcacis.obj) : error LNK2001: 外部シンボル "_main_initialize"
は未解決です

と言うエラーメッセージは、main.lib を構成している pcacis.obj が、
main_initialize() と言うのを使ってて、それを誰も定義していないことを
示している。ありがちなのはそのライブラリ使う時は、main_initailize()
って言う関数を定義しておくと、最初に一回呼ぶから必要な初期化をしてね。
と言うようなケース。

> main.lib作った人にききましゅ。

と言うのが正解。
0426デフォルトの名無しさんNGNG
typedef int MYINT;
struct C{
  template<typename T> void foo(T t){}
  void hoge(void){
    foo<MYINT>(10);
  }
};

VC6で上のコードが通らないんだけど、これはVCの制限だよね。
もしかして、VCってかなり糞?
0427デフォルトの名無しさんNGNG
>>426こういう書き込みしたがる厨結構いるよなぁ
0428貧乏人(^^)NGNG
gccじゃ金あんま稼げないみたいなんでVC++か.NET(アカデミ)どっち買うか
迷ってるんですけど,どうしたらいいんですかねー。
このスレの住人からみてVCってあと何年くらい持つとおもいます?
0429デフォルトの名無しさんNGNG
>>427
だねぇ...。template 使ってて、struct C { だからねぇ...。まあ、
GW だからしょうがないかな。

>>426
なにしたいのか良くわからんけど、とりあえず直しといたからもう来る
なよ。

typedef int MYINT;

template<class T> class C {
private:
 void foo(T t){}
public:
 void hoge(void){
  foo(10);
 }
};

int main()
{
 C<MYINT> x;
 x.hoge();
 return 0;
}
0430427NGNG
>>429
いや、残念ながらそういう事じゃない。
VCの既知の制限をいちいち持ち出して糞呼ばわりする奴って事。
そんなこと言い出したら、Lokiが通らないbccだって糞だしな。
0431426NGNG
>>427
これって広く知られた制限だったのね。知らなかったよ。
メンバーテンプレートをはじめて書いて通らなかったんでおかしいなと思ったのよ。
まあたしかに糞は言い過ぎた。

>>429
GWだな
0432デフォルトの名無しさんNGNG
広く知られたどころか、readmeに書いてあるよ。
0433デフォルトの名無しさんNGNG
readmeなんか読んでられるか糞



というafoが多いのでこういうカキコがあるわけですね
0434422 NGNG
>>424
しないよ。
単純にプロトコル解析したいだけ。
とある糞アプリをFreeBSDに移植したい。

ちゅーか誰も雛型があるところしらねーのか?
それとも、そんなもん公開してるやついないのか?
0435デフォルトの名無しさんNGNG
雛型が必要なほどのものじゃないぞ?
っていうか聞く前に検索くらいしてみたら?
snifferとかmonitorとかcaptureとか適当な単語と組み合わせれば、
そういうソフトはいくらでもあるし、Cで解説してるページもいっぱいあるけど。
0436デフォルトの名無しさんNGNG
WinMain
関数が WM_QUIT メッセージを受け取って終了したときは、
メッセージの wParam パラメータが持つ終了コードを返してください。
関数がメッセージループに入る前に終了したときは、0 を返してください。

ってあるのに、オープンソース眺めてみると、

int WinMain( 省略 )
{
  try
  {
    初期化();
    実行();
  }
  catch( 省略 )
  {
    例外処理();
  }

  return 0;
}

こんなのが非常に多い!
WinMain の戻り値って常に 0 でも問題ないの?

0437デフォルトの名無しさんNGNG
PostQuitMessageで0しか返さないならそれでもいい
0438デフォルトの名無しさんNGNG
まあ、火さえ噴かなきゃ何でもいいんじゃないの?
0439436NGNG
>>437
なるほど! ありがとうございます。

でも、そうすると、WinMain の戻り値って何の意味があるんでしょう?
何かを Windows に伝えることができるんでしょうか?
0440デフォルトの名無しさんNGNG
OSにエラーコードを返すのが流儀だからだろ。
最近はエラーが起きたらエラーコードを返すんじゃなくて、
abort()で人間にその旨を伝えるのが普通だな
0441436NGNG
>>440
納得しました。
ありがとうございました。
0442デフォルトの名無しさんNGNG
すいません。
WTLで教えてください。
WTL/ATLウイザードからプロジェクトを作ると
メインフレームクラスとして、
class CMainFrame : public CFrameWindowImpl<CMainFrame>〜 「MainFrm.h」
が生成されるんですけど、ヘッダファイルのみなんでCPPファイルを新たに自作すると
コンパイルが通らなくなります。
「error C2504: 'CFrameWindowImpl' : 定義されていない基本クラスが宣言されています。」
などと怒られてしまいます。
何が足りないのでしょうか?
0443デフォルトの名無しさんNGNG
cppを作成って何だ?
空のcppをプロジェクトに追加するだけでエラーがでるのか?
0444442NGNG
>>443
「MainFrm.cpp」です。
中身はコレです。コレでアウトです。

// MainFrm.cpp : interface of the CMainFrame class
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MainFrm.h"

CMainFrame::CMainFrame()
{
}
0445デフォルトの名無しさんNGNG
CFrameWindowImpl
がどこに定義されているのかよーく考えてみろ。
0446442NGNG
>>445
解決しました。ありがとうございました。
今回のトラブルの原因であり、
これは前々から思っていたことなんですが、
例えばあるヘッダファイル「A.h」があったとして
「A.h」は「B.h」を参照する仕様な場合、
#include <B.h>はどこに書くのが正しいんですか?
「A.h」を参照するのが、「C.cpp」ただ1つの場合
「C.cpp」に、
#include <B.h>
#include <A.h>
と書けばOKですよね。今回のWTLのソースもその方式でしたし。
でも他のファイルから「A.h」を参照したい場合これじゃダメですよね。
「A.h」の中で #include <B.h> を書かないと。
実際どっちが正しいんですか?



0447デフォルトの名無しさんNGNG
少なくとも、VCに限っては一つのヘッダにごっそり
#includeを入れて、そのヘッダを各cppの先頭で#includeするのがいいとおもう。
もちろん、プリコンパイル済みヘッダを作って
0448442NGNG
>>447
なるほど、プリコンパイル済みヘッダってそういう
用途で使うもんなんですね。
自分は小規模なプログラムしか組んだ事が無いので
いままで気にしてませんでした。
勉強になりました。ありがとうございました。
0449デフォルトの名無しさんNGNG
プログラム自体は小規模でも、
STLとか使うなら、プリコンパイルするだけで10倍近く早くなるケースも多いよ
0450デフォルトの名無しさんNGNG
20〜30倍もザラですよ
0451デフォルトの名無しさんNGNG
はずかしながら、nkf32.dllを、VC6の自作プログラムにどう組み込んでいいのかわからんです。
試した方法:

0.プロジェクトのライブラリにnkf32.libをおく。
1.#pragma comment(lib, "nkf32.lib")を使用するコードに入れる。
2.プロジェクト->設定->リンクにnkf32.libを追加

どうやってもLNK2001が消えないです・・・
0452デフォルトの名無しさんNGNG
俺は自慢ぢゃないが
COMしか使ったことないから
生のDLLはサッパリだぜ!
0453デフォルトの名無しさんNGNG
いさましいチビの女の子の元ネタって何?
0454デフォルトの名無しさんNGNG
トースター。
0455デフォルトの名無しさんNGNG
>>451
#pragma〜と書いたらプロジェクトの設定にはいらない。
libがある位置をよく確認
0456デフォルトの名無しさんNGNG
>>455 どうもです。

夕べ寝る直前に気づいたんですが、自分はC++のコードを書いてるので、
extern "C"が必要だったんですね。

とおもってよく見たら、>>421に答えが書いてあったりして・・・
お騒がせでした。
0457デフォルトの名無しさんNGNG
>>446

A.hがB.hを必要としているなら、
A.hでインクルードする。
(どのヘッダファイルを単独でインクルードしても
 コンパイルが通るようにする)

ただし、「全て」のヘッダファイルで2重インクルード抑止する。

というふうにしてます。


0458デフォルトの名無しさんNGNG
初心者です。
VC++6.0使ってます。
よろしくお願いします。

Win32 Application ってプロジェクトで作ったやつをビルドすると

リンク中...
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です
nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です
Debug/WinMogu.exe : fatal error LNK1120: 外部参照 2 が未解決です。
link.exe の実行エラー

って出ちゃうのですが、
コンパイルはできているってことですよね?
何がいけないのでしょうか?
よろしくお願いします。
0459デフォルトの名無しさんNGNG
-MT
もしくはプロジェクト>なんか>ライブラリ(マルチスレッド)選択
0460デフォルトの名無しさんNGNG
MFC使ってるのにプロジェクト設定でMFCを使わない設定にしてると
そのエラー出るね
0461458NGNG
>>459
レス、ありがとうございます。

MTオプションつけてビルドしてみたら
LNK4098 エラーが出ました。
(ライブラリが矛盾してるだとかなんだとか)
MSDN読んでもあんまりピンとこなくて、
とりあえず、
関係ありそうと思ったところで、リンクの設定で
「デフォルトライブラリをすべて無視」
ってのを選択して実行してみたら、エラーが120個出てきて、
で、リンクの設定を元に戻してまたビルドしてみたら、
実行できました。
う〜ん、解決したのだろうか・・・。
0462デフォルトの名無しさんNGNG
>>461
コマンドラインなら-MT
統合環境なら プロジェクト>C/C++>カテゴリ[コード生成]>使用するランタイムライブラリ
を変更
0463458NGNG
460さんのおっしゃっている通り、
MFCを使わない設定になっていました・・・。
ただ、
461で書いた方法でビルドが完了したのが不思議なところですが。

お騒がせ致しました。
0464デフォルトの名無しさんNGNG
別スレで質問したのですが
解決しなかったのでこちらでもう一度お願いします。
VC 6.0と.NETともにデバッグしようとすると
かなりの確立でVCがフリーズします。
Win2000,XP両方発生します。
具体的にはF5押すとエディタがデバッグの画面に切り替わり
その後直後フリーズします。その際他のウィンドウとかも
巻き込まれます。タスクマネージャーは立ち上がらないのですが
1分ほど時間が経ってから閉じるボタンを押すと
「応答がない」のダイアログがでて何とか終了できます。
終了すると他のウィンドウなどは元に戻ります。
調べられる限り調べたのですがだめでした。
ちなみにノートンは切ってありますし、
オーバークロックもしておらず
オプションのデバッグ項目はデフォルトで使用しています。
SBLive挿してるのが怪しいといわれましたが
今回は関係なかったようです。
ご存知の方おられましたら教えてもらえないでしょうか?
板違いだったら教えてください。
よろしくお願いします。
0465デフォルトの名無しさんNGNG
タスクトレイに何にも表示しないようにしてみて。
(特にIME)
0466464NGNG
>>465
タスクバーから出してもだめでした。
ノートンアンチウィルスはオフじゃなくて
アンインストまで試した方がいいですかね?
同じ状況の人はオフでいけた例があるみたい
なのでオフで無理なら関係ないと思ってますが。
えっとまとめておくと
ノートンオフ、IMEもタスクバーの外の状態で
固まってしまいます。
デバッグできなくてさすがに辛いので
すこしでも情報あれば提供くだされば助かりますので
よろしくお願いします。
0467デフォルトの名無しさんNGNG
>>464
あのさ、ここで解決しなければ今度はまた別のスレに貼るわけ?
いい加減にしてくれ。
どうしても解決が必要なら、MSにサポートしてもらえ(まぁ、解決するとは思えないけどな。
割れ厨だったらあきらめろ
0468デフォルトの名無しさんNGNG
>>466

タスクトレイに何も表示しない...
ってことはタスク領域自体が無くなるはずなんだけど、
そうなってる?
0469デフォルトの名無しさんNGNG
>>468

タスク領域=タスクトレイ領域
0470デフォルトの名無しさんNGNG
他のアプリ全部切った上で、
「デバッグ」メニューからの「デバッグ開始」は試したのなら、もう、手の打ちようが無いと思われ。
0471デフォルトの名無しさんNGNG
DirectInputでJoystick入力をさせるためにクラス化しようとしました
コールバック関数はクラスの中に置くことができないので
http://kobe.cool.ne.jp/solo2000/CInputControl.h
http://kobe.cool.ne.jp/solo2000/CInputControl.cpp
このようにしたのですが、当然これではlpInputとlpDeviceにアクセスできません。
このコールバック関数からlpInputとlpDeviceにアクセスすることはできないでしょうか?
0472デフォルトの名無しさんNGNG
>>471 超FAQ
hr = lpInput->EnumDevices( DI8DEVCLASS_GAMECTRL, EnumDevicesCallback, (void*)this, DIEDFL_ATTACHEDONLY );

BOOL CALLBACK EnumDevicesCallback( const DIDEVICEINSTANCE* pdidInstance, LPVOID pContext )
{
CInputControl* pThis = reinterpret_cast<CInputControl*>(pContext);
0473デフォルトの名無しさんNGNG
Set,Get系関数は無いのか?
0474デフォルトの名無しさんNGNG
>>472
ありがとうございます、早速調べてみます
>>473
初期化でこけているのでそこまで製作しておりません

thisポインタは関数を呼び出したオブジェクトへのポインタ
reinterpret_cast演算子はポインタ型に変換

まだVisualC++の知識は未熟なので詳しいこと輪分からないのですが
つまり(void*)thisはvoid形のポインタ
CInputControl* pThis = reinterpret_cast<CInputControl*>(pContext);は

CInputControlのポインタpThisにvoid型のポインタpContextが保持するアドレスを
変換して代入するということだと私は解釈しました。
そしてCreateDeviceと同じ内容の関数をCInputControlクラスに含ませておき
CInputControlのポインタpThisからそれを呼び出せばいいということだと判断した私は
このように改良しました。

http://kobe.cool.ne.jp/solo2000/CInputControl2.h
http://kobe.cool.ne.jp/solo2000/CInputControl2.cpp

実行してみたところエラーも出ず初期化は成功したと思います
本当にありがとうございました。
0475デフォルトの名無しさんNGNG
>>474
外人?
0476464NGNG
アドバイスありがとうございます。
467<<
えっと聞こえの悪い書き方してしまいました。
微妙に板違いだったのでこっちの方が的確な
アドバイスもらえると思って書き込みました。
すみません、MSのサポートは
467さんの想像通りで(笑)
いくつかドライバー関連の不具合(?),アプリの競合などなど
アドバイスもらったんですが特に当てはまらなかったので
諦めてしまいました。
468>>
残ってるのは
・アンチウィルスのアイコン(無効になってます)
・ボリューム調整するやつ。
のふたつです。
ノートンのやつ消すにはアンインストですね。
関係ないと判断してしてませんでした。
明日にでもさっそくアドバイス通り
やってみたいと思ってます。
470>>
もうひとがんばりしてみたいと思います。
せっかくMFC覚えたんですし。。
ながながすみません、また明日にでも報告いたします。
0477デフォルトの名無しさんNGNG
>>476
基本だが、VC自体の再インストールはしたのだろうな?
ノートンはダイアログボックスからプロセスそのものを切ってみたか?
そしてリブートはしたか?
0478デフォルトの名無しさんNGNG
>>472
void*への変換はC形式、戻すときはC++形式のキャストを使ってるのは何か理由が?
0479デフォルトの名無しさんNGNG
>>478
それ以前に、任意のポインタ型から void* へは暗黙のキャストで済むような気が。
0480デフォルトの名無しさんNGNG
>>478
あ、ミスだ(藁
長いからC形式になおして、callback側で直し忘れただけ
0481デフォルトの名無しさんNGNG
正直static_castはうざいだけと感じるんだけど、皆さん使ってます?
0482デフォルトの名無しさんNGNG
つかってる。

必要な場所ってそれほどないと思うが?
0483デフォルトの名無しさんNGNG
>>476
その現象は私の持っているThinkPadでもよく起こります
VisualStdioとDX8Librayのみをインストールしても起こりました
これは困りますよね

>>475
日本人です、思ったことを文章にするのが非常に苦手なのです

これで落ち着きました
http://kobe.cool.ne.jp/solo2000/CInputControl.h
http://kobe.cool.ne.jp/solo2000/CInputControl.cpp
0484デフォルトの名無しさんNGNG
んー、reinterpret_castとconst_castしかつかわねー
0485デフォルトの名無しさんNGNG
double->intみたいのに使う。
0486デフォルトの名無しさんNGNG
int*とchar*の変換なんかのときはstatic_castとreinterpret_castのどっちが良いんだろう。
int*とchar*の内部形式が同じとは限らないからstatic_castのほうが無難?
いまさらそんなこと気にせずreinterpret_castで行くほうがいい?

・・・スレ違いか・・・。
0487デフォルトの名無しさんNGNG
>>486
内部形式が同じとは限らないからreinterpret_castを使うべきだろ。
ポインタはvoid*との交換の時だけじゃないか?<static_cast
0488デフォルトの名無しさんNGNG
>>487
内部形式が違うならreinterpret_castはまずいのではないでしょうか?
0489デフォルトの名無しさんNGNG
内部形式が違う=変換不可能であればコンパイル時エラーになる。
だからこそreinterpret_castでよいのだ。
0490デフォルトの名無しさんNGNG
>>489
なろほど。
内部形式が違う==コンパイラが変換を行う。
という状況を想定していたけど、
そういう場合ならばstatic_castのほうが適切?
0491デフォルトの名無しさんNGNG
static_castは暗黙の変換が存在する場合にだけ有効じゃなかったっけ。
0492デフォルトの名無しさんNGNG
reinterpretはビットパターンを操作しないと理解している。
とりあえず、484は逝ってよい。
0493デフォルトの名無しさんNGNG
ダイアログ上のエディットボックスをサブクラス化しているんですが
エンターキーを WM_KEYDOWN で検出したいんですがデフォルトのボタンがある場合などは
どっかでメッセージが処理されてエディットに WM_KEYDOWN が来てくれません。
サブクラス化しているエディットにフォーカスがある場合はデフォルトのボタンなどに関係無しに
エディットがすべてのキー入力(WM_KEYDOWN)を受信できるようにするにはどうしたらいいですか?

余談ですが今月中に.Netを購入しようしようと思うのですが
どれを購入するのがいいですか?
個人的に使用するだけだけなのでC#、VC、VBの単体パッケージのどれかを購入する予定です。
Win32アプリを作るならVC++6.0で十分ですよね?
C#が妥当ですかね?
0494デフォルトの名無しさんNGNG
CSVファイルで保存したデータを自己参照構造体に読み込む方法は
ありますか?
0495デフォルトの名無しさんNGNG
あるます。
0496デフォルトの名無しさんNGNG
494
面倒ならCListかvectorでも使え
0497デフォルトの名無しさんNGNG
すみません、質問です。
VisualC++は0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみにプログラムは殆どやったことがないのですが。
0498デフォルトの名無しさんNGNG
個人差があるが、
そんなことから人に聞いているようじゃ10年たっても無理
0499デフォルトの名無しさんNGNG
同意
0500デフォルトの名無しさんNGNG
すみません、質問です。
株取引は0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみに買い物は殆どやったことがないのですが。

とおなじくらいバカ。
0501デフォルトの名無しさんNGNG
すみません、質問です。
セクースは0から始めたとして、
どのくらいで一通り覚えられますか?
ちなみにティムポは殆ど起ったことがないのですが。

とおなじくらい(以下略)
0502デフォルトの名無しさんNGNG
100人が思いついて99人が思いとどまったネタを書いちゃう勇者ハケーン
0503464NGNG
>>464
の状況ですが結果報告しにきました。
えっと直りませんでしたがほとんどデバッガが
起動しない状態から3分の1くらいの確立で起動する
に改善しました。
まずIMEをタスクバーから出すと
デバッガの起動成功確立はまったく変わりませんが
固まってもバツボタンの反応がよくすぐに
「応答がない」ウィンドウが出るので復旧しやすくなりました。
ノートンはタスクバーから出しても関係なくて
「停止状態」にしておくとフリーズの確立が
3分の1まで下がりました。
まぁ万事解決とまではいきませんが
なんとか実用範囲になりました。
みなさんありがとうございました。
長文失礼。
0504デフォルトの名無しさんNGNG
Winプログラミングでメモリの確保のしかたは、
結局どれがいいのですか?HeapAlloc?malloc?new?
ALL APIで組んで new とか使うのがなんだかいやです。
newをオーバーライドして、中でHeapAlloc?
みんな、どうしてますか?
0505ほげ ◆m4g7rP2k NGNG
[質問]他プロセスが握ってるソケットの受信バッファを読み書きしゅる

というのはできるのかお前ら教えてください。
相手プロセスの受信バッファの位置をしらべて
CreateFileMappingとかVirtualAllocExとかって路線で
いけるの??
でも可変長なデータだから単純に書き込もうとすると
随分奇怪なことをやらなきゃだめそうな気がしないでもないな〜
って言ってみるテスト
なんか便利なAPIないのかしら〜
0506デフォルトの名無しさんNGNG
DuplicateHandle
0507ほげ ◆m4g7rP2k NGNG
oh! MSDNで調べてみたYO!
それでソケットのピーコが作成できるようなこともわかったYO!
っていう認識であってる?
でもねでもねでもね、漏れがやりたいことができそうにない?
ってかわからない!

まずやりたいことを説明しよう。
0508ほげ ◆m4g7rP2k NGNG
登場人物
・サーバたん
・クライアントたん
・ツールたん

前提
・サーバたんはクライアントたんに文字列を送信してくる。
・クライアントたんは受信した文字列を表示する。

本題
ここでツールたんを作成し、本当はサーバたんから文字列が
送信されてきてないんだけど、さも送信されてきたかのように
クライアントたんを騙したい!!
ツールたんとクライアントたんは同一PCであり、
サーバたんは別PCである。

ゆえにツールたんでは、クライアントたんのソケットの受信
バッファに嘘データをカキコすれば騙せるのでは?と
考え、>>505 のような質問をした次第である。
先に言えというのは板違いだ きっと
実現方法について追加キーワード求む!
0509デフォルトの名無しさんNGNG
ソケットをピーコして、そのソケットに垂れ流せばいいんでないの?
0510デフォルトの名無しさんNGNG
>>504
malloc も new も中身は HeapAlloc だよ。たしか。
0511ほげ ◆m4g7rP2k NGNG
>>507
ピーコじゃなくて参照か。
0512デフォルトの名無しさんNGNG
>>510
でかいのは直接HeapAlloc。
小さいのはHeapAllocしたでかいブロックから小分けにしている。
たしか。
0513ほげ ◆m4g7rP2k NGNG
>>509
>ソケットをピーコして、そのソケットに垂れ流せばいいんでないの?

具体的にはどうやってやるの?
そのソケットに接続して流すってこと?
接続できるのかな?
すでに接続済みだから接続できないと思われ(?)
0514デフォルトの名無しさんNGNG
接続済みならsendすればいいやん
0515ほげ ◆m4g7rP2k NGNG
自分にsendできるんだ?
ちとMSDN調べますw
0516デフォルトの名無しさんNGNG
>>515
煽るのは勝手だがお前根本的に何かが間違ってる気がする。
0517デフォルトの名無しさんNGNG
VC++ 6.0+SP5 wIn2000pro SP2

spy++立ち上げてる時にファイルオープンダイアログを起動するとOSが固まってしまいます。
なにか対処法はありませんか?

ダイアログを開いたときに受け取るメッセージが確認できれば、用なしなんですが。
0518デフォルトの名無しさんNGNG
>>513
Duplicateする対象(ハンドル)をよく考え直せ
0519ほげ ◆m4g7rP2k NGNG
>>516
どのへんが違うのか知りたい。

漏れの解釈
ツールでHeapAllocをコールしてクライアントのソケットへの参照を取得。
その参照にsendすればサーバに送信される。
0520ほげ ◆m4g7rP2k NGNG
コピーしたとこ間違えたw
>ツールでHeapAllocをコールして
ツールでDuplicateHandleをコールして
に訂正・・しゅん
0521デフォルトの名無しさんNGNG
HeapAllocじゃソケットへの参照はとれない
0522仕様書無しさんNGNG
#pragma onceって
同じヘッダーファイルを二度インクルードしないように
コンパイラに指示するためにあるんですか?
0523デフォルトの名無しさんNGNG
>>522
そうです。昔ifdefでやってたのの代用。
.NET?
0524デフォルトの名無しさんNGNG
VCなら5のころから使えたんじゃない?
0525デフォルトの名無しさんNGNG
>>520は書き方凝らなくていいからもっと理路整然と書け。
0526デフォルトの名無しさんNGNG
>>523
鋭いですね。房ですみません。CはLinuxでしかやってませんでした。
0527デフォルトの名無しさんNGNG
いや、最近いろんな言語の勉強一気にやってるから。
標準C++の話だったかVC++.NETの話だったか混乱。
0528デフォルトの名無しさんNGNG
#pragma
は処理系依存でしょ。
C99だと標準オプションもあるけど
0529デフォルトの名無しさんNGNG
便乗で折れも教えて。
#pragma const_seg( "MY_DATA" )等の
セクションって何?
この場合、MY_DATAってどういう使い方が出来るの?
0530デフォルトの名無しさんNGNG
職業プログラマはg++でみっちり標準C++をやる、なんて余裕がないのが辛いね
0531デフォルトの名無しさんNGNG
g++で標準C++はちょっと・・・
0532デフォルトの名無しさんNGNG
>>531
lokiの通らないVC++よりはいいだろ
0533デフォルトの名無しさんNGNG
>>530
gccっていまだにVCでいうプリコンパイル済みヘッダ
ないでしょ? C++使う気がしない。
そのせいでUNIX系ではいつも素のCだ。
なんか変だけど。
(それとも俺知らないうちにできてた?)
0534デフォルトの名無しさんNGNG
>>532
それは同意
0535デフォルトの名無しさんNGNG
>>532
Lokiが通らないのが糞ならほとんどのコンパイラは糞だ
そもそも、実務であんなヘビーなテンプレートの使い方をすることはめったにない。
ちょっとLokiが話題になったからと、Lokiが通らない=糞とか
VCを糞呼ばわりしたいだけの厨がいっぱい居るのがそもそもの問題
0536デフォルトの名無しさんNGNG
>>533
>gccっていまだにVCでいうプリコンパイル済みヘッダないでしょ? C++使う気がしない。

これは何に対する言い訳?
0537デフォルトの名無しさんNGNG
>>535
勉強に向くかどうかと、現実的な要求に応えるかどうかは
全く別の話。VCを糞呼ばわりしたいのは少なくともここにはいない。
0538デフォルトの名無しさんNGNG
>>536
謎だな。だいたい VC でプリコンパイルヘッダを使うのは C++ 云々よりも、巨大な
windows.h 用だし。

(まぁ g++ でもプリコンパイルヘッダ欲しいんだけど)
0539デフォルトの名無しさんNGNG
>>538
はぁ? おまえの方が謎。
windows.hなんて大して負荷にならない
STLヘッダをいくつも#includeする方が何十倍も負荷になる
0540デフォルトの名無しさんNGNG
VCのプリコンパイル済みヘッダって1個しか指定できないのかなぁ?
標準ヘッダなんかのほとんど変更しないものと、
たまーに変更するけど毎回コンパイルするのはちょっと嫌なものを分けられたら便利なんだけど。
0541デフォルトの名無しさんNGNG
統合環境じゃ1つだけみたいだけど、
コマンドラインなら複数指定できるよ
0542533NGNG
>>539

そうだよね。
C++だとコードのかなりの部分をヘッダに置かざるをえないから
C++は・・・って書いたんだけど通じなかったかな?

>>536
言い訳うんぬんってのはどうゆう意味?
0543デフォルトの名無しさんNGNG
>>539
なんか勘違いしてると思う。使い方調べれ。

>>540
なんかいいことあるの?
0544デフォルトの名無しさんNGNG
>>543
リファレンス一個ずつずれた。
0545デフォルトの名無しさんNGNG
>>543
リファレンス一個ずつずれた。
540と541
0546デフォルトの名無しさんNGNG
>>544
敢えてポインタと呼ぶのも一興。
0547デフォルトの名無しさんNGNG
>>544
どうずれた?
0548デフォルトの名無しさんNGNG
>>543 - 545
しかも勘違いしてるのは俺だった。
ごめんなさい >>540,541
0549デフォルトの名無しさんNGNG
ぐだぐだだな
0550デフォルトの名無しさんNGNG
そういえば今は懐かし、TurboC++for Windowsは
VC++と比べて、コンパイルが鬼速だったなぁ。

VC買って同じコード試したとき、あまりの遅さに驚いたっけ…。
0551デフォルトの名無しさんNGNG
いいマシン買え。10万あれば激即PC買えるだろ。
0552デフォルトの名無しさんNGNG
>>550
最適化してないし
0553デフォルトの名無しさんNGNG
>>539
STL ヘッダは #include するより、ソースコードをコンパイルするときにテンプレートを
インスタンス化する方が重いだろ。
0554デフォルトの名無しさんNGNG
>>553
わかってないの?
そのインスタンス化の負荷を軽減するためのプリコンパイルヘッダなんだよ?
0555デフォルトの名無しさんNGNG
テンプレートってプリコンパイル出来るの?
0556デフォルトの名無しさんNGNG
>>555
プリコンパイルは直接コードを生成してるんじゃなくて、
parseのフェーズを省略できるように、内部表現を出力してるんじゃないのか?
0557550NGNG
>>552
なるほど〜、失念してました。間違いなくそれですねぇ。
0558デフォルトの名無しさんNGNG
>>554
とりあえず VC6 で

1. windows.h をプリコンパイルしたものと、そうでないもの
2. STL をプリコンパイルしたものと、そうでないもの

で速度を比較してみたら?
0559デフォルトの名無しさんNGNG
最近のCPUは十分速いから、ソース+ヘッダ->メモリ展開より
巨大なプリコンパイルヘッダをいちいち読み込むほうが
かえって遅くなる罠。
0560デフォルトの名無しさんNGNG
>>559
だからほんとにそう思うならやってみろって。
漏れの作ってるアプリのプリコンパイルヘッダ公開するけど、
プリコンパイルするかしないかで速度が20倍くらい違うぞ?

#ifdef _DEBUG
#define _STLP_DEBUG 1
#endif

#define _WIN32_WINNT 0x400
#define NOMINMAX
#include <windows.h>
#include <windowsx.h>

#include <tchar.h>
#include <process.h>

#include <commctrl.h>
#include <shlobj.h>

#include <cassert>
#include <ctime>

#include <list>
#include <vector>
#include <string>
#include <memory>
#include <algorithm>
#include <iterator>
#include <functional>
0561デフォルトの名無しさんNGNG
ぬぉ、切れた。
以下、続き

#include <exception>
#include <stdexcept>

#include <boost/shared_ptr.hpp>
#include <boost/bind.hpp>
#include <boost/array.hpp>
#include <boost/function.hpp>
#include <boost/functional.hpp>

#include "window.h"
#include "controls.h"
#include "filesystem.h"
#include "utils.h"
0562559NGNG
俺のと大してかわらんな。

更にmap/multimapと、
アプリケーション定義のヘッダが20位。

プリコンパイルヘッダ使っても遅いものは遅い。
0563デフォルトの名無しさんNGNG
>>562
どう考えてもプリコンパイルヘッダの使い方が間違ってるとしか思えない
0564デフォルトの名無しさんNGNG
ちなみに、自動的に使用だと効果ないよ?
きっちり手動で設定してやらないと
0565559NGNG
ごめんなさい。
自動的に使用ししてますた。

.cpp別にプリコンパイルヘッダの扱いが変更できるようだけど、
どんな感じでやればよいのか教えてください。
0566デフォルトの名無しさんNGNG
>>565
たとえば、上に書いた集約したヘッダをstdafx.hとし、
[stdafx.h]
#include <windows.h>
...
とstdafx.hを#includeするだけのcppを用意する
[stdafx.cpp]
#include "stdafx.h"

で、stdafx.hを右クリック>設定>プリコンパイル済みヘッダ
プリコンパイル済みヘッダの生成に[stdafx.h]を入力

その後、すべてのソースファイルの先頭にstdafx.hを#includeして、
プリコンパイル済みヘッダを使用に[stdafx.h]までと入力
0567デフォルトの名無しさんNGNG
>stdafx.hを右クリック
stdafx.cppを右クリック
0568559NGNG
>>566-567
ありがとうございます。
0569デフォルトの名無しさんNGNG
>>568
とりあえず、試したらどれだけ早くなったかレポートするように
0570559NGNG
速くなったーヨ
1/20位の時間になったーヨ

0571デフォルトの名無しさんNGNG
VC++6.0はVC++5.0とどこら編が違うの?
0572デフォルトの名無しさんNGNG
>>571
バージョン。
0573デフォルトの名無しさんNGNG
すんません、質問です.

SetWindowsHookEx(WH_GETMESSAGE, 〜
(WH_KEYBOARDでナシに)でキーボードをフック(WM_KEYDOWNを検出)した後、そのキーを無効にする(メッセージをキューから破棄する?)にはどうすればいいですか?
(たとえば、[INS]が押されたときに「貼り付け」処理した後挿入/上書きモードを切り替えないようにする、みたいな…)
0574デフォルトの名無しさんNGNG
WM_NULLに置き換える、とか。
0575デフォルトの名無しさんNGNG
CallNext〜を呼ばない・・・
0576痴有望NGNG
VC++4.0のアカデミック版を5年前に買って置物と化してるのですが、
最近勉強しようと思うようになりました。
もうVC++6.0(それ以上?)になってると思いますが、4.0とは機能的にめちゃくちゃちがうんでしょうか?
また、初心者がやるには4.0でも十分なんでしょうか?
0577デフォルトの名無しさんNGNG
>>576
VB.NETは現在のVBとは別物です。
0578デフォルトの名無しさんNGNG
>>573
フックプロシージャ内で>>575、且つreturn 0
ただし他のグローバルフック使用アプリに影響の可能性。
MSDNに書いてあるよ。
0579デフォルトの名無しさんNGNG
>>574, 575, 578 サンキューです.
それが、>>575がうまくいかないんですわ.
ただ>>574がとりあえずうまく行ってるようです.
しかーし!!
M$ Word (95, 2000)では、これもうまくいかないんですね.
何故でしょう?
とりあえずキーを1回押すだけでWM_KEYDOWNが2〜3回送られてくるあたりが非常に怪しい.
今んとこメッセージ送り主のhwndと送られたptimeを調べて同じだったらはじく様にしてるんですけど、何か方法はありますか?
0580 NGNG
ネットからプログラムをコピペして、コンパイルしたら、予期せぬEOFガ検出されました。というのが出てしまいます。どうしたらいいのでしょうか?
0581デフォルトの名無しさんNGNG
>>580
EOFを予期させてください。
0582デフォルトの名無しさんNGNG
>>580
デバッグ
0583デフォルトの名無しさんNGNG
コピペせずに自分でコード書け
0584 580NGNG
>>583
そうします。ありがとうございました。
0585デフォルトの名無しさんNGNG
>>576
Win32APIを使っているだけなら4.0でもほとんど問題なし。
俺も未だに4.0使ってる。
0586デフォルトの名無しさんNGNG
C++でSTLが事実上使えないのは痛いなぁ。
0587デフォルトの名無しさんNGNG
>>580
プリコンパイルヘッダーを使う設定になっているのに、ソースにそれ用の
ヘッダーのインクルードをしていなかったりしてない?
0588デフォルトの名無しさんNGNG
>>586
ハア?
0589デフォルトの名無しさんNGNG
>>588
ヒイ?
0590デフォルトの名無しさんNGNG
俺も

>>686
ハァ?
0591デフォルトの名無しさんNGNG
ツマラン
0592デフォルトの名無しさんNGNG
Visual Cでアーカイブファイルを作るにはどうしたらいいですか?
0593デフォルトの名無しさんNGNG
お好みの形式のアーカイバを書くか、
既存のライブラリを使用するか
既存のツールを操作する
0594デフォルトの名無しさんNGNG
>>592
自分で圧縮アルゴリズム実装するとか。
0595デフォルトの名無しさんNGNG
そうじゃなくて、リナックスのarコマンドみたいなことはできますか?
0596デフォルトの名無しさんNGNG
>>595
ぁ?ファイル操作の方法がわからないのか?
それとも、どこから手をつけていいのかもわからない?
0597586NGNG
>588
当然、VC++4のはなししだよ。
0598デフォルトの名無しさんNGNG
>595
.libを作りたいってことか?
リンカのオプションいじってできたような気もする。ヘルプで調べれ。
0599デフォルトの名無しさんNGNG
>>598
ありがとうございました。やってみます。ところで何でみんなsage?
0600デフォルトの名無しさんNGNG
プリコンパイル済みヘッダっていつ登場したんだったっけ。
登場当初は確かにwindows.h対策と言われていた記憶がある。
そうかーSTLってそんなにでかいのか、って当然か。
0601デフォルトの名無しさんNGNG
>>599
ム板の伝統…かな。

age:質問をする人、厨房
sage:良識を持った回答をする人、ネタレスをする人

って感じじゃないかと。
0602デフォルトの名無しさんNGNG
ageる時は、必ずしも質問とは限らないけど、何らかの注目を得たい場合だよね。
それ以外は基本的にsageで。
0603デフォルトの名無しさんNGNG
スタックはデフォルトで1MB使用できるそうですが
ある時点で使用できる残りのスタックサイズを得る方法ってないですか?
適当にスタックにメモリを確保していると(再帰関数などで)スタックを使いきってしまうのでないか心配で夜もグッスリです。
残りのスタックサイズを取得して一定のサイズ以下になったら警告が出るようにしたいです。(デバッグビルドの場合)
APIが無理ならインラインアセンブラで無理やりでもいいので教えてください。
0604デフォルトの名無しさんNGNG
> 心配で夜もグッスリです。

わけわか
0605デフォルトの名無しさんNGNG
>>603
取りあえずプログラム起動時にspの値取得。
関数を呼ぶたびに現在のspと保存したspのディスタンスを取る。とかはダメ?
0606初心人間NGNG
2chのAAでよくある実写画像(宗男とか)みたいなやつをつくるソフトってVC++で作れますか?
もしくはつくった人いますか?
0607デフォルトの名無しさんNGNG
>>606
作ったからあるんだろうと小一時間。。
0608初心人間NGNG
ここで答えてくれてる人ってやっぱそんなの簡単につくれちゃう位の人が多いんですか?
0609デフォルトの名無しさんNGNG
あんまりいないだろうが、かき集めればそういうのができるだろう。

形状認識の理論とAAに対する情熱を持ち合わせたプログラマが
いないこともない。
0610デフォルトの名無しさんNGNG
>>606
の言う「AAでよくある実写画像」ってのは、
AAじゃなくて画像を文字で表現しただけのやつのことじゃないの?
そうなら簡単だけど、本気でAAで表現するのは漏れには無理。
0611初心人間NGNG
>>610
そうですそうです。>実写画像(みたいなの)
素人考えですが、こういうのって単純にBMPファイルを数ピクセル四方の領域単位に分割して、各領域の平均濃度に対応した文字テーブルを予め用意して云々
って感じでできるものなんですか?
0612デフォルトの名無しさんNGNG
test
0613デフォルトの名無しさんNGNG
>>611
いいんじゃない?
::
のように均等な濃度になるものもあれば
~~や,,のように偏るものもあるし、その辺を考慮して。
0614デフォルトの名無しさんNGNG
MFCのソースコードを読みたいのですが
VisualC++6.0 Enterprise Editionには
ソースコードは付属していないのでしょうか?
0615デフォルトの名無しさんNGNG
当然付属していますが、何か?
0616デフォルトの名無しさんNGNG
もしかしたら、プリコンパイル済みヘッダを勘違いしてるかもしれないですが、
これって結局、コンパイルの時間を短くするだけですよね?
ね?
0617デフォルトの名無しさんNGNG
そうだよ
0618デフォルトの名無しさんNGNG
VC++でゲームとか作りたいんですが
参考になる本とかサイトとかありませんか?
0619デフォルトの名無しさんNGNG
君には無理

0620デフォルトの名無しさんNGNG
>>618
サイト>> googleで検索,海外ポータルを探す
本>> 定番でGameProgramingGem,GameProgramingManazineなど
0621デフォルトの名無しさんNGNG
>>618

どんなゲームを作りたいのか知らんが、とりあえずGoogleで
「ゲーム開発 C++ Windows」とでも入れてごらん。
0622デフォルトの名無しさんNGNG
>>621
ダブルバッファリングとかゲーム界の常識を学んでからの方が良いかもね。
0623デフォルトの名無しさんNGNG
>>620>>621
ありがとうございましたやってみま酢。
0624デフォルトの名無しさんNGNG
スタティックライブラリやDLLを作るとき、デバッグ版やリリース版、
マルチスレッド版......などを考慮すると数種類のライブラリを作ることになりますよね。
これって1つにまとめることはできないのでしょうか?
WEB等で配布されているライブラリで1つしか配布していないのは
どうやっているのでしょうか?
0625デフォルトの名無しさんNGNG
web上のライブラリはソースが配布されてない限り使わない、と。
0626デフォルトの名無しさんNGNG
systemフォルダに入っているUNLHA32.DLLを参照するようなアプリの場合は?
アプリ側がDLLの設定に合わせるのですか?
0627デフォルトの名無しさんNGNG
dllならリンクしているライブラリは関係なく使える。
ただ、dll側の制限でマルチスレッド不可の場合が多すぎるので気をつけよう
0628デフォルトの名無しさんNGNG
VC6 使ってますが、Alt + F8 でソースの整形ができません。
VC5用の本にはこれで出来ると書いてあるのですが、
別のキーになったのでしょうか?

0629デフォルトの名無しさんNGNG
変わってないとは言い切れないな
0630Disca ◆NAfP6znE NGNG
CListCtrl で、レポート形式にしているのですが、
アイコンが表示してくれないのですが、まちがいがあれば
教えていただけないでしょうか、お願いします。
// m_list は、CListCtrlのメンバ変数
// IDI_ICON は、アイコンリソースです。

int i;
CImageList imageList;

  imageList.Create(16, 16, ILC_COLOR4, 1, 1);
  m_list.SetImageList(&imageList, LVSIL_SMALL);
  HICON hicon= ::AfxGetApp()->LoadIcon(IDI_ICON);

  int image= imageList.Add(hicon);
  for (i= 0 ; i < 3 ; i++)
    m_list.InsertColumn(i, "ColTop");

  m_list.InsertItem(LVIF_IMAGE | LVIF_TEXT , 0, "00", 0, 0, image, 0);
  m_list.SetItem(0, 1, LVIF_TEXT, "01", 0,0,0,0);
  m_list.SetItem(0, 2, LVIF_TEXT, "02", 0,0,0,0);
0631デフォルトの名無しさんNGNG
>>630
スコープを抜けた後、imageListはどうなってしまうのかと問いたい。
0632Disca ◆NAfP6znE NGNG
>>631さん
スコープを抜けたあと…デストラクタが働いて…消えています。
ありがとうございます…。
試したら、解決しました^^/。
0633デフォルトの名無しさんNGNG
>>628 開き括弧と閉じ括弧の数が揃っていないと効かないぞ。
あと範囲選択を忘れているとかいうオチはなしな。
0634デフォルトの名無しさんNGNG
関係ないがVC初心者質問スレが落ちてた。
めでたくここと統合ってことで。
0635デフォルトの名無しさんNGNG
new演算子が動的にメモリ領域を確保することは分かりましたが、
その利点って何ですか?普通に宣言するのとどこが違うかわかりませんです
0636デフォルトの名無しさんNGNG
>>653
mallocと同じく実行してみるまで必要なメモリーの量がわからないときに役立つんだろ?
0637デフォルトの名無しさんNGNG
>>635
>>630のようにスコープ抜けても存在してるとか、
スタックよりも領域を多く確保できるとか
0638デフォルトの名無しさんNGNG
>>637
それは普通、staticにするのでは・・・
0639デフォルトの名無しさんNGNG
IDEから実行されているかどうかを判定する関数・変数ってありますか?
0640デフォルトの名無しさんNGNG
[F5]から実行ならIsDebuggerPresent()か?
crtl+[F5]は、無理っぽい。
0641デフォルトの名無しさんNGNG
>>639
カレントディレクトリ調べるというのもありかも、
ってかそもそもIDEから起動されてることを知って何になる?
0642639NGNG
>>640
IsDebuggerPresent()でよさそうです。ありがとうございます。
でもkernel32.libリンクしているのに
>main.obj : error LNK2001: 外部シンボル "_IsDebuggerPresent" は未解決です
になってしまいます・・・

>>641
>ってかそもそもIDEから起動されてることを知って何になる?
IDEから実行すると終了時に窓が閉じてしまうので、mainの最後に
#ifdef WIN32
if(IsDebuggerPresent()){
char buf[80];
printf("end: ");
gets(buf);
}
#endif
って書きたいだけなんです。
0643デフォルトの名無しさんNGNG
WORDとDWORDを比較したら下のような警告がでたんだけど、WORDもDWORDもunsigned
ですよね??
キャストしたらもちろん消えたけど、何故?

warning C4018: '<=' : signed と unsigned の数値を比較しようとしました。
0644デフォルトの名無しさんNGNG
642
コンソールアプリで実行したらwinbase.hがはじかれた。
そもそもコンソールアプリは終了時に<Press Enter Key>がでますが。へん?
0645デフォルトの名無しさんNGNG
>>643
WORDからintに拡張されて比較…になる。たぶん。
0646デフォルトの名無しさんNGNG
>>643
出なかった世?
0647本の虫NGNG
追加したダイアログに独自のメニューを付けました。
でも、アクセラレータテーブルの結び付け方が分かりません。
どうかご教授ください。
0648デフォルトの名無しさんNGNG
WH_GETMESSAGEをフックするか、モードレスで作る
0649デフォルトの名無しさんNGNG
IMEのユーザーファイルの場所を変える関数知っているいます?
IMEのプロパティを使用しないで
ユーザーファイルの生成、パスの設定をしたいのですけど・・・
ご存知の方ご教授ねがいます。
0650デフォルトの名無しさんNGNG
>>643  先生、うちも出ません
0651635NGNG
>>636,>>637,>>638さん
サンクスです。なんか使わなくてもよさそうな感じですね。
0652>>628NGNG
>>629 >>633

やっぱり出来ないです。

開き括弧と閉じ括弧の数は揃ってます。範囲選択もしてます。

メニューから実行できないし・・とりあえずコマンド名
教えて頂けないでしょうか?
0653643NGNG
あれ?おかしいな
VC++6のワーニングレベル3なんだけど相変わらずでるです・・・
0654デフォルトの名無しさんNGNG
#define WORD int
とか、自力定義してるんでねーの。
0655デフォルトの名無しさんNGNG
ウォーニング?
ワーニング?
0656デフォルトの名無しさんNGNG
VC++ で、「正規版」「機能限定版」の両方を同じプロジェクトで管理して、
オプションでコンパイル分けするにはどうすればよいでしょーか?
0657デフォルトの名無しさんNGNG
>655
にふぉんぐぉは おんすぇお すぉのむぁむぁ
ひょーきするむぉのでわ あるぃますぇん
0658ふぁふぁふぁ ◆XuOn9thA NGNG
yahooはどうですか?っあ、スレ違い・・・・
0659デフォルトの名無しさんNGNG
●●●●●●●( ● ´ ー ` ● )●●●●●●●


もうすぐ「これ」来るぞ・・・・
0660デフォルトの名無しさんNGNG
>>656
同じプロジェクトでビルドの設定
0661デフォルトの名無しさんNGNG
>>655
発音聞いてみたが、
ォワーニン
0662デフォルトの名無しさんNGNG
>>>666は>>665のうんこ食べる。
0663デフォルトの名無しさんNGNG
>661
ヲーニン?
0664デフォルトの名無しさんNGNG
>>652
メニューの 編集‐高度な機能 の中にある。
あと、VC6だとキー割り当てはどうにでもなるから、
ヘルプ‐キーボードマップ とか ツール‐カスタマイズ とか見とけ。
ソースの整形はSelectionFormatだったかな。
0665628NGNG
>>664

やっとできました。

ツール − オプションの「自動インデント」が「デフォルト」になってたのが原因のようです。

でも思ってたよりも機能が弱い気が・・ソースの整形というより、単にインデントしているだけだし
(範囲選択して TABキー押すのに毛が生えた程度・・)

でも、ありがとうございました。
0666デフォルトの名無しさんNGNG
GNU indentつかえば?
0667デフォルトの名無しさんNGNG
すいません質問です。
MFC派生クラス(元:CObject)をアプリに追加して動的に生成したいんですが、
SDIアプリケーションで作成するとうまく行くんですが、
ダイアログアプリの場合はコンストラクタ呼び出した時点でクラス名を
クラスとして認識してくれないようなエラーが起きてコンパイルできないんです。
ダイアログアプリの場合だけ何か設定とか必要なんですか?
それともSDIで作らないとMFC派生クラスは使っちゃダメ?
0668デフォルトの名無しさんNGNG
いいたいことがよくわからないが・・
動的生成させたいならDECLARE_DYNAMICとかつけるんだYO
0669デフォルトの名無しさんNGNG
ちょっとスレ違いかもしれませんが、エクセルのマクロを
別のプログラムから動作させることは可能ですか?

コマンドライン引数でエクセル起動と同時にマクロを動作させるとかでも
いいんですが・・・。
0670デフォルトの名無しさんNGNG
>>669
できますよ。
他人がやってるの見ただけで手段はわからないけど。
0671669NGNG
おお、出来るんですね!
でもどうやればいいのか全然見当がつきません。
0672デフォルトの名無しさんNGNG
VC++7で
  #define _CRTDBG_MAP_ALLOC
  #include <crtdbg.h>
が通らなくなってるんですけど(C2733が大量に出る)・・・
0673デフォルトの名無しさんNGNG
Windowsアプリケーションのファイルの拡張子って.cと.cppとあるけど
どっちがよいの?
0674デフォルトの名無しさんNGNG
>>669
できる。やってる。動いてる。
0675デフォルトの名無しさんNGNG
>>673
C で書いてるなら .c
C++ で書いてるなら .cpp
0676デフォルトの名無しさんNGNG
cc/cxxもアリ
0677672NGNG
crtdbg.hの後からatlstr.hをインクルードしていたのが問題だったみたい

勘違い書き込みしてスマソ・・・
0678よろしゅぅNGNG
VC++.NETの
INT_PTR ってintとどう違うんでしょうか。

また、[クラスビューのTOPをClick]-[プロジェクト]-[プロパティ]
を見たのですが、
RTTIのスイッチが見つかりませんが標準でONになってるのでしょうか。

またなんで普通に[プロジェクト]を選ぶと、[プロパティ]がないのか
半家しく問いつめたいのです。
0679デフォルトの名無しさんNGNG
INT_PTRは32bit win>64bit win移行の課程の互換取りのために用意されてる物ですよん
0680678NGNG
>>679
なるほど。サンクス。
ポインタぽい型名だったから...。
0681678NGNG
RTTIありました。デフォルトでやはり無効でした。
->ランタイム型情報の有効化。
0682デフォルトの名無しさんNGNG
王様ゲーム!
0683デフォルトの名無しさんNGNG
例えば三角関数のy=sin(x)をグラフとして出力したいんですけど、
Cの本を参考にして
#include<graphics.h>
とか<gragh.h>って書くとコンパイルでエラー出ます。
c++だとどうすればよいのでしょうか・・
0684デフォルトの名無しさんNGNG
683
extern "C" {
# ・・・
}
でだめなら力技
0685デフォルトの名無しさんNGNG
ダイアログとそのリソースをDLL化して
exeから呼び出そうとしているんですが、うまくいきません。
呼び出し元のダイアログのthisポインタをコンストラクタに渡して
DoModalを実行すると即エラーで帰ってきます。

呼び出し元が参照するDLLのヘッダは、DLLでダイアログのクラス作った
ときにできたヘッダファイルのクラス宣言の部分に__declspec(dllexport)
を挿入しただけのものを使ってます。
そのままだと呼び出し元でビルドするとき
//{{AFX_DATA(CChildDlg)
enum { IDD = IDD_DIALOG_CHILD };
の部分がエラーになるので、
DLLのresource.hをIncludeさせてエラー回避してます。
多分これは間違ってると思います。

正しいいやり方を教えてください。
よろしくお願いします。
0686デフォルトの名無しさんNGNG
>>669
COM 使って CreateObject("Excel.Application") して云々、でできそうだけど。
0687デフォルトの名無しさんNGNG
685
.dllのインスタンスからリソースをロードしてDialogをクリエートして
RunModalLoop()使えば吉。
0688デフォルトの名無しさんNGNG
strcpy、_mbscpy の違いって何ですか?
マルチバイト文字列のコピーはも strcpy で普通にできますよね?
0689デフォルトの名無しさんNGNG
>>688
_mbscpyはunsigned char
0690685NGNG
>>687
回答ありがとうございます。

早速調べてみたんですが...
dllダイアログリソースをロードする方法が分かりません。
bitmapとかIconをロードする関数は見つかったんですが。
もしかして、暗示的なリンクでなく
LoadLibraryを使ってDLLをロードしてハンドルを取得し、
そのハンドルからDLLのダイアログリソースのハンドルか
リソース名を取得(できるのでしょうか?)するということでしょうか?

書いてて余計分からなくなってきた。
とりあえず今までどおり暗示的なリンクで
exeの中の親画面で
CChildDialog Dialog;
Dialog.Create( IDD_DLG_CHILD, this );
とやってみました。IDD_DLG_CHILDはDLL内部のリソースIDです。
当然NGでした(笑。

もうちょっとだけ分かりやすくおしえてください。
(私が初心者なだけなんですが。すみません。)
よろしくお願いします。
0691デフォルトの名無しさんNGNG
>>690
AfxSetResourceHandle()
0692688NGNG
>>689
プログラムで扱っている文字列が charなら、文字列のコピーに限っては、
いちいち unsigned char にキャストして、_mbscpyを呼ぶ必要はないわけですよね?
0693デフォルトの名無しさんNGNG
>>692
charなら、まぁTCHARの使用をお勧めするけど
0694デフォルト名無しさんNGNG
またまた回答ありがとうございました。

HINSTANCEResourceHandle = AfxLoadLibrary (_T("ChildDlg.dll"));
AfxSetResourceHandle (ResourceHandle);
と、ここまでは何とか分かりました。
ここから、ダイアログのCreate関数に渡すダイアログの
リソース名を取得しないといけないですよね。
これもどうやったらいいか分かりません。
そもそも、リソースIDは分かるんですが、リソース名って何なんでしょう?
よろしくお願いします。
0695デフォルトの名無しさんNGNG
BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
0696デフォルトの名無しさんNGNG
age忘れ
0697デフォルトの名無しさんNGNG
>>694
リソース名 = MAKEINTRESOURCE(nID);
0698669NGNG
>>686
CreateObjectで検索してみたけど、VB関連ばかり引っかかって
Cのは全然見つかりませんでした。
COMもいまいち良くわかってないんで・・・。
どっかにわかりやすく解説したサイトとか無いですかね。
0699デフォルトの名無しさんNGNG
669
モジュールのWorkbook_Open()がVBAのスタートアップルーチンになるから、
そこにVBAを記述してWin32のShellExecuteでxlsを起動してたらいいと思われるが。
(ワークシートのAuto_Open()でも可)

蛇足:アプリケーションフォルダのXLStartフォルダにXLSファイルを入れておくと
Excel.exeを起動するごとにそのファイル開かれるからいろいろ細工ができる。
(Excel2000以降未確認)

最近のレスでは
http://pc.2ch.net/test/read.cgi/tech/981823340/497-
もあったけどマクロを起動するところまではできていない。

ビジネスSOFT板のExcel総合相談所 あたりでもVBAをあつかってるので聞いてみれば。
0700あNGNG
カチュウシャみたいに、分割するにはどうすればいいの?
リストビューとHTMLと絵描くところの3つに分けたい
0701112NGNG
MSDNの
・CSplitterWndのペイン分割
・テクニカルノート29
・ちゅーとりあるの「ビュー機能の強化」
ぐらいかな。
0702デフォルトの名無しさんNGNG
↑ 112 は消し忘れ、意味無し
0703669NGNG
ちなみにExcelは95です。
0704デフォルトの名無しさんNGNG
こんにちは,
今日本を買ってきてやってるようなペーペーですが,
今,本のとおりにやっているところです.
で,質問なんですが,この本では
ファイルからの入出力にSerialize 関数なるものを使用しているんですが,
これは普通に使うものなのでしょうか?
0705デフォルトの名無しさんNGNG

void CtestDlg::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{ // コードの保存
ar << m_wndView.m_nRMax << m_wndView.m_nRPos << m_wndView.m_nCPos;

for(int i = 0; i < RMAX; i++)
for(int j = 0; j < CMAX; j++)
ar << m_wndView.m_text[i][j];
}
else
{ // コードの読み込み
ar >> m_wndView.m_nRMax >> m_wndView.m_nRPos >> m_wndView.m_nCPos;

for(int i = 0; i < RMAX; i++)
for(int j = 0; j < CMAX; j++)
ar >> m_wndView.mtext[i][j];
}}
と,このようなことが書いてあり,意味がわかりません.というか,コンパイルが全くとおりません.ダイアログベースでもこのSerializeというのは使うんですか?
0706デフォルトの名無しさんNGNG
m_wndView' : 定義されていない識別子です。
error C2228: '.m_nRMax' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.m_nRPos' : 左側がクラス、構造体、共用体ではありません。
error C2228: '.m_nCPos' : 左側がクラス、構造体、共用体ではありません。
error C2065: 'RMAX' : 定義されていない識別子です。
error C2065: 'CMAX' : 定義されていない識別子です。
・・・
このようなエラーが出ます.
0707デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1014057520/887-
でがいしゅつです。
てかそのコードにはCXXXViewクラスが必要です。
0708デフォルトの名無しさんNGNG
>>707
ありがとうございます.
一応見て見ます.
CXXXViewクラスの意味もよく分かりませんが,がんばります.
...
0709陰唇マンNGNG
>>683
値だけ書き出してgnuplotで描くってのは?
0710デフォルトの名無しさんNGNG
>>706
そのエラー内容は直接シリアライズとは関係ないけどな。
0711708NGNG
>>710
また一から作り直して,
また同じエラーがでました.今,本を一から見直しているところです.
またわからなければ
またお願いします.
0712デフォルトの名無しさんNGNG
>>699
そっちのスレでの497だけど、問題なくマクロも起動できてるよ。
0713デフォルトの名無しさんNGNG
>>711には、プログラムの勉強の前に日本語の勉強を薦めたい。
http://www.amazon.co.jp/exec/obidos/ASIN/4121006240/uselesspgsnes-22/250-871/250-8714597-7391437
0714デフォルトの名無しさんNGNG
C++とJavaではC++の方が汎用性高いですか?
0715デフォルトの名無しさんNGNG
>>714
そらね。
0716デフォルトの名無しさんNGNG
Visual C++を使ってると
 
Msdevが原因でMFC42.DLLにエラーが発生しました。
Msdevは終了します。
問題が解決しない場合は、コンピュータを再起動してください。

となります。
再起動したのですがまたこのエラーが発生しました。
どうすればいいのでしょうか?
0717デフォルトの名無しさんNGNG
>>716
プロジェクト→設定→MFCを使用しないを選択
0718716NGNG
共有DLLでMFCを使用
となっていてそれを変更できません。
0719デフォルトの名無しさんNGNG
フォントのインストールについて質問です。InstallShield 等使わずに独自の
インストーラで処理する必要があるのですが、二つの点でつまっています。

1. フォントを格納すべきディレクトリを示すレジストリエントリの存在
2. フォントはディレクトリにコピーするだけで、インストールされるのか?

ご存じの方おられましたらよろしくお願いします。
0720デフォルトの名無しさんNGNG
>>719
1.%WINDIR%\Fonts
2.copyコマンドか何かで試せばよかろう。
0721デフォルトの名無しさんNGNG
MFC初心者です・・・
このMFCの糞さをぶつけられるスレか掲示板を教えてください。
0722デフォルトの名無しさんNGNG
ここでいいじゃん。
賑わってないし
0723デフォルトの名無しさんNGNG
>>719
SHGetFolderPathにCSIDL_FONTSを渡せばFontsフォルダが取得できる
0724デフォルトの名無しさんNGNG
初心者がぶつけるとたいがい糞スレ化するよな・・・
0725デフォルトの名無しさんNGNG
char gorua=3000;
CListBox* b=(CListBox*)GetDlgItem(IDC_LIST1);
b->InsertString(-1,&gorua);
これで、リストボックスに3000と表示することができました。
でも
int morua=3000;
〜ここで計算などして〜
CListBox* b=(CListBox*)GetDlgItem(IDC_LIST1);
b->InsertString(-1,&gorua);
これでは3000は表示されませんよね。
なにがいいたいかというと、
数字をピクチャーかリストボックスかに表示させたいのですが、
このInterStringの変わりになにをつかえばいいのでしょうか?
itoaとかを使ってchar型にしてからInterStringをつかうんでしょうか?
0726デフォルトの名無しさんNGNG
>>725
要するに数字を文字列にしたいってことかな?
sprintfとかMFC使ってるならCStringのFormatとか。
0727デフォルトの名無しさんNGNG
でっ、できた!!!
>>726
ありがとうございました!そうですsprintf使ってます。

〜余談〜
こないだぐらいから、VC++の本を二冊買ってきたのですが、
中のC++についてはあまり書いてなかったので、さらにC++の本も買ってきたんですが、
なんか、C++の本の中では
cout << 〜〜
とかが多用してあって、でもVC++のほんの中では一回も出てこないんです。
こりはひょっとしてぜんぜん違うものを買っちゃったんでしょうか?
というような厨です。今後ともDQNな質問をするかもしれませんが、よろしくお願いします。ペコリ
0728デフォルトの名無しさんNGNG
cout<<は忘れれ
0729デフォルトの名無しさんNGNG
>>728
じゃ、かっちまった本は全体的にワスレレゆうことでちか?(・ρ・)ポケー
cout <<だの
 >> cinだの ・・
0730デフォルトの名無しさんNGNG
VC++をやろうと思ったらやっぱりC++の本も必要ですよね?
VC++に役立つC++の本でオススメなのがあれば教えて下さい。
独習C++?

僕適には、決め事がつらつら書いてあるのより、
例文というか、例プログラムがたくさんのってるほうが実用上参考になって手っ取り早いんですが。。ガイシュツ?
0731デフォルトの名無しさんNGNG
sourceforge.net
0732デフォルトの名無しさんNGNG
>>731
http://sourceforge.net/
↑これがなに?
0733デフォルトの名無しさんNGNG
参考プログラムがごろごろ
0734730NGNG
>>733
なるほど、ちょっと見てみます。
ありがとです。
0735デフォルトの名無しさんNGNG
MFCは.NETとかC#に取って代わられるらしいが。
いったいどれだけ糞を巻き散らかす気ですか?
0736デフォルトの名無しさんNGNG
>>735
.NETってオブジェクトの解放が基本的に必要ない。
精神衛生上よくないっす。

C#から入門してC++に行ったらとんでもないことになりそうっす。
0737デフォルトの名無しさんNGNG
>MFCは.NETとかC#に取って代わられるらしいが。
この一行だけで知ってる単語を並べただけな感じが。
つーか煽りUZEEEEEEEEEE
0738デフォルトの名無しさんNGNG
たのみます!1変数のマイナス演算子と2変数の減法演算子との異なる点を挙げよ。
っていう問題を教えてください
0739デフォルトの名無しさんNGNG
単項演算子と2項演算子、いじょ
0740デフォルトの名無しさんNGNG
735
× MFCは.NETとかC#に取って・・・
○ COMは.NETとかに、javaとかVBはC#に取って・・・

カテゴリ違いだ
0741デフォルトの名無しさんNGNG
738
すれ違い
0742730NGNG
えーと、厨な質問です。
textファイルを開いて、それを配列に格納→計算ということをしようと思っているのですが、
FILE *testbuff;
int suuji[30];

testbuff = fopen( "test.txt" , "r" ); //test.txtを開いてtestbuffに入れ・・
for (int i = 0; i<10; i++){
fscanf (testbuff , "%d\n" , &suuji[i]); //testbuffかたsuuji[]という配列に格納して計算に使用したい。
}
こういう↑のをいれると、コンパイルは通りますが、実行時にどうしてもfsanfのエラーで強制終了になります。
どうしてですか?
そもそもfscanfは使えないんでしょうか?
0743デフォルトの名無しさんNGNG
>>742
本当に10行あるのか小一時間。
通常はfscanfの返値で判断するっす。
0744デフォルトの名無しさんNGNG
テキストファイルの内容をコピペしてくだされ
0745デフォルトの名無しさんNGNG
それよりもfopenでちゃんとエラーのチェックしろよ。
0746730厨NGNG
>>743
早速の返答サンクスです。
test.txtのことですか?
それは
691
698
740
・
・
・
このようなのが100行以上続いています。。
返値ですか。。では返値についてもう少し調べてみます。。
ちなみにデバッグの画面では、
int __cdecl fscanf (
FILE *stream,
const char *format,
...
)
/*
* 'F'ile (stream) 'SCAN', 'F'ormatted
*/
{
int retval;
va_list arglist;
va_start(arglist, format);
→ _ASSERTE(stream != NULL);←ここに矢印が。。
_ASSERTE(format != NULL);
・・・
これは、testbuff(仮名)に値が入ってきていないということでしょうか?
それか、callocとか使ってメモリを確保しておく必要があるということでしょうか?(←ぜんぜん関係ないかも)
0747730厨NGNG
>>745
そうですね。
そもそもfopenで開けていない可能性が高いですね。
使用しているテキストファイルは
691
698
740
756
756
747
717
774
786
・
・
このような感じのものです。。200行くらい延々続きマス。
0748デフォルトの名無しさんNGNG
>>742
・質問の最初のレスはageよう
・testbuffにNULLが入ってないか?fopenのヘルプを見よう。
if ( ( testbuff = fopen() ) != NULL ) {
処理
} else {エラー処理}
ぐらいが普通の書き方。

・fscanfの\nは要らんと思う(単に無視されるだけだが)
0749730NGNG
>>748
ご丁寧にありがとうございます!
前回sageにしたままになってました。。
で、
if(( testbuff = fopen("test","r")) != NULL ){
}
else{ c->InsertString(-1,"ダメダコリャ");
}
としたところ、やはりリストボックスcにダメダコリャが。。
ちなみにlongは%dでOKですよねぇ。。どうやらfopenの時点で失敗しているようです。
fopenを見直しながらもうすこし、粘ってみます。。
0750デフォルトの名無しさんNGNG
==NULLにしとけ。
0751730NGNG
>750
やってみます。。
ありがとうございます。
0752730NGNG
すみません、やっぱりだめです。昨日からずっとやってます。
void CTestDlg::OnOK()
{
CListBox* c=(CListBox*)GetDlgItem(IDC_LIST2);
///////ファイルtestを開く/////////
if((RRdata = fopen("test.txt","r")) == NULL ){
c->InsertString(-1,"OPEN失敗");
}
else{ c->InsertString(-1,"OPEN成功");
}
}これでやはりNULLを返しているようで、OPEN失敗が出ます。( ´Д⊂ヽ
こんな単純なプログラムが動かなくて、というか、ファイルすら開けなくて、もう泣きそうです。しにたいです。
どうすればいいんでしょうか?fopenを使わないほうがいいんでしょうか?またそれはどんな方法がありますでしょうか?
なんでもいいので、アドバイスください。
0753730NGNG
↓あ、ちなみにこれは外で宣言しています。
FILE *RRdata;
0754デフォルトの名無しさんNGNG
実はtest.txtが無いとか
0755730NGNG
debug
→〜〜.exe
→test.txt
と、exeとおなじフォルダに入れてあります。
リムーバブルディスク(E:)MO上でやってるんですが、それが原因でしょうか?
ちょっと移動させてやってみます。。
0756デフォルトの名無しさんNGNG
test.txtが無いんでないの?
アクセスできる場所にファイルを置いてフルパスで指定することを試してみては。
fopen("C:\\test.txt","r")
みたく。
0757デフォルトの名無しさんNGNG
実はリリースモードになっている罠
絶対パスで指定してみるべし。
0758756NGNG
激しくかぶたーよ
0759デフォルトの名無しさんNGNG
>>755
exeと同じフォルダじゃなくて、
ソースファイルとかと同じフォルダにしてみそ。
0760730@ティンカスNGNG
あっ!
今朝方、こうなったら一からやり直そうと思って、
あたらしくつくったんですが、そのときにtext.txtを移動させるのをわすれてますた。
で、コピーしてやってみたら
で・き・た!

それにしても、昨日までのプログラムと本質的には変わってないはずなのに、どうしてできなかったんだろ。
しまいには、コメント行にエラーがでるようなパルプンテぶりでした。
ともあれ、もうすこし修行をつみます。厨に付き合っていただき、ありがとうございました!×2
0761730@ティンカスNGNG
>>756
フルパスの指定の仕方はこうやるんですね。
後学のためにメモっときます。(ほんとなにもわからんのですハイ)
>>759
これも覚えておきます。

とにかくありがとうございました!
ま、これから・・なんですが。藁
0762デフォルトの名無しさんNGNG
カレントフォルダに期待するのはやめたほうが無難だーね。
0763名無しさん@EmacsNGNG
Unix 使いが VC やらさせられとります。どなたか愛の手を・・・

ファイルを新規作成で追加してそれをコンパイルしようとすると
「プリコンパイルヘッダが無い」とか言って「不正なEOFを検出」とか言われるん
ですが、なんとかならんでしょうか。
# 今手元に環境が無いんでメッセージがウロ覚えです。スマソ。
一応今はファイルを追加するたんびにプロジェクトの設定か何かでプリコンパ
イルヘッダは使用しないようにすれば良い事は分かったのですが、追加のたび
にこんな事やらにゃいかんのですか?何か他に解決策があったら教えて下さい。
教えてクンでスマソ
0764デフォルトの名無しさんNGNG
>>763
最初からプリコンパイルヘッダのない空のプロジェクト作成してファイルを付け加えていくか、
cppのファイルすべての先頭に、#include "stdafx.h"を付けるべし。
0765デフォルトの名無しさんNGNG
>>763
プロジェクトごとプリコンパイル済みヘッダーを使用しない設定にすれ。
設定ダイアログの左のツリーで適用範囲を選んでからやってみれ。

それか、ソースファイルの頭に#include"stdafx.h"(デフォルトの場合)
を追加してみるといいことがあるかも。
0766デフォルトの名無しさんNGNG
かぶった・・・
0767763NGNG
>>764,765
そーゆー事ですか。ありがとうございます。
stdafx.h をincludeする方で行かせて頂きます。

いやー統合環境って分かんないですわ・・・(汗)。
きっと慣れれば色々自動的にやってくれる便利な環境なんでしょうね。
とにかくありがとうございました。
0768デフォルトの名無しさんNGNG
フォルダとかファイルとかのアイコンリソースをWindowsで使われてるやつを
そのままパクリたいんですけど、どこからインポートしたら良いんですか?
探してるんですけど、なかなか見つからない。
0769デフォルトの名無しさんNGNG
適当になんかのショートカットアイコン作ってそのアイコン変更で
見たらええよ
0770デフォルトの名無しさんNGNG
最近になってSTLを触りはじめたんですが、
std::auto_ptrや各種コンテナのiteratorでIntelliSenceのメンバ表示機能が働きません。
こういうものですか?
0771デフォルトの名無しさんNGNG
そういうものです
0772770NGNG
>>771
ほ・・・本当は何かウマーイ方法があったりするんでしょう・・・?ドキドキ(・∀・)
0773デフォルトの名無しさんNGNG
ありません、あきらめてください。
IntelliSenseにテンプレートを展開してくれる様な便利な機能は備わってません
0774770NGNG
ウワァァァァーーン(´Д⊂)











アキラメ マスタヽ(´∀`)ノ
0775デフォルトの名無しさんNGNG
漏れはそれが原因でauto_ptr(やboost)使うのさけてる。
0776デフォルトの名無しさんNGNG
>>775
そいつは本末転倒っぽい気が…

(VC.NET だとできたりするのかなぁ)
0777デフォルトの名無しさんNGNG
>>776
俺もVC++.NETでの対応に期待してたんだけど、やっぱり駄目みたい。
クラスインスタンス生成時の例外によるクリーンアップは、スマートポインタを使わずに、
コンストラクタでヌル初期化、メンバ関数で実初期化って、ごまかしてる・・・。
デストラクタをいちいち書かないといけないのが面倒。
0778708NGNG
この間fopenに関する質問をした者です.
あれから,フルパスで指定するなどして,openはエラー無く出来るようになったんですが,その内容を確認するところでまた詰まっています.以下のプログラムで,
FILE *buff;
int RRdata[300];

void CMyadDlg::OnButton6()
{
CListBox* c=(CListBox*)GetDlgItem(IDC_LIST2);

if((dataall = fopen("C:\\test.txt","r")) == NULL)
c->InsertString(-1,"File opne error");

for (int i=0;i<3000;i++){
if (fscanf(buff,"%lf",&data[i]) == EOF )break;

CString datatext;
datatext.Format("%05d",data[i]);
c->InsertString(-1,datatext);
}
【test.txtの内容】{
671
673
638
}
【結果】リストボックスに
00000
00000
00000
と表示されてしまいます.なぜでしょうか.
671
673
638  ←と表示されることを期待しているのですが..
これもいろいろとためしてはみたのですが,
例えばアドレスを表示させようとしてみると,
フフフフ・とかわけのわからん文字が出力されます.これはこんなものですか?
0779デフォルトの名無しさんNGNG
何か書くたびに裏で常にC++のソース解析が入ってるのかと思うと寒気がするぞ。
今の . -> :: 等が入力されるときにメンバーを列挙する仕様だけで十分
0780708NGNG
すみません,プログラムに間違いがありました.
FILE *buff;
int RRdata[300];

void CMyadDlg::OnButton6()
{
CListBox* c=(CListBox*)GetDlgItem(IDC_LIST2);

if((buff = fopen("C:\\test.txt","r")) == NULL)
c->InsertString(-1,"File open error");

for (int i=0;i<3000;i++){
if (fscanf(buff,"%lf",&data[i]) == EOF )break;

CString datatext;
datatext.Format("%05d",data[i]);
c->InsertString(-1,datatext);
}
↑これを使っています.
0781デフォルトの名無しさんNGNG
data[i]の型がdoubleならFormat()の%05dが
intならfscan()の%lfが間違ってる。
0782708NGNG
FILE *buff;
int data[300];
また間違えてました.
int data[i];
なので,fscanfの%lfをかえてやってみます.
0783708NGNG
>>781
できました!
いろんなとこ換えていろんなこと試したのに,どうして気づかなかったんだろう..
ほんと,感謝です!
あっさり解決したので,感動しますた.(´д`)

これさえ出来れば,解析用のソースはあるので,
軌道にのりそうです.ありがとうございます!
0784デフォルトの名無しさんNGNG
>>773
ん? 展開できないのはtempleteではなくてtypedefだと思うが。
まぁどっちにしろ使えないのは一緒だけど。
0785デフォルトの名無しさんNGNG
コンソールアプリですが、コンパイル、ビルド、実行しても
結果がうまく表示されません。
というのは、表示されるんですが、一瞬でウィンドウが閉じてしまいます。
なんでですか?
0786デフォルトの名無しさんNGNG
実行が終わったらすぐ閉じるのが普通。
出力結果が見たいならDOS窓から実行してあげなさい。
ちなみに、リダイレクトを使えば出力全部も見れるよ。
0787デフォルトの名無しさんNGNG
終了する前にgetch()を呼ぶ
0788デフォルトの名無しさんNGNG
hello worldアプリケーションでプロジェクト作成したら
最後に<Press any key to continue>でるけど、漏れのだけ?
0789785NGNG
>>786
学校でやってたんですが、周りの人はウィンドウ表示が継続されてましたよ?
0790デフォルトの名無しさんNGNG
789
先生の言うことはよく聞きましょう。
0791デフォルトの名無しさんNGNG
デバッグ実行は速攻消える
デバッグ無しで実行は消えない
もし消えるならどこか腐ってる
0792デフォルトの名無しさんNGNG
c形式の関数の実装に
extern "C"
ってやらなかったらどうなるの?
0793デフォルトの名無しさんNGNG
てめぇ、伝家の宝刀抜くぞ
0794デフォルトの名無しさんNGNG
>>792
C++形式になる。
多分モジュールにしてCから呼ぼうとした時にリンカが困るかと。
0795yamamotoNGNG
既出かもしれませんが(突っ込まないで〜)、WindowsXPでVC6入れてる人
いますか?
コンパイルとかは普通に通るんですけど、実行すると固まります。
ウインドウが出るまでF10、F11で、ステップ動作させると、後は
問題なく動くんです。
exeも2000とかで実行すると問題ないんです。
2000マシンでは一度もこういった事なかったんですが、XPプリインストール
マシンに変えてから、こうなってしまいました。
検索したら、やはり他の掲示板でも同じような状況の方いるようなのですが
解決方法がわかりません。
わかる方いましたら、ご伝授ください。

WindowsXP+VisualStudio6エンタ
です
よろしくお願いします。
0796紅孔雀さんNGNG
今、日付を管理するクラス(DATE)を作ってい、「 << 」をオーバーロードして、
DATE date("2000/01/01 00:00:00"); //クラス内では年月日などをint型変数に入れている
cout << date;
とすると「 2000/01/01 00:00:00 」と出力されるようにしたいのですが、分からない事があ
るので、分かる方おりましたらお教え下さい。ソースは最小になるように変更しています。

#include <iostream>
using namespace std;
class PIYO {
int hoge;
public :
friend ostream &operator << (ostream &stream,PIYO &piyo);
};
ostream &operator << (ostream &stream,PIYO &piyo) {
stream << piyo.hoge; //←
return stream;
}

こうすると「 //← 」の位置で「privateメンバにアクセスできません」というエラーが
出てしまいます。「 friend 」を付けているのでプライベートメンバにアクセスできるはず
だと思うのですが。また次のようにクラス内で宣言と定義を同時に行ってしまえばなぜかエ
ラーは出ません。

class PIYO {
int hoge;
public :
friend ostream &operator << (ostream &stream,PIYO &piyo) {
stream << piyo.hoge;
return stream;
}
};

使用している開発環境は VisualC++6.0 Standard Edition で、サービスパックは入れてい
ません。質問したい内容をまとめると「最初のソースでなぜフレンドにしているのにプライ
ベートメンバにアクセスできないのか」、「最後のソースのようにするとなぜエラーが出な
くなるのか」ということです。C++については「独習C++」という本を読んだ程度で全
ての機能については知りません。
0797デフォルトの名無しさんNGNG
>サービスパックは入れていません

とりあえずイレロ。話はそれからだ。
0798デフォルトの名無しさんNGNG
サービスパック入れろ
家じゃそのソース通ったぞ
0799紅孔雀さんNGNG
>デフォルトの名無しさん方
どうもお騒がせしました。早速サービスパックダウンロードしに行ってきます。
m(__)m
0800カミーゆNGNG
サービスパックってネカフェでダウンロードできるらか?
0801808NGNG
Pentiumバグ命令(FIST/FISTP)を使うかどうかを設定できるチェックボックス
がどこかにあったと思うのですが、いくら探しても見つかりません。
どなたか教えてください。

ちなみにSP5をあててます。
0802808NGNG
age
0803808NGNG
さげちゃった・・・。
0804デフォルトの名無しさんNGNG
MSDNの

Pentium FDIV のチェック
Pentium プロセッサのバグ対策
Pentium FDIV のバグ チェック

を調べると割り算とかTANとかしか出て来ないから、コンパイラはFISTを回避した
コードしか吐かないようになってるんじゃないですか?(多分)
0805808NGNG
いや、確かにあったんです。
「Pentium〜なんとか〜を回避する」とかいう名前のチェックボックスでした。
しかし見つからない。思い違いなのかな・・・。
0806デフォルトの名無しさんNGNG
すみません。技術力のないPGです。お願いします。

SDIプログラムからもう一つウインドウを開かなければならなくなりました。
ダイアログなら簡単ですが、お客さんの要望で、「ウインドウ」に
しなければなりません。

掲示板に書き込めるほど単純ではないと思うのですが、
流れとか使うAPIとか、あるいは書籍やWebサイトなど、
ヒントだけでも教えていただけないでしょうか?

VC++6.0/MFCを使っていますが、SDK式でもヒントになります。

よろしくお願いいたします。
0807デフォルトの名無しさんNGNG
CreateWindowEx
0808デフォルトの名無しさんNGNG
MFCなら、
CCreateContext
LoadFrame
あたりを参照。
0809デフォルトの名無しさんNGNG
もーどれすだいやろーぐ では いかんのか?
0810デフォルトの名無しさんNGNG
>>807 >>808
ありがとうございます。がんばって検索中です。

>>809
モードレスダイアログを普通のウインドウっぽく見せられるんでしょうか?
それならその方が...氏にそうす。
0811デフォルトの名無しさんNGNG
810
素直にMDIにするか、もう1個アプリケーションを作った方が楽だと思われ

普通のウインド???
 →クライアント領域とタイトルバーシステム領域がある→CViewかその子分
0812デフォルトの名無しさんNGNG
もう一つのウインドウがそのアプリケーションと同じ物なのか、
それとも、全く別のウインドウなのかによって答えがずいぶん変わる
0813708NGNG
コンパイル,ビルドが通り,実行すると
Debug assertion failed!という
エラーが出て,デバッグをしようとすると,
..\VC98\MFC\SRC\STREX.CPP
のウインドウが開き,
・・・
case 'p':
va_arg(argList, void*);
nItemLen = 32;
nItemLen = max(nItemLen, nWidth+nPrecision);
break;

// no output
case 'n':
va_arg(argList, int*);
break;

default:
→ ASSERT(FALSE); // unknown formatting option
}
}

// adjust nMaxLen for output nItemLen
nMaxLen += nItemLen;
default:
・・・
上記の→のところで,エラーを吐いている模様です.
こんなエラーにどなたか心当たりのある方いらっしゃいますか?
0814デフォルトの名無しさんNGNG
自分で書いたコードのどこで発生したか特定しないと
0815デフォルトの名無しさんNGNG
>>810
新しくウインドウを開くのは、LoadFrameに適切なパラメータを
与えればすぐできると思うけど、そのまえに仕様を深く考えてみたかい?
新しくウインドウを開くと言う事は、モーダルじゃないって事。新しい
ウインドウとは無関係に、元のウインドウのクローズボタンを押されると
言う事だよ。
一応MFCにはCanCloseFrameとか、色々なサービスは用意されているけど、
この点で矛盾が無いように、コーディングの前によく検討する事をお勧め
するよ。
0816デフォルトの名無しさんNGNG
813
晒すべコードは、ちみの Format();の引数だと思われ。
0817デフォルトの名無しさんNGNG
すいません。動的割り当てがうまくいかないので教えてください。
char *a;
if (a != 0) {
delete [] a;
}
a = new char[10];
と書いたのです。(MFC内で書いたのですが)
すると、コンパイルエラーは出ないのですが、deleteの部分で
実行中にエラーが出ます。
教えてください。
0818デフォルトの名無しさんNGNG
char * a;
a = new char[10];
・・・
delete a;
か
char * b = new char[10];
・・・
delete b;
か
char (*c)[10] = new char[5][10];
・・・
delete[] c;
のどれかでしょう。
0819デフォルトの名無しさんNGNG
a = NULL;
if(a != NULL)
 delete [] a;
a = new char[10];
0820デフォルトの名無しさんNGNG
有難うございます。
0821708NGNG
>>816
どうしてわかるんですか!!ありがとうございます.
原因は,
一箇所,
〜〜.Format( %l , double );
となっていました.doubleを%lに格納しようとしたためのようです.
どうもありがとうございました.
0822デフォルトの名無しさんNGNG
>>821
>>816はスーパーハカーだから。
0823デフォルトの名無しさんNGNG
はじめまして、今日からVC++6.0を始めたものなのですが
質問させてください

ダイアログ型アプリケーションをAppWizardで作成して、そこに
ボタンを配置しました。
そのボタンをClassWizardでクラスを追加するところまで着ました。

そしてメンバ関数「OnButton1」のコード編集をすると言う状態です。

void CTestDlg::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

}

ここにボタンが押されたときのコードを追加したいのですが、よくわからないのです

やりたいことは、指定したエクセルなどのファイルをエクセルで開くということです
(ボタン一発でファイルを開きたいです)

c:\hoge\excel.exe \\fileserver\hoge\hoge.xls

このような感じのコマンドをボタン押したら実行できるコードはどのような関数を使
ったらよいのでしょう?

そのほかスマートなやり方などあれば御教授お願いします
0824デフォルトの名無しさんNGNG
ふつー、xlsファイルに対してShellExecute。
0825デフォルトの名無しさんNGNG
全部2chで質問してマスターするつもりなのかな・・・
0826823NGNG
>>824
ありがとう!!
ShellExecuteをキーワードにいろいろ探したら見つかりました

HINSTANCE hInst = ShellExecute(NULL,"open",
"ファイルの場所",NULL,NULL,SW_SHOWNORMAL);

感謝してます


>>825
そのつもりは無いんだけど、そう思われても仕方ないですね
これからもっと勉強します
0827810NGNG
>>815
ありがとうございます。
新しく開くウインドウそのものは、(今のところ)データ表示だけです。
(だからダイアログでもいいわけですが。;;)

おっしゃるようにCFrameWndオブジェクトをnewで生成し、LoadFrameやって、
ShowWindow、UpdataWindowで表示できました。

>ウインドウとは無関係に、元のウインドウのクローズボタンを押されると 言う事だよ。
ご指摘ありがとうございます。大モトのウインドウの終了時にdeleteしてやろうと思っています。

あんまり聞いてしまって申し訳ないと思ってますが、もし、上の方針がおかしければ、
教えてください。

今日は徹夜のようです。
0828デフォルトの名無しさんNGNG
>>805
コンパイラオプションの /QI0f 、 /QIfdiv
0829デフォルトの名無しさんNGNG
すいません、VC++初心者です。
初心者スレが埋もれているので、ここで質問させてください。

Debug版のバイナリはある程度安定して動くのですが、Release版のバイナリは
「不正な処理が」のエラーがでて動きません。

一般論としてどういう風にデバックすればよいでしょうか?

デバッガ上は下のようなメッセージが連発してます。
'xxx.DLL' をロードしました、合致するシンボル情報は見つかりませんでした。

それからDebug版でも
 Warning: skipping non-radio button in group.
というようなエラーメッセージがでてます。

Release版が動かないことと、上の二つのメッセージは直接関係ないと思って
いるのですが、いかがでしょうか?
0830デフォルトの名無しさんNGNG
直接関係はないが、そのうち不具合がでるかもね。

Releaseにしたら動かないのは、ほとんどが未初期化の変数を使っている場合。
コンパイラの警告メッセージで「未初期化の」ってでるはずだから、
それを無視せずにきちんと初期化してから使うようにしなさい。

たまーに、#pragma warningとかでその未初期化の警告を表示しないようにしてたりする
糞コードや、コンパイラの警告レベルをデフォルトよりも低く設定してるケースがあるので、
プロジェクトの共通インクルードファイル(stdafx.hみたいなの)やコンパイラの設定を
確認しなさい。

それでもダメなら、解放したメモリを再度アクセスしてないかとか、
配列のサイズを超えてアクセスしてないかとか見なければいけないが、
その前に、どういうエラーがでて止まるのかをきちんと調べなさい。

レアケースで、コンパイラの最適化バグというのもあるが、
それを疑うのは10年速い。
0831デフォルトの名無しさんNGNG
VCでデータベース操作を試みて挫折した者です。
VBのデータコントロールなら分かります。
C#はデータベース操作に向いていますか?
C#買ったらWin98に対応していないことに気づき鬱になりました。
すれ違いですがマジレスしてください。
0832デフォルトの名無しさんNGNG
なんでスレ違いでマジレスせにゃならんの?
0833デフォルトの名無しさんNGNG
831
VC挫折する前にウィザード使わなかったのですか?
(VC6はもしかしてEnterpriseEditionでないと付いてないのかな?)
C#はWin9X不可なんですか。こりゃ使えん。
0834デフォルトの名無しさんNGNG
>>831>>833
根も葉もない噂流すのやめてもらえるか?
VS.NETだけだよ。NT専用は。
Frameworkは98以降すべて対応。
SDKはしらん。
0835デフォルトの名無しさんNGNG
>>834
横からなんだが、833には罪はないぞ
0836デフォルトの名無しさんNGNG
>>834
実行環境、開発環境どっちのハナし?
0837デフォルトの名無しさんNGNG
>>834
831にも罪は無い。よく読まないおまえが悪い。
831はOSを乗り換える事をお勧めする。
0838デフォルトの名無しさんNGNG
かなり激しく過激な質問なんですけど、

VC++やってるんですよ今。
そんで秋には基本情報受けるんですよ。

まず基本のソースを覚えないといけないんですけど
Cって2タイプあるじゃん。
<stdio.h>→printf("猫好き");
<iostream.h>→cout<<"猫好き";

どっちをやるべき?、まあ両方やっとかないといけないだろうけど
まずはどっち?おレ的にprintの方だと思うんだけど。
基本情報の午後の試験でCを選らんだ場合、こっちがでるよね。
しかもVCやってると変数の表示とかでprintfは使うけどcoutなんか
使わないしさ。どっちがいいのだろうか?
0839デフォルトの名無しさんNGNG
>>838
日本語か一般常識のどちらかだな
0840デフォルトの名無しさんNGNG
streamを使うのは物好きかalgorithmと組み合わせるときだけ
0841デフォルトの名無しさんNGNG
>>838
まずC入門書を一冊読んでください。
0842デフォルトの名無しさんNGNG
>>840
さんきゅー
やっぱprintfだよね。
プログラムの勉強のHPいってもみんなprinfだしさ。

大学でcoutの方なんか教育してるんですよ。まあ一応覚えたけどさ。
もう見てらんない。VCやりだしたら全然使わないし。
0843デフォルトの名無しさんNGNG
>>842
お前の発言が見て欄内。。。
0844デフォルトの名無しさんNGNG
>>842
stream自体は結構使うが?
coutをcout << hogehoge;のように生で使うことがあまり無いだけ。
手で書いていくならprintfの方が体裁を整えやすいから。
とりあえず、<iostream.h>なんてやってるうちは覚えたウチに入らない
0845デフォルトの名無しさんNGNG
>>842
あんたイタすぎるよ
0846デフォルトの名無しさんNGNG
>>845
吉野家コピペの見すぎと思われ(w
0847デフォルトの名無しさんNGNG
使用しているとMsdevが原因でMFC42.DLLにエラーが発生しました。
Msdevは終了します。

問題が解決しない場合は、コンピュータを再起動してください。


となりました。再起動してもまたエラーが発生してしまいました。
どうすればいいのですか?
0848デフォルトの名無しさんNGNG
マルチした責任を取って首を吊ればいいと思う
0849デフォルトの名無しさんNGNG
>>847
format c:
0850親切な人NGNG

ヤフーオークションで、凄い人気商品、発見!!!

「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0851デフォルトの名無しさんNGNG
>>838

そもそも「C」にstreamなどない。
0852デフォルトの名無しさんNGNG
>>849
氏ね
0853デフォルトの名無しさんNGNG
初心者な質問ですみませんが。

エディットボックスや、リストボックスに書き込みできる文字数を
VBのプロパティのマックスレンジのように指定したいのですが、
(指定したケタ以上は入力を受け付けない)

VBのようにコード以外で設定する方法はあるでしょうか?
いまは余剰桁が入力されたら、その直前の状態に戻すやり方で
やっているので、動きの見た目がわるくて・・






0854デフォルトの名無しさんNGNG
�@か�Aのどちらか
�@
・クラスウィザード[変数]でダイアログクラスに変数の追加
・エディットボックスをCString 型にして変数名を入力
・最大文字数を指定


�A
メンバを追加
CString m_strEdit1;

DoDataExchange()で
DDX_Text(pDX, IDC_EDIT1, m_strEdit1);
DDV_MaxChars(pDX, m_strEdit1, 256);
を実行
0855デフォルトの名無しさんNGNG
>>854
御教授ありがとうございます!
どちらも今後に使えそうな知識なので、
参考にさせてもいただきます
0856デフォルトの名無しさんNGNG
エディットボックスの行間ピッチを変えるのはどうやったらいいんでしょう?
0857デフォルトの名無しさんNGNG
ディスプレイを斜め上から見ればピッチはちじまるぞ?
0858デフォルトの名無しさんNGNG
行間のあるフォントを選んどきませう
0859デフォルトの名無しさんNGNG
>>858 フォントはMS Pゴシック 12ポイントと決定しちゃってるんです・・
0860デフォルトの名無しさんNGNG
試しに聞くけど、なんで行間のピッチを変えたいわけ?
0861デフォルトの名無しさんNGNG
>>860 IEのピッチに合わせたいのです
0862730NGNG
質問内容はCなんですが、適当な(答えてくれそうな)Cの相談室が見当たらず、なおかつスレ立てるまでもない質問はここでのスレで相手にされなかったので、
こちらでおねがいしようと思います。
23┓
21┃→series一回目
24┃
22┃┓
23┃┃→series二回目
23┃┃  ・
22┃┃  ・
・
・
というようなintが改行で仕切られた3万行くらいの長〜いファイルがあり,それをalldataに開いています.
そこから100行くらいのデータを切り取って
itijidataに格納しseries(ポインタ)として解析にぶちこむ.ということをしたいのですが,解析プログラムはわけ分からないのでいじれず,
とにかくポインタで指定したseriesをいれればいいのですが,
どうやら関数の中でseriesをいじっているらしく,上記のように3つずらして次の解析に使用すると前回使用した部分のデータの内容が変ってしまっています.
どのようにする方法があるでしょうか?
いちおう考えてやって見ているのが下記のコードなんですが,

FILE *alldata;
int *series,*data;
int itijidata[200];
alldata = fopen("C:\\test.txt","r");
for(int count = 0 ; count <ファイルの最後まで; count++){
//解析を行うごとにループし・・
data = &alldata[0] + count*3*sizeof(double);
//ここで3つずらして次の解析に必要な頭出しをしてるつもり・・
  for (int i=0 ;i<200 ;i++){
  if (fscanf(data,"%lf",&itijidata[scandata]) == EOF )break;
//ijitidata配列に格納し・・  
}
series = &itijidata[0];
〜ここでseriesを用いた解析をはさむ〜
}
質問は3つです.
◆ファイルからずらして配列に格納するにはどのような方法がありますか?
◆ずらした位置を指定して配列に格納させるようなfscanfに代わるものはありますか?
◆ファイルポインタで指定したものが変更されてしまうのですが,どのようにすればよいでしょう.
なんか混乱してきたので,多分上のプログラムはめちゃめちゃです.鬱
もうわけがわかりません.どなたかアドバイスをおねがいいらします.
0863デフォルトの名無しさんNGNG
>〜ここでseriesを用いた解析をはさむ〜

そこをルーチンとして独立させるのが先かなあ。
0864デフォルトの名無しさんNGNG
>>862が何言ってんだかわかんないのは漏れだけ?
0865デフォルトの名無しさんNGNG
誰かが書いた解析ルーチンがあって、
そこにデータを食わすところを改良するというのをやってるんじゃないかな
0866730NGNG
>>864
どこらへんがわけわからんでしょうか?たしかに自分でもわけわからんと思いますが。。
基本的な質問は、
◆intがなn行もつづく長いファイルから100行程度抽出し解析、次に何行かずらして配列に格納し解析、という風にするにはどのような方法がありますか?
◆ずらした位置を指定して配列に格納させる(上述のようなファイルの中の何行目かを指定して抽出する)ようなfscanfに代わるものはありますか?
主にこれら2つというか、似たような質問なんですが。。。
3つめは配列を二つつくって回避します。
0867730NGNG
>>865
そうです。そうなんです。
だれかがつくってるだけあって、*seriesを渡す、という以外にはとてもいじれそうになくて、
そこでこっちで解析用のseriesを用意して、毎回送り出してやろう、という寸法なんですが、
で、解析には100行程度のデータが必要なんです。
なおかつ、元ある長〜いファイルの全域に渡って解析を行いたいのですが、
その長いふぁいるから100行程度を抽出→seriesとして解析にまわす。ということができずにいるんです。。これが質問1、2になります。
ちなみにseriesはint *series;で宣言してあります。ので余計やっかい。でもないのかな。。

seriesでポイントさせて渡すと、解析が終わったあとに、seriesの中身は改変されています。なので、エリアがかぶったデータは次の解析にはまわせません。
という問題もあります。これが質問3になります。
0868730NGNG
ちなみに>>862のプログラムはめちゃめちゃだと思います。とくに
data = &alldata[0] + count*3*sizeof(double);
//ここで3つずらして次の解析に必要な頭出しをしてるつもり・・から、、
  if (fscanf(data,"%lf",&itijidata[scandata]) == EOF )break;
このへんが(゚Д゚)ハァ?というかんじかと思います。(;^_^A
0869デフォルトの名無しさんNGNG
どんなプログラムか想像つかないから適当に答えるけど、
seriesを解析するAnalyzeSeries(series);があってそれに渡すんでしょ?
解析するには一度に全部のデータが必要なんじゃないのか?
0870730NGNG
>>869
はい。
とりあえず、ひとつだけseries(100行程度のデータ)をわたして解析するということは成功したんですけど、
少しずつずらしてseries(100行程度のデータ)を渡し、連続で解析するというのができずにいます。
0871デフォルトの名無しさんNGNG
AnalyzeSeries(series)を
AnalyzeSeries(PartOfSeries)*いくつか
にしたいってことだろ?
そんなもん、AnalyzSerieseがストリーム処理を受け付けないと無理じゃん
0872デフォルトの名無しさんNGNG
宿題スレに近いものがあるな
0873730NGNG
  if (fscanf(data,"%lf",&itijidata[scandata]) == EOF )break;
↓
まちがえてました。
  if (fscanf(data,"%lf",&itijidata[i]) == EOF )break;
です。
0874730NGNG
PartOf〜〜っていうのが分からないですが、
今、書いてみましたが。これでうごくのかな。今、家なので、ちょっと動作確認できないんですが。。
もっとスマートなやり方はないんだろうか。。
FILE *alldata;
int *series,*data,data[300000],kaisekiyou[100];
alldata = fopen("C:\\test.txt","r");

while(1){
for(int j=0;;j++){
if( fscanf(alldata, "%lf" ,&data[j]) == EOF ) break;
}

for (k=0 ;k<100; K++){
kaisekiyou[k] = data[i+k];
series = &kaisekiyou[0]
//とにかくここまでにseriesに解析用のデータを耳を揃えて提出すれば解析はやってくれる模様
【ここでseriesを使用している】

i++;
}
ちょっと明日これでやってみます。できたかも??
0875デフォルトの名無しさんNGNG
data[300000]
おいおい
0876デフォルトの名無しさんNGNG
一人デスマーチなのか?そうなのか?
0877730NGNG
>>875
そのくらいあるのれす。
なので、なんとか軽いコーディングをめざしたいのですが、上のような例だと
わりと重いですよね。

>>876
オナーニです。
0878デフォルトの名無しさんNGNG
デカい配列はスタック上では無くヒープ上に取りませう。
0879730NGNG
>>878
・・・。うぅ。
がんばってしらべますです。ありがとうございます。
0880829NGNG
レス遅れました。
>>830
どうも親切に産休です。

やはり基本的なメモリの問題ですね。
++初体験なので、どういう初期化がされているのかわからなくて。
文字列代入できるようになってたり、異文化コミュニケーションです。
もらったキーワードを参考につぶしていくです。
0881デフォルトの名無しさんNGNG
FILE*  alldata;
int   dammy_data;
int*  data;
int   kaisekiyou[100];
int   data_max;
int   data_num;
int   i;
int   kaisekiyou_num;
int   inc_value;

data_max = 300*1000;             // data の最大登録数 (30万行)
data_num = 0;                 // data に登録した数
data   = malloc(data_max*sizeof(int));   // メモリの確保
alldata  = fopen("C:\\test.txt" , "r");
while(fscanf(alldata , "%d" , &dammy_data) != EOF)
{
   if(data_num < data_max)
   {
      data[ data_num ] = dammy_data;
   }
   data_num++;               // インクリメント
}
fclose(alldata);
if(data_num > data_max)
{
   printf("配列数が足りね〜ぞ! 可及的速やかに %d 個用意しろ!\n" , data_num);
   free(data);               // メモリの破棄
   exit();                 // プログラム終了
   // data_num = data_max;         // exit() を使わずに継続するなら data_num を調整する必要あり
}
kaisekiyou_num = 100;            // 解析に必要な数
inc_value    = 10;            // ずらすサイズ
for(i=0 ; i<=data_num-kaisekiyou_num ; i+=inc_value)
{
   memcpy(kaisekiyou , data+i , sizeof(int)*kaisekiyou_num);     // 解析用メモリにコピー

   // 解析用の関数に kaisekiyou を渡せば計算するんじゃない?
}
free(data);                  // メモリの破棄


---------------------------------------------------------


fscanf あたりは自信無し。
改行って自動的に処理される?
fscanf なんて原始的な関数は学生時代に使ったきりで以降使用していないので良く分からん。
0882デフォルトの名無しさんNGNG
畳み込みか相関か?
fscanfは空白文字(改行)が現れると次の非空白文字まで読み飛ばす。
0883初心茶NGNG
VC(SDK)でTABSTOPを実装する場合って、サブクラス化するしかないんですか?
あまりにも面倒だと思うんですけど…

WindowsアプリでTabStopが付いてないソフトなんてあまり見ないですよね。
標準の機能だと思うんだけど、実装するのに面倒なのってどうよ?
もしかしたら簡単に実装する方法ってあるんですか?
0884デフォルトの名無しさんNGNG
IsDialogMessage
0885初心茶NGNG
>>884
サンクス。
俺は何を検索してたんだろう。鬱氏。
物理的に逝って来ます。
0886デフォルトの名無しさんNGNG
256色のDIBに対して、TextOut使って文字列を描画しています。
その際、パレットの中から最も白に近い色で描画したいのです。
しかし、SetTextColorでRGB(0xFF, 0xFF, 0xFF)を指定しても
文字が黒くなってしまい、
Red*0.30 + Green*0.59 + Blue*0.11 の値が最も大きくなった
パレットの番号を代わりに指定してもやはり文字が黒くなってしまいます。

しかしSetTextColorの色指定に0や1や2などを指定すると別の色が出るんです。
もしかして256色の場合はパレット番号を指定するのかと
有り得ない考えを起こして、
試しにn番目のパレットのRGB値を確認しながら
SetTextColorの色指定にnを当てて文字列を描画、
という作業を暫く試してみたんですが、
当然ながらパレット番号とは無関係なようでした。

どうやったらスマートに思った通りの色(もしくはそれに近い色)で
文字列を描画出来るでしょうか。
御存知の方いらっしゃいましたら御教授御願いします。
0887デフォルトの名無しさんNGNG
> Red*0.30 + Green*0.59 + Blue*0.11 の値が最も大きくなった
> パレットの番号を代わりに指定してもやはり文字が黒くなってしまいます。

> もしかして256色の場合はパレット番号を指定するのかと
> 有り得ない考えを起こして、

な、なんか話の展開がおかしいですね。
分かり難くなってしまってすみません。
0888デフォルトの名無しさんNGNG
RealizePaletteしてる?
0889デフォルトの名無しさんNGNG
>888
はい。しています。
自前で256色のBMPファイルを読み込む処理も入れているんですが、
画像は綺麗に出ているんです。
0890デフォルトの名無しさんNGNG
ソース貼るべし
0891886=887=889=自分NGNG
物理パレット変更後は、
以下のようにして最も白に近いRGB値を持つパレット番号を算出しています。

  for (i = 0x00; i <= 0xFF; i++) {
    color =
      hb->lpRGB[i].rgbRed * 0.30 +
      hb->lpRGB[i].rgbGreen * 0.59 +
      hb->lpRGB[i].rgbBlue * 0.11;
    if (color > nwcolor) {
      nearwhite = i;
      nwcolor = color;
    }
  }
  FontColor = nearwhite;

そして文字列描画関数をこのようにして呼び出しています。

  SetTextColor(hb->hdcMem, FontColor);
  TextOut(hb->hdcMem, x, y, str, strlen(str));

hbというのは画像処理に使うデータをまとめている構造体です。
0892デフォルトの名無しさんNGNG
>>891
その操作方法違うぞ。
もっとも輝度が高いパレットが選ばれるだけ
0893886NGNG
あ……やっぱ論理パレット見ないで
GetSystemPaletteEntry()で取得してからそれ見ないと駄目なのかな……
0894デフォルトの名無しさんNGNG
SetTextColorはエラーを返してないのか?
GetTextColorで帰ってくる色を確認した?
0895886NGNG
>892
ああっ。そうなんでか。よく判らずやっていました。御指摘ありがとうございます。

でも黒になるというのはおかしいですよね。
それに、実際に算出された最も硬度が高いパレットのRGB値を見ると、
0xFF 0xFF 0xFFになっていたんです。

今思い付いたのですが、テキスト用にバッファを用意して、
一度ZeroMemoryか何かでゼロクリアしてから文字列を描画して、
それを自分でメインのバッファに貼り付ける、という手がありますね。
というかこれをやれば済む話ではあるんですが、
やっぱりスマートな方法は無いのかと……。
もしも解決法が判らなければこのバッファを使った方法を採ります。
お世話になった方々、ありがとうございました。
0896デフォルトの名無しさんNGNG
>894
ぐあっ。確認していませんでした。
今大急ぎで調べると、SetTextColorに関しては
エラーを示すCLR_INVALIDは返していませんでした。
GetTextColorの方も試してみます。
0897デフォルトの名無しさんNGNG
>>895
RGB(255, 255, 255)がある時はそうなるが、
127 255 64 < グリーン
127 127 127 < グレー
の2色を比較したときグリーンが選択される。

で、>>894は?
0898886NGNG
GetTextColorも試してみました。
エラーは返さず、SetTextColorで指定した値がそのまま帰ってきています。
パレット番号を与えた場合はパレット番号がそのまま戻ってきて、
RGB(0xFF,0xFF,0xFF)を与えた場合は0xFFFFFFが戻ってきました。
0899デフォルトの名無しさんNGNG
パレットの選択手順は?
ウインドウとメモリDCに同じパレットを選択してる?
もしくは、ウインドウに選択した後にCreateCompatibleDCやってる?
0900886NGNG
>899
はい。CreateCompatibleDCを行っています。
他のパレット操作はきちんと成功しているのですが、
SetTextColorだけはどうすればいいのかわからなくて……。
0901デフォルトの名無しさんNGNG
色選択はGDIが勝手にやるからRGB指定で良いはずなんだけどね。
0902708NGNG
>>881
ありがとうございます!
今,これで入れてやってみようとしているところです.

で,
data   = malloc(data_max*sizeof(int));   // メモリの確保
↑ここで,'=' : 'void *' から 'double *' に変換することはできません。という
エラーを吐くのですが..
0903デフォルトの名無しさんNGNG
>902
data = (double *)malloc(data_max*sizeof(int));
ってキャストしなされ。
0904708NGNG
あっ!ありがとうございます!
その*がわかりませんでした。..
0905886NGNG
やっぱり>895で言ったテキスト用のバッファを使うやり方で解決しました。
指摘してくれた方々、ありがとうございました。
0906デフォルトの名無しさんNGNG
すみません、853の問題の続きなのですが。
クラスウィザードの
CString系で作ったメンバに
文字数を設定して、エディットボックスはうまく文字数制限
出来たのですが、
コンボボックスだけどうしても制限が働いてくれません。
コードでは

DoDataExchange()  

DDX_CBString(pDX, IDC_EDIT1, m_Edit1);
DDV_MaxChars(pDX, m_Edit1, 20);

という形になっているのですが・・
他の周りでの設定なども必要なのでしょうか。
0907デフォルトの名無しさんNGNG
コンボボックスは
DDX_CBString(pDX, IDC_COMBO1, m_combo1);
DDV_MaxChars(pDX, m_combo1, 20);
だけどウィザード使ったほうが楽です。
0908906NGNG
あ、すみませんさっき例、エディットのときのとかぶってたw
907さんのとおりコードは
DDX_CBString(pDX, IDC_COMBO1, m_combo1);
DDV_MaxChars(pDX, m_combo1, 20);
になっていて、
ウイザードで設定も試してみたのですが、
なぜか稼動しなくて。

907さんお返事ありがとうございました!
0909デフォルトの名無しさんNGNG

おい、WinXP で CPU 使用率とかちゃんと取れてるか?
なぜかアプリが終了しねーぞ。
0910時刻・日付についてNGNG
12345678秒などというのを
〜年〜日〜時〜分〜秒または
〜y〜d〜h〜m〜sと変換するようなうまい関数はないでしょうか?
なければ、modでちくちくやるしかないんでしょうかね?
0911デフォルトの名無しさんNGNG
ジョイスティックからの入力クラスを作りました
しかしDirectInputの入力データ取得はその関数が呼び出された時の
キーのデーターを取得するものなので、60fpsの場合に15ms以下の速さで
入力した場合にキーのデーターを取得できないため
とりあえず一度キーのデーターを取得する関数を
別スレッドから呼び出そうとしたのですが
エラーが出ます、別スレッドを作らないで
ゲームループの中で使用した場合はエラーは出ません。
3週間悩んでいるのですが分かりません、どうかお願いします

http://kobe.cool.ne.jp/solo2000/CInput.h
http://kobe.cool.ne.jp/solo2000/CInput.cpp
http://kobe.cool.ne.jp/solo2000/CInputControl.h
http://kobe.cool.ne.jp/solo2000/CInputControl.cpp
0912デフォルトの名無しさんNGNG
DirectInputはスレッドセーフかどうか調べました?
(ゲ制板で聞くほうが・・・)
0913デフォルトの名無しさんNGNG
>910
strftime、ってこと?
0914時刻・日付についてNGNG
ありがとうございます。
少し調べましたところctime()でできました。
お騒がせしました。もう少し調べてから質問することにします。
0915デフォルトの名無しさんNGNG
editボックス内のデフォルト値ってどうやって設定するんですか?
打たなくても最初から書き込んであるやつです。編集しようと思えばできるってかんじの。
0916デフォルトの名無しさんNGNG
SetWindowText使えばぁ
0917デフォルトの名無しさんNGNG
CString value = 000;
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText(value);
このようにしたけど、IDC_EDIT1の窓には何にも表示されませんが・・・
なお↓これでもだめでした。
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText(000);
なにがいけないんでほう?
0918デフォルトの名無しさんNGNG
それ以前にコンパイルできた?
0919デフォルトの名無しさんNGNG
コンパイルは通りました。
というか、エラーこそ出ませんけど、
警告のアラシです。
intだのcharだのとわめいています。
0920デフォルトの名無しさんNGNG
>>919
エディットボックスの操作はそれで良いが、CStringあるいは charの使い方
が間違い。数字を表示させたかったら、Formatするなり、SetDlgItemInt使う
なりしる!
0921デフォルトの名無しさんNGNG
へい。
ではFormat汁ます。
サンクスコです。
0922デフォルトの名無しさんNGNG
CEdit *にキャストするのは不要。
0923デフォルトの名無しさんNGNG
CString value;
nenn.Format("%d",200);
(GetDlgItem(IDC_EDIT1))->SetWindowText(value);
できないよう。くすん。
0924デフォルトの名無しさんNGNG
おい、nennってなんだ?
小一時間、いや朝まで問いつめるぞ。
0925デフォルトの名無しさんNGNG
nenn? ねんーーーーーって感じ?
0926デフォルトの名無しさんNGNG
CString value;
value.Format("%d",200);
(GetDlgItem(IDC_EDIT1))->SetWindowText(value);
いやん。つっこまないDE
ちなみにこれでも200が表示されません。どぼちて?
0927926NGNG
         _
        /::::::\    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (´∀` )  < ねんねんねんnennVCむかつくねん!
    O--⊂ ×  )   \___________
  (∴) 彡(,,,(,,,(ξ⊃
という感じです。>>925
0928デフォルトの名無しさんNGNG
このスレは
 「1000までに >>915が、エディットボックスに 200という数字を表示させることができるか?」
というスレに変更されました。
0929915NGNG
         _
        /::::::\    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (´∀` )  < ねんねんねんnenn>>928むかつくねん!
    O--⊂ ×  )   \___________
  (∴) 彡(,,,(,,,(ξ⊃
おしえてよ けち。
0930デフォルトの名無しさんNGNG
>>926
それをどこに書いてる?
コンストラクタの中とか言ったら12回ほど死なす。
0931915@天才NGNG
いやー、できたできた(^-^;A

なんやメンバ変数とかいうのをいじって、
m_edit2 = _T("");
こんなのができたところで、""内を変更して
m_edit2 = _T(-""-;) {…。
こうしたところ、無事「(・∀・)」が表示されますた。
やったー。
0932915@天才NGNG
>>930
コンストラクタってなに?てへっ
0933デフォルトの名無しさんNGNG
ダイアログベースのアプリケーションのピクチャでもなんでもないところに、90度傾けた文字を出力したいです。
そこで、あらかじめひょうじしたい個所にピクチャを設け、表示させようとしたんですが、
下記のコードは、hogehogeDlg.cppのどこに配置すればいいんでしょうか?
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
CWnd* hgraph=GetDlgItem(IDC_PICT4);//ピクチャhに関すること
CDC* pgraphDC=hgraph->GetDC();
CRect rgraphpict; //ピクチャの領域サイズをrに取得
hgraph->GetClientRect(&rgraphpict);//ピクチャの領域サイズをrに取得
CFont NewFont;
TEXTMETRIC tm;
CString strText;

NewFont.CreateFont(
24 * 20, //高さ(論理単位)
20, //文字の平均幅(論理単位)
900, //傾斜角度
0, //ベースラインとx軸との角度(0.1度単位)
FW_NORMAL, //文字の太さ(1/1000ピクセル単位)
FALSE, //イタリック指定
FALSE, //下線指定
FALSE, //取消し線
ANSI_CHARSET, //フォントの文字セット
OUT_DEFAULT_PRECIS, //出力精度の指定
CLIP_DEFAULT_PRECIS, //クリッピング精度の指定
DEFAULT_QUALITY, //フォントの出力品質の指定
DEFAULT_PITCH|FF_ROMAN, //フォントのピッチとファミリを指定
"Times New Roman" //フォントのタイプフェイス名
);
CFont* pOldFont = dc.SelectObject(&NewFont);
dc.GetTextMetrics(&tm);
strText.Format("文字文字文字");
pgraphDC->TextOut(rgraphpict.left,rgraphpict.bottom-10,strText);
NewFont.DeleteObject();
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
0934デフォルトの名無しさんNGNG
コード読まずに回答
ピクチャかダイアログのOnPaint
0935デフォルトの名無しさんNGNG
Java Servlet + DBなんですが、

あれは問い合わせ1回ごとにコネクションを開始→問い合わせ→切断、するべきなんでしょうか。
0936デフォルトの名無しさんNGNG
あまちがえた
すまそ
0937デフォルトの名無しさんNGNG
サービス名の日本語使用について聞かせてください。

ATL COM AppWizardでサービスを作成します。
文字列リソースの IDS_SERVICENAME の
キャプションに日本語(2バイト文字)を使用します。
WindowsNTだと特に問題ないのですが、
Windows2000だと、作成したサービスの登録
(-Service)後にサービスのプロパティを見ようとすると
「構成マネージャ:一般内部エラーが発生しました」
と言うダイアログが出ます。エラーが出るだけで
ちゃんとプロパティの中身は出ますが、
これの回避方法はあるのでしょうか?

ちなみに、開発環境は
Windows2000 Server(SP2) + VC++6.0 SP5 です。
どなたか情報をご教示下さい。
よろしくお願いします。
0938933NGNG
>>933の質問ですが、
持っている本には、デバイスコンテキストに表示させるほうほうしか書いてないんですが、
わざわざピクチャを作って、そこに表示するっていう上のようなコードをOnpaint()内に追加したんですが、表示されないんです。
もっと簡単な方法はないんでしょうか?わざわざピクチャを作って表示っていうわずらわしい方法じゃないスマートな方法はないですか?
0939デフォルトの名無しさんNGNG
>> 933

> NewFont.CreateFont(
> 24 * 20, //高さ(論理単位)

の部分のフォントサイズが大きすぎ!!


> pgraphDC->TextOut(rgraphpict.left,rgraphpict.bottom-10,strText);

底辺から10ピクセルの位置に描画してもフォントが大きすぎて余白部分くらいしか画面内に収まらない。(だから表示されない)


> NewFont.CreateFont(
> 20 , //高さ(論理単位)

これくらいのサイズが普通。
0940デフォルトの名無しさんNGNG
ラジオボックスを使用して数字のエディットをさせたい(&その逆)のですが
例:
グループA
ラジオボックス1
ラジオボックス2
グループB
ラジオボックス3
ラジオボックス4
グループC
ラジオボックス5
ラジオボックス6
グループD
ラジオボックス7
ラジオボックス8
以下略
ラジオボックスが奇数ならば+0、
偶数ならば+2^(n/2-1)
といった感じです。
 この場合デフォルトではどのラジオボタンも押されていない状態なので
デフォルトでは奇数がONの状態にしたい、
そして数字のエディットボックスでも指定できるようにしたいのですが、その場合はラジオボタンを
ONChangeEdit()などから操作できないといけないと思うのです。
しかし、クラスウィザードではラジオボタンはメンバ変数を持たないようなので困っています。
こういう場合はチェックボックスを使わないとだめなんでしょうか?
0941933NGNG
>>939
ありがとうございました!
おかげさまでうまくいきました.
もうひとつの原因として,
OnPaint()内の
if (IsIconic() {
}
else {
}
で,if内に書いていたことが問題だったようです.else内に書くと旨く行きました.
0942dis ◆NAfP6znE NGNG
CListCtrl::EditLabel()

を使うと、リストコントロールにEditが出るのですが、
Editを確定した場合、どのようにしてイベントを取ればいいのでしょうか。

おねがいいたします。
0943ssNGNG
Visual C++ってフリーソフト?どこにあるの?
0944デフォルトの名無しさんNGNG
否。このネットワークのどこにでも、遍在し、偏在している。
0945ssNGNG
コンパイラのVisual C++ってある?
0946デフォルトの名無しさんNGNG
>>945
取りあえずshine。
0947dis ◆NAfP6znE NGNG
942 です。
ON_NOTIFY(LVN_ENDLABELEDIT , ***, ***)
で解決しました。
0948デフォルトの名無しさんNGNG
再描画する方法について
Invalidate();
でOSに処理を渡すやりかたは解ります.
しかし,ボタンが押されたらON_BOTTON()を実行し
ON_BOTTON(){
 while(){
//何かの計算をする

  //その結果をグラフに書く
 }
}
をしたいんですが,
計算されてる間に再描画などができなくなります.(あたりまえですが)
どうすればいいのでしょうか?
ダイアログベースで作っているのでON_PAINT()でできないでしょうか?
0949デフォルトの名無しさんNGNG
>>948
スレッドを作ってそっちで計算。
0950デフォルトの名無しさんNGNG
940 > クラスウィザードではラジオボタンはメンバ変数を持たないようなので困っています。

ラジオボタンのプロパティで「グループ」にチェックを入れてるか?
まあどうしてもだめならCWnd::GetDlgItem(ラジオボタンのID)とかDDX_Checkとかいろいろやってみそ。
0951デフォルトの名無しさんNGNG
>>948

ON_BOTTON(){
 while(){
//何かの計算をする

InvalidareRect(hdlg , NULL , FALSE);
UpdateWindow(hdlg);
  //その結果をグラフに書く
 }
}
0952951NGNG
訂正

-----------------------------------------------

方法1.

ON_BOTTON(){
 while(){
//何かの計算をする

InvalidareRect(hdlg , NULL , FALSE);
UpdateWindow(hdlg);
 }
}

WM_PAINT:
  //その結果をグラフに書く
 break;


UpdateWindow で WM_PAINT を呼び出し処理する


-------------------------------------------------


方法2.

ON_BOTTON(){
 while(){
//何かの計算をする

hdc = GetDC(hdlg);
  //その結果をグラフに書く
ReleaseDC(hdlg , hdc);
 }
}


GetDC で直接描画

0953デフォルトの名無しさんNGNG
>>951,952
ありがとうございます.
今方法2でやってみましたが,できませんでした.
計算中に,そのアプリを移動しようとしても移動ができず,再描画もしてくれませんでした.

方法2しか駄目なのでしょうか?

0954950,953ですNGNG
On_Button()は一回押したら,10分くらい計算し続けてるんです.
それと同時に線を書く.
つまりwhileで10分くらい居続けます.
ということなのですが.
0955デフォルトの名無しさんNGNG
こんばんわ、調べてもわからなかったので
教えてもらえないでしょうか。
リストビューで複数のイメージを使用してるんですが
選択中のアイテムのイメージのインデックス
が知りたいんですけど(LVITTEMを使ってセットした時のiImage)
GetItemStateを使用したらいいとまではわかったのですが
うまく情報取得できません。
ret=GetItemState(index,LVIF_IMAGE);
と書いてるんですがretが常に2になってしまい
困ってます。
なにか根本的に間違ってますか?
初心者的質問ですがよろしくお願いします。
0956デフォルトの名無しさんNGNG
>955
LVIS_STATEIMAGEMASKでなくてはいけないかと思いますが。
0957デフォルトの名無しさんNGNG
>>954
つーかスレッド作ったほうが楽だと思ふ・・・・・・・
0958955NGNG
>>956
ありがとうございます。
そうも思ったんですが
ret=GetItemState(index,LVIS_STATEIMAGEMASK);
とするとretがすべて0になっちゃいましたので。。
ret=GetItemState(index,LVIS_STATEIMAGEMASK);
イメージのインデックス取得するのに
この文のどこがおかしいんでしょうか。
0959デフォルトの名無しさんNGNG
>958
GetItemの方でやってみるとかはダメかな?
MFCのその部分のソースも見てみるといいかも知れず。
0960955NGNG
>>959
実は始めそれも調べたのですが
ぜんぜんわからなくて挫折してしまいました。
MSDNでは
「リスト ビュー アイテムの属性のすべてまたは一部を取得します。」
って解説されてるんですが今回の選択中のアイテムの
indexをもとに情報を取得したい場合
どうしたらいいんでしょうか。
定義がBOOL GetItem(LVITEM* pItem) const;
なので引数がひとつしかないので
正直ぜんぜんこの関数の使い方がわからなかったです。
GetItemStateとGetItemどちらもうまく使えてませんが
今回みたいなアイテムのインデックスから
イメージのインデックスを得る場合
どちらを使えばいいでしょうか。
0961デフォルトの名無しさんNGNG
>960
LVITEM構造体調べてくれ…てかそこら辺の説明はSDK使った事無いと
わからんかもw
猫でもわかる〜のサイトでも行ってお勉強してくださいな。
0962951NGNG
>今方法2でやってみましたが,できませんでした.

マジで?
ループ中に PeekMessage , TranslateMessage , DispatchMessage でメッセージループを作ればいけるかも。

>計算中に,そのアプリを移動しようとしても移動ができず,再描画もしてくれませんでした.

移動なども行いたいならマルチスレッドの方が良いかも。
移動を頻繁に行うならパフォーマンス的にもマルチスレッドが有利

いずれにしろ計算中にボタンを押されると多重に実行される可能性があるのでボタンの有効無効の切り替えが必要
0963教えてほしいです!NGNG
HTMLのことなんですけど、
ページを開くと他にも次々にページがでるようにしたいんですけど
どうやるかわかる人いますか?
いたらおしえてほしいです!お願いします☆
0964デフォルトの名無しさんNGNG
>>963
頭悪いなら氏ね。
0965955NGNG
GetItemStateを使うのだとしたら
LVITEM構造体のstateメンバとstateMask
あたりだと思って昨日調べてたんですが
結局挫折してしまいました。
ずばりret=GetItemState(index,LVIS_STATEIMAGEMASK);
のあとretからイメージのインデックスを
取得するにはどういった文が必要なんですか?
もしくはやはりGetItem()でしょうか。。
0966デフォルトの名無しさんNGNG
http://pc.2ch.net/test/read.cgi/tech/1022045622/640
通報しました.
0967いまいましいチビの女の子達NGNG
テンプレートを使ったライブラリを作りたいのですが
ヘッダとソースファイルの分割はどうすればいいのでしょうか。

VC++はexportをサポートしていないので
リンクエラーがでてしまいました。
0968デフォルトの名無しさんNGNG
VC++.NETを買えばよいのではないでしょうか。
0969いまいましいチビの女の子達NGNG
↑.NETはexportあるんですか?
0970デフォルトの名無しさんNGNG
>>968-969
確か.NETにも無いと思ったけど。
0971950,953,954ですNGNG
>>949 >>957 >>962

スレッドってマルチスレッドのことだったんですね(^^A
質問一つのためにスレを立てて,糞スレ立てんなって言われちゃうじゃん!!
って思ってました〜!
やってみます!ありがとうございました!
0972デフォルトの名無しさんNGNG
>>971
> スレッドってマルチスレッドのことだったんですね(^^A
も、盲点だった!
君以外はみんなスレッド=マルチスレッドだと思って
このスレ見てたと思うよ・・・
0973デフォルトの名無しさんNGNG
ご教授願お願いします。
リストボックスの一行ごとに複数の変数(Char)を表示しているのですが

VBでいう   Tab(30) ; name ; Tab(50) ; year

といったようにそれぞれの始まる場所を指定したいのです。
どうしてもやり方が見つからなく、今はムリヤリ
スペースを調整して表示しているのですが、きれいにまとまりません、
Tabに近いような命令はあるのでしょうか?
0974デフォルトの名無しさんNGNG
>>973
sprintf( buf, "%d\t%d", name, year );
とかでは駄目ですか?
0975デフォルトの名無しさんNGNG
973
CListBox::SetTabStopsとLBS_USETABSTOPS
MSDN読もう・・・
0976973NGNG
>974,975
ありがとうございます、そのあたりを確認して
また挑戦してみます。
0977デフォルトの名無しさんNGNG
VC++.NETにはC++言語リファレンスの日本語ヘルプって付いてないんでしょうか?
0978デフォルトの名無しさんNGNG
>>955
iImageとStateImageは別物だよ。(GetItemStateで取れるのは
チェックボックスとか表示するのに使うやつ)
アイコンの方を調べるには、GetItemしてiImage見なくちゃダメ。
セットする時にLVITEM使ってるなら、同じ要領でできると思うがどうか。
0979いまいましいチビの女の子達NGNG
>>970
マイクロソフトの怠慢ですね.

素直にテンプレートをやめて書き直します.
うう、面倒くさい.
0980デフォルトの名無しさんNGNG
卒論のためにVC++でプログラムを組むことになりました。
学校でCの演習はやってましたけど、初歩的なことしか
やってないしC++はやったことないです。
最初に読むのにお勧めの書籍教えてください。
0981デフォルトの名無しさんNGNG
マニュアル
0982デフォルトの名無しさんNGNG
>>980
MFCで組むなら林晴比古のVC++スーパービギナー編でも読んでみたら?
それでサパーリなら諦めなさい(w
0983955NGNG
>>978
ありがとうございます。
お蔭様でGetItemの使い方もわかり、
無事目的のアイテムのイメージのインデックスの取得
に成功しました。
感謝してます。
みなさん、アドバイスありがとうございました。
0984デフォルトの名無しさんNGNG
>>982
レスありがとうございます。
でも、その人の本>>177-179で
すごく不評なんですが大丈夫なんでしょうか?
また、なんで不評なんでしょうか?
0985デフォルトの名無しさんNGNG
長年の経験と勘でが投げ捨てろと言っている。
長年の経験と勘でが投げ捨てろと言っている。
長年の経験と勘でが投げ捨てろと言っている。
0986955NGNG
982>>
私自身勉強中で参考になるかわかりませんが
その本自体は読んだことないですけど
その本の二巻(シニア編)はド忘れした時の辞書代わりになってます。
VCまったくやったことなくてC解るなら
山本信雄って人の書いた
「プログラミング学習シリーズ VisualC++」てのがいいと
思いますよ。
というか私はこれでした。
三巻構成で少々高くつきますがVC1からやるには
かなりよかったです。
1巻ではMFCよりAPIから入ってるのである程度仕組みが
理解できると思います。
2巻は、クラスの利用方法など、(C++やってないならいいかな
3巻がMFC全般。
上級の方からはどう思われるかわからないですけど
勉強中の身の私としてはかなり解りやすい本だと思いました。
参考までに。
0987デフォルトの名無しさんNGNG
>>985
経験と勘ですか
確かに推薦図書スレでも不評でした。

>>986
レスどうもです。
ほんとにVC何もわからないので
わかりやすい本がいいです。
とりあえず>>982>>986さんが薦めてくれたのを
立ち読みしてみようと思います。
0988デフォルトの名無しさんNGNG
次スレたてないの?
0989デフォルトの名無しさんNGNG
終わりで良いじゃん
0990デフォルトの名無しさんNGNG
>>989
終わりかよ!!
0991デフォルトの名無しさんNGNG
だって必要ないじゃん
0992デフォルトの名無しさんNGNG
>>984
今これのビギナー編でVC6.0の勉強中です。
内容は文字通り「VC++6.0」の使い方で
ウィザード使うとこういうことが出来ますよって感じ。
この本読んでプログラムが出来るようにはならないと思うけど
DOS窓しか開けなくて詰まってた私にはちょうど良かったかなとおもう。

でもこれ買った後、友達に>986のやつ薦められました。
0993デフォルトの名無しさんNGNG
スーパービギナー編=
結論を再確認する。「投げ捨てろ」
ビギナー編=
開発環境操作本。これを見ながら勉強すれば、
2chへの「わかりません」系マルチポストを防止できる。
シニア編=
基本的なコントロールの使用法を、それなりにまとめてある。
これを見ながら勉強すれば、
2chへの「できません」系マルチポストを防止できる。
0994デフォルトの名無しさんNGNG
このスレは教えて君の隔離に丁度いいと思う。
あと、まともな質問も結構ある訳だし、次スレ建ててもいいと思うよ。

でも俺はビビりなので自分では建てない罠。
0995デフォルトの名無しさんNGNG
漏れは立てすぎ
0996デフォルトの名無しさんNGNG
996
0997デフォルトの名無しさんNGNG
次スレ
http://pc.2ch.net/test/read.cgi/tech/1022499000/
0998デフォルトの名無しさんNGNG
次スレ立てた人
http://pc.2ch.net/test/read.cgi/tech/1021787032/262
0999デフォルトの名無しさんNGNG
262 名前:いさましいおsageの女の子 [sage] 投稿日:02/05/27 20:31
ごめんね ++が付かなかったよ。

どうやるの?
http://pc.2ch.net/test/read.cgi/tech/1022499000/
1000デフォルトの名無しさんNGNG
VisualC 相談室【8】
http://pc.2ch.net/test/read.cgi/tech/1022499000/
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。