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

★初心者にVisual C++を教えるスレ★ Part5

レス数が1000を超えています。これ以上書き込みはできません。
0001987NGNG
タイトルのとおり、
Visual C++ 初心者用スレッドです。

前スレ・関連スレは、>>2 ぐらい。
0002987NGNG
/** 前スレ **/
★初心者にVisual C++を教えるスレ★ Part4
http://pc2.2ch.net/test/read.cgi/tech/1044196393/l50

★初心者にVisual C++を教えるスレ★ Part3
http://pc2.2ch.net/test/read.cgi/tech/1038160750/l50

★初心者にVisual C++を教えるスレ★ (←実はPart2)
http://pc3.2ch.net/test/read.cgi/tech/1030985362/l50

★初心者にVisual C++を教えるスレ★
http://pc3.2ch.net/test/read.cgi/tech/1023530449/l50


/** 関連スレ **/
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
Windows Programing for C/C++(Not MFC)
http://pc2.2ch.net/test/read.cgi/tech/1018239290/l50
Win32API 質問箱 Build10
http://pc2.2ch.net/test/read.cgi/tech/1047819779/l50
C++相談室 part17
http://pc2.2ch.net/test/read.cgi/tech/1047560042/l50


/** 外部リンク **/
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
0003デフォルトの名無しさんNGNG
以前あるスレで作られた初心者VC++スレ用テンプレ
質問・検索の仕方はここを見れ。
http://www.geocities.co.jp/Beautycare/4965/public/template.html
0004デフォルトの名無しさんNGNG
>>1
激しく乙。
0005デフォルトの名無しさんNGNG

乙

0006デフォルトの名無しさんNGNG
>>1
テンプレにぬるぽが入ってないので NG。
0007デフォルトの名無しさんNGNG
NGなのは藻前様の方だ!
   ( ・∀・)   | | ガッ 
  と    )    | |
    Y /ノ    人
     / )    <  >_∧∩
   _/し' //. V`Д´)/ ← >>6
  (_フ彡        /
0008デフォルトの名無しさんNGNG
C++初心者です、始めたばかりです、よろしくお願いします。
C言語自体初めてで、質問があります。
PERLの =~ s/hoge/ahya/;
のように文字列を置換するにはどのようにしたらいいんでしょうか?
必要なヘッダファイルと、関数を教えていただけたらありがたいです。
0009デフォルトの名無しさんNGNG
そんなもんあるのか?
0010デフォルトの名無しさんNGNG
boost::regex かね。
0011デフォルトの名無しさんNGNG
>>8
その正規表現ならCStringクラスできるぞ。

CString::Replace("hoge","ahya");

- 完
0012デフォルトの名無しさんNGNG
>>11
ありがとうございました......
来年から授業とる予定なのでやっぱVC++買った方がいいかもですね......
0013デフォルトの名無しさんNGNG
error C2555: 'LNil::=' : オーバーロードする仮想関数と 'LObject::=' の違いは戻り値の型です。
こんなエラーが出ました。
単純な例では再現することができなかませんでした。
解決策教えてください。お願いします。

http://member.nifty.ne.jp/~masumoto/cpp/vcbug/#SEC1
ここに解説あるんですが意味わからないです・・・
001413NGNG
MSDN
>派生クラスのオーバーライド関数を基本クラスの仮想関数から
>戻り値の型だけ変更して再定義することはできません。

とありますが、戻り値も引数も全く同じなのにこのエラーが発生しました。
001513NGNG
なんとか原因突き止めました。
>とありますが、戻り値も引数も全く同じなのにこのエラーが発生しました。
嘘でした(汗

class LObject
{
private:
public:
 LObject(){}
 ~LObject(){}
 virtual void print(std::ostream& a_ost) const;
 // ↓コイツのせい
 virtual const LBoolean& operator= (const LNil& a_nil);
};

class LNil : public LObject
{
private:
public:
 LNil(){}
 ~LNil(){}
 void print(std::ostream& a_ost) const{
  a_ost << "nil" << std::endl;
 }
 // ↓こんなのが暗黙の内に入れられるのかな
 // const LNil& operator= (const LNil& a_nil);
};

LNil::operator=は勝手にオーバーライドされてしまうのですね。
LNilではoperator=不要なので、どうにかなりませんかね?
0016デフォルトの名無しさんNGNG
>>15
正しくは
LNil& operator= (const LNil& a_nil);
が勝手に作られてるはず。
使わない場合は private メンバで宣言だけしとくのが定石。

ただ、この場合の問題は LObject の定義にある気がする。
operator==() と間違えてるんじゃない?
001713NGNG
>>16
ありがとうございます。
>正しくは
>LNil& operator= (const LNil& a_nil);
ちとボケてました(^^;
>使わない場合は private メンバで宣言だけしとくのが定石。
なるほど。
>ただ、この場合の問題は LObject の定義にある気がする。
確かに・・・
かなり馬鹿な事やって穴に嵌ってしまいました。
別に==と間違えていたわけではありません。(^^;
0018デフォルトの名無しさんNGNG
すみません。ド素人すぎてどう質問していいかもよくわかんないんですが
例えば、CDialogを基底にしたクラスの中でSendMessageを使おうとすると
CWndのSendMessage
SendMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
が呼ばれるんですよねぇ?
それじゃなくってAPIのSendMessage
SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
を呼び出すことってできないんでしょうか?
0019尚NGNG
今VCを勉強しています。
私はよくエクセルを使うのですが、
VCでdll作って、それをエクセルから呼び出して使用することをできますか?
可能ならば、どのようにすればいいか、あるいはどのような書籍を読めばよいか
教えていただけませんか。
0020デフォルトの名無しさんNGNG
>>18
::SendMessage
じゃ駄目なのか?
002118NGNG
>>20
あ、そうやればいいんですか!
ありがとうございました!('-'*)アリガト♪
0022デフォルトの名無しさんNGNG
>>19
COMを勉強すればOK。
0023デフォルトの名無しさんNGNG
VC++6.0のスタンダードエディションで作成したソフトはフリーソフトとして公開してもよいですか?
0024デフォルトの名無しさんNGNG
よい。
0025デフォルトの名無しさんNGNG
VC++.NETはDelphiのようにRAD風ツールになったと聞いたのですが
コンポーネントもつくれますか?
0026デフォルトの名無しさんNGNG
>>25
答える前に確認しておきたい。
誰に聞いたの?
0027デフォルトの名無しさんNGNG
>>24
調べてみました。MFCがスタティックリンクできないみたいですね。
まあ、使わないからいいけど。
0028デフォルトの名無しさんNGNG
>>26
いつもロリ画像をくれる坂田さんです
0029デフォルトの名無しさんNGNG
WinXP + VC6で

リンク中...
LINK : fatal error LNK1212: プログラム データベースを開く際のエラーです、ファイルは使用中です
link.exe の実行エラー

といわれたのですが、何が悪いのでしょうか?
どうすれば直りますか?
0030デフォルトの名無しさんNGNG
>>26
じゃあその坂田さんとは、
ロリ画像をもらうだけの付き合いにした方が良いよ。
たぶんC#と勘違いしている。
0031デフォルトの名無しさんNGNG
>>29
生成するexeファイルが実行中なのでは?
0032デフォルトの名無しさんNGNG
>>29
ファイルの排他アクセスに引っかかったんじゃないかな。
VCで使うファイル(ソースや中間ファイルなど)が他で使われているからlink.exeが使えないってことでしょ。
再起動すりゃ直る。
003329NGNG
>>31-32
サンクスです。

>生成するexeファイルが実行中なのでは?
プログラムは終了してます。

>再起動すりゃ直る。
そのとおりでした。この現象はたまにおこるだけなのですが、そのたびに再起動は
めんどくさいです。
0034デフォルトの名無しさんNGNG
>>33
XPだとよくある現象。気にせず再起動しる。
0035デフォルトの名無しさんNGNG
>>33
2000に変えろ!
0036デフォルトの名無しさんNGNG
XP から 2000 にする事をバージョンアップといいます。
0037デフォルトの名無しさんNGNG
>>36
周知の事実!
0038デフォルトの名無しさんNGNG
プロはバージョナップと言います
0039デフォルトの名無しさんNGNG

MAKEINTRESOURCE(i) ですが、
#define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))
と定義されています。

RegisterClassExのメニューリソースの指定などで使用する場合、
文字列へのポインタの上位ワードがNULLの場合に、それが
文字列へのポインタではなく、リソースIDだと判断するようなので
すが、通常のポインタは上位ワードがNULLではないと保証
されているのでしょうか?

0040デフォルトの名無しさんNGNG
三日ほど前にC言語を勉強し始めた者ですが、
実際に書いたソースを動作させてみたくなりました。
ちなみに参考書として林晴比彦の「改訂 新C言語入門 スーパービギナー編」
を使っていて、半分まで進みました。
VC++.NETが12800円で売っていたんですが、これを買って問題ないでしょうか?
アカデミーパックとは書いてなかった……学生です。
0041デフォルトの名無しさんNGNG
>>40
問題はないがまずはフリーのコンパイラでじゅうぶんだろ。
アカデミックならもっと安いけどな。
0042デフォルトの名無しさんNGNG
>>41
アカデミック版はフリーのコンパイラよりも安いのか?
0043デフォルトの名無しさんNGNG
ただより高いものはない?
0044デフォルトの名無しさんNGNG
仰る通り。
0045デフォルトの名無しさんNGNG
>40
まずはあなたのOSがNT系列である事を確認する事。95系列には.NETは対応してないからね。
ただ、Cをやるだけなら、別にVC.NETを買う必要はないかと。
LSI-C試食版とかBorlandのとかフリーのはいっぱいあるから、
とりあえずそれで試してみたら?
0046デフォルトの名無しさんNGNG
>>45
ネタニマジレス(イカリャク
004740NGNG
遅れました。XPです。
フリーのを使ってみようと思ってBorlandをダウンしたんですが、
インストールがわからず(^^;;;
もうちょっと色々フリーを見てみます。
ありがとうございました。
004840NGNG
あ、違った。後々使うのはXPで、今使っているのは98だ。
てかメモ帳でcfgファイルを作るってのがよくわかりません。
「すべてのファイル」で保存しても何故かtxtの拡張子が付くんですけど。
0049デフォルトの名無しさんNGNG
>>48
それはメモ帳のアホ仕様。
Cやるなら、メモ帳じゃなくて、フリーのエディタ使え。
0050デフォルトの名無しさんNGNG
caseの次は字下げしたいのに・・・
0051 ◆sZMOg20d0E NGNG
とりあえず、林晴比古についての参考
http://www.pro.or.jp/~fuji/computerbooks/c/index.html
これでも読んでくれ。

漏れも初心者の時 こやつの本買って失敗した。
本のとおりやっても動かんものができたよ。
CG目指してるやつに その本くれてやったが、
そいつからも苦情が漏れに来た。
「本のとおりやっても 動かんぞ ゴラァ!!」ってな。

なんかシリーズ化しているみたいだけど みんな泣き寝入りなのかな?
ちなみにその本は手元にないからどの本かはもう覚えていない。
いっぱいだしてるしな。特定できんよ。
0052デフォルトの名無しさんNGNG
なんか最近VC++をやってるとよく飛ぶんだけど。しかもOSごと…
Windows2000+SP3の組み合わせが悪いのか・・・
0053デフォルトの名無しさんNGNG
おかしいと思ったらまずmemtest86
0054デフォルトの名無しさんNGNG
>>53
正常ですた!
0055デフォルトの名無しさんNGNG
>>47
初心者ならVC++の方が設定周りが楽だと思うよ。
VC++.NET Standard って6000円くらいで売ってたと思ったけど違った?
0056デフォルトの名無しさんNGNG

 そういや、

if ( .... ) {

}

っていうスタイルが一般的だけど、漏れは

if ( ... )
{

}

の方が読みやすくて良いと思った。最初の方は
一見スマートだけど、コードの中にあると、カッコ
の対応が分かりづらくて苦労する。

0057デフォルトの名無しさんNGNG
>>56
やめとけ
0058デフォルトの名無しさんNGNG
>>56
コーディングスタイル論争やりたいなら他逝けハゲ。
0059デフォルトの名無しさんNGNG
ワークスペースウィンドウとか、アウトプットウィンドウとか、
ツールバーとかって、動かないように固定できないのでしょうか。
006040NGNG
Borlandでたぶん設定できました。ありがとうございます。
exeファイルができたんですが、実行してもパッとMSDOSウィンドウが出るだけなんです。
「面積は12.566360です」っていう文章が実行結果として出ると
参考書に書いてあるソースを作ったはずなんですが。。。

>>55
スタンダードがどうか見るのを忘れました。もう少ししたら買おうかな……。
0061デフォルトの名無しさんNGNG
VC++.NET standard でインラインアセンブルはできますか?
0062デフォルトの名無しさんNGNG
>>60
プログラム終了時にブレークかましとけ。
0063デフォルトの名無しさんNGNG
>>60
表示した後に getch() や scanf() で何か入力を求めると一時的に止まるよ。
006440NGNG
>>62-63
う……すいません、どちらも理解不能です。
一瞬しか現れないので入力する間がありません……普通こういうものなんでしょうか?
0065デフォルトの名無しさんNGNG
>>64
DOSプロンプトを開いて、そこから実行すればいい。

0066デフォルトの名無しさんNGNG
コーディング論争は宗教論争になるからね

スレは盛りあがるけど荒れる可能性もある両刃の剣
素人には(ry
0067デフォルトの名無しさんNGNG
>>64
VCからは設定できない。
ココを参考にDOSプロンプトから生成されたexeを直接実行。
ttp://www.denen.org/prog/dos.html
0068デフォルトの名無しさんNGNG
DOSプロンプトってみんな未だに16ビットアプリを作ってるのか?
0069デフォルトの名無しさんNGNG
ココは初心者スレだぞ。
C/C++の練習で使っていても何も問題あるまい。
007040NGNG
デ…デキタ─wwヘ√レvv~(゚∀゚)─wwヘ√レvv~─ !!!

出来ました! きっちりと「面積は12.566360です」と出た! 
おお〜感動〜。一体これに何の意味があるのかわからないけどw
ありがとうございました!
0071デフォルトの名無しさんNGNG
>>68
DOSプロンプトなら32ビットアプリだろ
0072デフォルトの名無しさんNGNG
>>69
VC++であって某ランドではない罠
0073デフォルトの名無しさんNGNG
>>71
それコマンドプロンプト
0074デフォルトの名無しさんNGNG
>>70
半径2の円の面積と見た
0075デフォルトの名無しさんNGNG
>>73
それNT系
0076デフォルトの名無しさんNGNG
私もCの勉強を始めたばかりで>>40さんと同じ参考書を使用してます。
その中の「Visual C++を利用してCコンパイラを使う方法」を試しているのですが
プロンプトで「edit smp.1(ファイル名)」を入力すればWindows付属のEDITエディタが起動するはずが
同じ通りにやってるのに認識してくれません。
一体何故なのでしょうか?
ちなみにOSはXPでVisual C++.NETを使用してます。
0077デフォルトの名無しさんNGNG
そもそもXPにedit.exeなんかあるのか?
0078デフォルトの名無しさんNGNG
>>77
検索したら「EDIT.EXE」ありますた。
0079デフォルトの名無しさんNGNG
>>78
気をつけろ!そいつはバ(以下略
0080デフォルトの名無しさんNGNG
>>79
バンカーバスター?
0081デフォルトの名無しさんNGNG
>>76
メモ帖でやれば?
editの代わりにnotepadで。
0082デフォルトの名無しさんNGNG
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < ServicePack6まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       | たけのこの里 |/
0083デフォルトの名無しさんNGNG
>>82
禿しく同意!
0084名前は開発中のものですNGNG
Cの基本はわかるんで、そろそろC++やってみようと思うんですけど
早いですか?それと習得(あいまいな言い方ですみません)には、どのくらい
時間かかりますか?
0085デフォルトの名無しさんNGNG
ももくり3年かき8年
0086あほNGNG
http://www.asahi-net.or.jp/~yf8k-kbys/
↑ここで勉強すべし。
0087デフォルトの名無しさんNGNG
>>84
決まりなんて無いんだからやる気があるなら今すぐやれ。
0088デフォルトの名無しさんNGNG
>>84
84さん次第。構造体,malloc,freeを使いこなせるのであれば
同様にclass,new,deleteを使いこなせるように進めれば。
もちろんそれだけではないけど。
0089デフォルトの名無しさんNGNG
ネットワークプログラムを組もうと思い
参考になりそうなサイトを色々と探しましたが

もし皆さんが参考になったサイトがあったら
教えてください。
0090名前は開発中のものですNGNG
みなさんお返事ありがとうございます。86さんのリンクページ読んだら、Cに慣れすぎて
しまうと、オブジェクト指向で挫折する人が多いと書いてあったの
ので、Cに慣れすぎてしまう前に移行しようと思います
0091デフォルトの名無しさんNGNG
★みんなの情報局★みんなのリンク集★ココ最高★
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
009289NGNG
やはりインターネット上のデータより
書籍のほうが勝ってるのでしょうか?
0093デフォルトの名無しさんNGNG
どっちもどっち
両方活用すれ
0094デフォルトの名無しさんNGNG
>>89
ネットワークプログラミング相談室 Port5
http://pc2.2ch.net/test/read.cgi/tech/1040220302/l50
0095VC初日NGNG
今日から仕事の都合でVCを使い始めた初心者です。
質問がありカキコしました。
他のエディタでEUCの文字コードで作成したソースファイルを、
VCで開くと文字化けしてしまうのですが、どうすれば改善するのでしょうか?
どこかに開くファイルは必ずEUCの文字形式で開くような設定はあるのでしょうか?
どなたかご存じでした教えて下さい。
よろしくお願い致します。
0096デフォルトの名無しさんNGNG
外部ツールで変換すれば?
http://computers.yahoo.co.jp/download/vector/win/util/text/conv/code/
009795NGNG
>>96
やっぱりシフトJIS等に一度変換しないとダメなのでしょうか?
納品でEUC形式で行うように統一しているので、
VC上でソースを編集する時もEUC形式で表示されたものを編集したいです。
どうしても無理であれば仕方ない事なのですがね。
0098デフォルトの名無しさんNGNG
>>97
ムリ
009995と97NGNG
了解しました。
仕方が無いので、EUC形式が正しく表示出来る違うエディタで編集して、
編集が終わったらVCでコンパイルする事にします。
質問に答えて頂きありがとうございました。
010089NGNG
>>94
おぉ。いいスレですね。
ありがとうございます。
0101デフォルトの名無しさんNGNG
vc++.net でcursesライブラリを使うにはどうするんでしょうか?
0102デフォルトの名無しさんNGNG
なんだかCの参考書って難しくてさっぱりです。
この意味わかる方教えてください

某参考書の一節

#ifがよく使われるのは、ヘッダファイルの二重include防止です。

#if ANYHEADER_H
#define ANYHEADER_H
・
  ・
  ・
#endif
0103デフォルトの名無しさんNGNG
何が分からないのか分からん
0104デフォルトの名無しさんNGNG
と思ったがそれじゃまともに動かないじゃん
0105デフォルトの名無しさんNGNG
>>102
気持ちはわかる。以上
0106デフォルトの名無しさん NGNG
構文の例みたいなもんなんですが、二重includeって
なんですか?
0107デフォルトの名無しさんNGNG
二重includeとはなんですか?
0108デフォルトの名無しさんNGNG
#if ANYHEADER_H じゃなくて
#ifndef ANYHEADER_H じゃね。
0109デフォルトの名無しさんNGNG
二重にincludeすることです
0110デフォルトの名無しさんNGNG
>108
そうでした。108さんの言うとおり。
すみません、そちらの方でお願いします
0111デフォルトの名無しさんNGNG
現代人は #pragma once を使います。
0112デフォルトの名無しさんNGNG
>>111
両方使うのが普通です
0113デフォルトの名無しさんNGNG
どこで二重にincludeしてるかよくわかんないんです。
低レベルな話だと思いますがよろしくお願いします
0114デフォルトの名無しさんNGNG
>>113
気持ちはすごくわかる。以上
0115デフォルトの名無しさんNGNG
vc++.net でcursesライブラリを使うにはどうするんでしょうか?
0116デフォルトの名無しさんNGNG
>>113 ここを見ればわかるかも
ttp://www.02.246.ne.jp/~torutk/cxx/file/includeguard.html
0117デフォルトの名無しさんNGNG
釣られてあげよう。でも、この後のレスはないので念のため。

ひとつのファイルをコンパイルするのに
同じファイルを何回もインクルードするのは無駄。
だから、コンパイラが読み込みを省略してくれることもあるし、
万が一、2度読み込まれても構文解析が読み飛ばしてくれるように、
#ifndef ANYHEADER_H
#define ANYHEADER_H
・
・
・
#endif
と書いておく。
stdio.hみたいなファイルは、
ありとあらゆるヘッダーにかかれているから、
コンパイル時間の節約になるし、
同じ宣言が重複するエラーも出ない。

さらばじゃ。
0118デフォルトの名無しさんNGNG
http://www.agemasukudasai.com/bloom/
0119デフォルトの名無しさんNGNG
>どこで二重にincludeしてるかよくわかんないんです。

いいところに気がついたじゃないか。
プログラマのほとんどは、どこで二重にincludeしてしまうのか
わかってないんだよ。だけど、その呪文を書いておけば、
どこで二重にincludeしてしまっても気にする必要がないんだよ。
どーだ楽ちんだろ。
0120デフォルトの名無しさんNGNG
#ifndef ANYHEADER_H
#define ANYHEADER_H
#pragma once
・
・
・
#endif

まぁあれだ
『おまじない』だと思ってこれは必ず入れて置けと
0121デフォルトの名無しさんNGNG
つーか>>102は釣りだろ!
0122デフォルトの名無しさんNGNG
>>101
エスケープシーケンスでがんばったら。
0123デフォルトの名無しさんNGNG
>>122
VC++.NETが使えるのは2000/XP→2000/XPではエスケープシーケンス無理
 →がんばれない。
0124デフォルトの名無しさんNGNG

VC++.NET 使ってる人にお尋ねしますが、これにも
MSDN Library が付属してると思うんですが、これの
Platform SDKの解説は相変わらず大部分英語ですか?
それとも完全に日本語訳になったでしょうか?

VC++6.0使ってるんですが、翻訳がホントに一部だけで
WNDCLASS構造体の解説ですら英語という状況なので
完全に訳されているなら.NETに移行しようかと思ってる
んですが。

0125デフォルトの名無しさんNGNG
COleVariant オブジェクトにCHAR型の文字ををセットするのには
どうすればよいのでしょうか?
0126bloomNGNG
http://www.agemasukudasai.com/bloom/
0127デフォルトの名無しさんNGNG
>>125
char c;

COleVariant v(CString(c));
0128デフォルトの名無しさんNGNG
>>124
英語を学んだほうが現実的だと思うけど。
ネット版なら翻訳されてるかな?
ttp://www.microsoft.com/japan/msdn/library/
0129デフォルトの名無しさんNGNG
ヘルプの英文に英語の知識はほとんどいらない
0130デフォルトの名無しさんNGNG
#include <stdio.h>
int main()
{
int a, b;
printf("a, bを入力してください\n");
scanf("%d, %d", &a, &b);
printf("a = %d b = %d\n", a, b);
printf("何かキーを押してください");
getchar();
printf("end");
return 0;
}
実行するとgetchar()の入力待ちが起きずに終了してしまうんですが
なぜでしょうか。コンパイラはvc++.netです。
0131デフォルトの名無しさんNGNG
scanfでデータを取りこぼしているから
0132デフォルトの名無しさんNGNG
<<127
ありがとうございます。
0133デフォルトの名無しさんNGNG
VC++.NETを使ってますが、先日までは自分が記述したプログラムだけ
ステップインしてデバッグ出来ていたのですが、先ほどやってみると
strcpy,strncpy,starcat,CString等他の関数の中身(アセンブリ?)
までステップインしてしまってます。
きっとどこかの設定を触ってしまいこうなったのだと思いオプション
設定を見直したのですが、わかりませんでした。
教えてください。
0134デフォルトの名無しさんNGNG
>>133
ステップアウト (関数から抜け出る)
ステップオーバー (次の関数へ)
のボタンないですか?
0135デフォルトの名無しさんNGNG
<<134
ありがとうございました!
ステップアウトでできました。以前はF8ステップインだけを押して
いてそんな事してなかったと思ったのですが。。
これでデバッグがまたはかどります。
ステップインって必要ないじゃん!
0136デフォルトの名無しさんNGNG
>>135
んなこたーない。
自分の書いた関数の呼び出しもトレースしなくなるぞ。
0137デフォルトの名無しさんNGNG
本に載ってたソースを元にファイル出力をしてみようと
↓のコードを書いたのですが

if(GetAsyncKeyState(VK_TAB) & 0x8000) {
HANDLE hmap;
char *map;
PDWORD bite=0;
map=(char *)bData;
hmap =CreateFile("C:\\map.txt",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,NULL,NULL);
if(hmap != INVALID_HANDLE_VALUE){
WriteFile(hmap,map,lstrlen(map),bite,NULL);
CloseHandle(hmap);
}
}

WriteFileができず
「ハンドルされていない例外 は Sample11.exe (KERNEL32.DLL) にあります: 0xC0000005: Access Violation。」
とでてしまいます。

どうすれば書き込むことができるのでしょうか?
0138137NGNG
VC++6.0
を使ってます
0139デフォルトの名無しさんNGNG
>>137
>PDWORD bite=0;
これはないでしょう。
0140137NGNG
「第四引数は実際に書き込まれたBITE数が代入されるだけ」
と書いてあったので適当に初期化してみたのですが
まずかったでしょうか。

どう直せばよいのでしょう。




0141デフォルトの名無しさんNGNG
つまりアドレス0に代入されていることになるが・・・
0142デフォルトの名無しさんNGNG
Σ(゚Д゚
PDWORDなんてものがあるなんて知らなかった…。
0143137NGNG
mallocなどでメモリ領域を確保してそのアドレスを入れればよいのでしょうか?
0144デフォルトの名無しさんNGNG
あるある、俺も以前間違えた。
MSDNにも素直にFoo(HOGE* hoge);って書いてくれればいいのに
Foo(LPHOGE hoge);って出てたりするし。
0145デフォルトの名無しさんNGNG
>>143
答えから言えば
DWORD dwBit;
としといて関数に&dwBitを渡す。
たぶんMSDNにも「第四引数は〜へのポインタ」みたいなこと書いてあると思う。
0146137NGNG
ありがとうございます。
やってみます。
0147137NGNG
できました。
Pはポインタを示す冠詞のようなものなのですね。
初めてしりました。
0148デフォルトの名無しさんNGNG
LPとP両方定義されている物、
片方しか定義されていない物、
まったく存在しない物、
16bit時代の名残を引きずっているとはいえ、
M$の定義はいい加減すぎる
0149デフォルトの名無しさんNGNG
>>148
その癖型チェックはしっかりするし(w
0150デフォルトの名無しさんNGNG
すいません。
Directxを使ってクライアント領域に描写しているのですが
ダイアログのようなエディットボックスで
文字入力したいのです。

どのようにすればよいでしょうか。
0151デフォルトの名無しさんNGNG
VCでC++じゃなくてCをコンパイルするのて、
簡単に出来るんですか?
0152デフォルトの名無しさんNGNG
>>151
ソースの拡張子を .c にする。
0153デフォルトの名無しさんNGNG
ありがとうございます。
助かりました。
0154デフォルトの名無しさんNGNG
ダイアログウィンドウって子ウィンドウ作れますか?
0155150NGNG
解決しました
0156デフォルトの名無しさんNGNG
>>154
作れます。
0157デフォルトの名無しさんNGNG
>>156
つーか子ウィンドウの作れないウィンドウってあるか?
0158デフォルトの名無しさんNGNG
VRAMの表示バンク切り替えやクリッピング無しの描画によって見えなくなることはある
いくらでも対策はあるけど
0159デフォルトの名無しさんNGNG
VC++6.0をWin2kProで使用でのことについて質問です。
以前まで(今回の再インストール)は、VCの「ファイル、編集・・」などある
あのメニューから、ツールバーのカスタマイズをするときに引用できたのですが、
なぜかできなくなりました、ためしに完全インストールや上書きインストールなど
やってみましたが無理でした。
やりたいことは、
ツール→カスタマイズで、ファイル→ワークスペースを開く を
ツールバーに追加したいのですが、このメニューが何か違うのです、左端につまみ
がないメニューに(表現悪くてすいません)なっていて、
編集メニュー項目とかにアイコン付で項目があると思うのですが全ての項目に
アイコンがついてません、アイコンが描画される幅がない感じで狭いです。
友人から試しに上述のカスタム状態のレジストリをもらって上書きすると、一応
できたのですが、メニュー項目のアイコンなどは復帰しないです。
どなたかご教授下さい、わかりにくければ再度説明します。お願いします。
0160デフォルトの名無しさんNGNG
>>159
わかりにくいのでもう一度お願いします。
0161デフォルトの名無しさんNGNG
>>159
>ツール→カスタマイズで、ファイル→ワークスペースを開く を
>ツールバーに追加したいのですが

そんなに何度も使うものじゃないのにツールバーに必要ですか?

0162デフォルトの名無しさんNGNG
>>159
>引用できたのですが

この辺が謎。
0163159NGNG
>>161
私は結構つかうので…。まぁなくても不便とまではいかないかも
しれませんが、できなくなったのが一番嫌なことでしょうか。

>>162
えっと、ツール→カスタマイズ、でツールバーに
ファイル→ワークスペースを開く をD&Dしたら、ツールバーに
同じ機能のボタンが生成できるんですが、その機能ができなく
なったのです。
カスタマイズ設定時でのメニューの項目が全てグレーになって
しまっています。

そのほかの見える現象としては、メニューがWin95時代(?)の
感じみたいになっていて、IE5とかのように左の端につまみがなく
なっています。
IEですとお気に入りのなかの項目にアイコンがあると思います。
プログラムだとオーナードローする技法のやつです。
VC6.0のメニューもそういった感じだったはずが、上述のとおり
Win95チックになってしまっています。

画面をみてもらえばいいのですが、そういうわけにも
いかないですね。

文字で表現するのが難しい、どうか宜しくお願いします。
0164デフォルトの名無しさんNGNG
>>159
>今回の再インストール
これが謎だけど、単にIEのバージョンが古いというのではあるまいな?
0165159NGNG
>>164
IEは5.5SP2です、正確には今回のWindows2000Proインストール
以来ずっとこの現象が残っているのです。
あれはIEコンポーネント関連と考えてIE6にしたり(今はけしました)
しても無理でした、VCの再インストールも無理でしたし。
以前まではWinインスト後まっさきにVCインストールでも、
正常になっていました、Winまた再インストールすればよい気も
するんですがこれだけの為にするのにも手間がかかるから敬遠してます。

どこか自由に画像アップロードできるところがあればいいのですが、
検索の仕方が悪いのかいまいちでてこない…。
他何か足りない情報ありますでしょうか?

今ちょっと思いついたのでレジストリを完全削除してVC起動してみます…。
(これでうまくいかないかなぁ)
0166デフォルトの名無しさんNGNG
レジストリを完全削除したらOSが起動不能になるが
0167159NGNG
>>166
あ、もちろんVcのです、やってみましたが無理でした。

猫のところで画像があったので説明します。
ttp://www.kumei.ne.jp/c_lang/setvc.htm
ここにページにある画像の「||ファイル|編集・・・」や
プロジェクト→プロジェクト追加→[アイコン]ファイル
となってますが、これの
メニューは、ちょうどメモ帳のメニューのようになって一番左のCのアイコン無し
メニューポップアップはアイコンが一切ないです。

これでもっと分かりやすくなったでしょうか…。
0168デフォルトの名無しさんNGNG
(´-`).。oO(あきらめてくれよ頼むから)
0169159NGNG
うーん、2chにすら同じ症状でた人いないみたいですねぇ。
それともあほすぎる質問なのかな。
まぁ開発には直接影響ないので >>168 さんの言う通り
諦めることにします。
再三の書き込み失礼致しました。
0170デフォルトの名無しさんNGNG

自分のスキルアップに繋がる質問なら
モチベーションあがるんだけどね〜。

0171デフォルトの名無しさんNGNG
>>170
スレタイがスレタイだけにそりゃ難しいだろ。
0172デフォルトの名無しさんNGNG
>>159
ツール -> オプション -> ワークスペース -> 画面読み取り互換メニューを使用

ぢゃないか?
0173 NGNG
AfxRegisterWndClass ( NULL, AfxGetApp ()->LoadStandardCursor ( IDC_ARROW )
って関数があったんだけどAfxGetApp()->の文法で関数の後にアロー演算子って
どんな意味があったっけ、一度みたような気がしたんだけど
調べるキーワードおせーてください
0174デフォルトの名無しさんNGNG
>>173
「アロー演算子」で調べるといいよ。
0175デフォルトの名無しさんNGNG
条件が関数の後だと思っている辺り、Cの基礎をやり直した方がいいと思われる
0176デフォルトの名無しさんNGNG
条件がCだと思っている辺り、C++の基礎をやり直した方がいいと思われる
0177173NGNG
ネットと参考書ひらけたが構造体とオブジェクトでの
文法しかのってない、もう少しヒントを、、、
0178デフォルトの名無しさんNGNG
C言語でも可能な記述。ただしアローの先が関数ってのは有り得ないけど
構造体のポインタを返す関数に対して使える。
よって175の指摘どおりCの基礎をやり直すべき。
0179デフォルトの名無しさんNGNG
>アローの先が関数ってのは有り得ないけど
ん?
typedef struct
{ HRESULT (*LoadStandardCursor)(int); } func_struct;
func_struct *AfxGetApp();

AfxGetApp()->LoadStandardCursor( IDC_ARROW);
0180173NGNG
あ、なるほど。
そのままだったね
基礎たりないね
>アローの先が関数ってのは有り得ないけど
これはありえると思うんだけど、てかメソッドか?
0181デフォルトの名無しさんNGNG
構造体内の関数ってC言語の規格だっけ?
細かい所はぐちゃぐちゃなのでスマソ...
0182デフォルトの名無しさんNGNG
失礼良く見てなかった。
関数ポインタね。さらにスマソ...
0183173NGNG
>構造体のポインタを返す関数に対して使える。
ということでいいですね
動作テストははぶいちゃいます
0184173NGNG
軽いプログラムをつくっているのですが
1 API
2 MFC
3 ウィザード
この内どれで作るかまよってます
モノはアナログ時計でリージョン使おうと思ってます
ウィザードが安定してそうなんですが、ウィンドウを
作る前にオーバーライドするのってどうしてます?
0185デフォルトの名無しさんNGNG
>>173
( ゚д゚) <ポカーン…
0186デフォルトの名無しさんNGNG
>>184
手軽に作るならMFCが楽ぢゃない?
ウィザードってよく分からんが。

0187173NGNG
申し訳ない、、
全力で説明してるんだが、なんとか読み取ってくれないかの〜
ウィザードつかったときにもうすでにフレームとユーザビュー
が完成されてるんで、なんとかリージョンをかますことができんか
考えてます、、、
0188デフォルトの名無しさんNGNG

すんませんがリージョンってなんですか?

0189173NGNG
>>184
MFCはMFCウィザード使わないでという意味です
ウィザードはMFCウィザードを使うという意味です
MFCのみだとCWndクラスをそのまま継承してリージョンが
できるが手作りだと不安定なきがしました、メッセージ関係とか特に
0190デフォルトの名無しさんNGNG
>>187
SDIで作成すると白い背景のウインドウ
1つだけじゃない? そこにごちゃごちゃ
追加していけばいいのでは?

0191デフォルトの名無しさんNGNG
昔のEmi Clock みたいなの作りたいのかな?
丸いウインドウ。

0192173NGNG
>>188
リージョンはウィンドウのスタイルを自由な形で利用する意味で
書きました^^;
普通だとダイアログかSDIの矩形なので面白くないと思って、、
で、今回は時計なので楕円です
0193デフォルトの名無しさんNGNG
>>192
漏れもそういうのは作り方わかんないから、他の人の
アドバイスきぼんぬ。
0194173NGNG
>>190
SDIにごちゃごちゃ書くときに
ウィンドウの形を変えるには
ViewのPreCreateWindowメソッドに書いたらええですか?
Frameはほっといたらいいよね?

>>191
そう
0195デフォルトの名無しさんNGNG
ttp://techtips.belution.com/ja/vc/0007/

検索したらすぐ出てきたぞ。
0196173NGNG
>>194
なるほど、こりゃええわ
でも、APIやな

MFCウィザードやったらFrameクラスいじったらええみたいや
なんとかできそうや、ほな
0197デフォルトの名無しさんNGNG
>>188
DVDで使われている地域コードのこと。
0198デフォルトの名無しさんNGNG
あるCSVファイルを読み込んで、
中にある値を2倍して
新しいCSVファイルに出力
するプログラムを作りたいのですが、
現在難航しています。
そこで質問なのですが、
CSVファイルのデータは全て
文字列データ型なのでしょうか?

atof()関数で文字列を数値型に変換しようと
ソースに記述するとシンタックスエラーとか
言われます。
このあたりで何かヒントがあればお願いします。
0199デフォルトの名無しさんNGNG
>>198
>CSVファイルのデータは全て
>文字列データ型なのでしょうか?
CSVファイルのデータは全て
文字列データ型なのでしょうか?
0200デフォルトの名無しさんNGNG
>>198
シンタックスエラーが出ている時点で
CSVファイルの構造がどんなものであろうがそれ以前の問題
0201デフォルトの名無しさんNGNG
>>198
エクセルかなんかで吐いたデータだろうが、
数値型で入れてくださいと言っても、入れてくれるとは限らんぞ。
文字列で受け取って、その後数値かどうか判定してからatof()しないと。。。

0202198NGNG
レスありがとうございます。

現在の状況としてはおおよそ↓のように
なっているのですが、なにか突っ込むところが
あればお願いします。
(突込みどころ満載かもしれませんが、ネタじゃないです)
ch→char型変数
ddt,ddr→double型変数


if(isdigit(ch)==false){ /* 入力文字が数値以外のものだったら実行 */
  fout.put(ch);
}
  else if /* 文字列を数値に変換、×2演算 */
  ddt=atof(ch); /*ここでシンタックスエラー*/
  ddr=ddt*2;
fout.put(ddr);
0203デフォルトの名無しさんNGNG
>>202
文字列と文字を同じ扱いしてないか?
0204198NGNG
たしかに言われてみれば考えていなかったです。
っつーことはchを
char ch[80];
にしたらよいのでしょうか?
試しにやってみると
エラーが2行出てしまいました。
「引数を 'char [300]' から 'char &' に変換できません。」
て言われます。

どこが悪いのでしょうか?
getlineとか使うんですかね?
とりあえずやってみます。
0205デフォルトの名無しさんNGNG
>>202
普通は、

if(sscanf(str, "%f", &ddr) == 1){
fout.printf("%f", 2*ddr);
} else {
fout.printf("%s", str);
}

こんな感じになるんじゃないか?
0206デフォルトの名無しさんNGNG
>>202がネタにしか思えない奴の数→(1)
0207デフォルトの名無しさんNGNG
>>202は、CSVファイルをちゃんとParse出来ているんだろうな。。。?
まさか、一行一フィールドとして処理してないだろうな。。。
0208ひよこ名無しさんNGNG
最近 Visual C++ に手を出した元 Visual Basic ユーザーです。

そこで質問なんですが、
Visual C++ のコントロール(フォームベースのやつ)と VB のコントロールって
つまりは何が違うんですか。扱う上で。

お絵かきソフトっぽくしようとしてピクチャ貼り付けたらどうも上手くいかない・・・。
VB だったらピクチャーコントロール貼り付けて MOUSEMOVE にコード書けば
OKなんですが。。。

うーん。なんかよくわかりません。
0209デフォルトの名無しさんNGNG
VBライクに組みたいなら、Builderの方がいいかもね。
0210208NGNG
あのう、VCで VBのピクチャコントロールに相当するものって
ピクチャってやつですよね?

あそこに MouseMove の処理を書きたいときってどうすればいいんですか?
0211デフォルトの名無しさんNGNG
VBで〜したのをVCではどうすれば良いって聞くよりは、VCで〜をしたいと書いた方がいいと思うが。
0212デフォルトの名無しさんNGNG
うむ。ピクチャコントロールとか言われても何のことか
わからん。
0213デフォルトの名無しさんNGNG
俺はピクチャと言われてもピンとこん。
0214デフォルトの名無しさんNGNG
VBのピクチャコントロールとは
PictureBox のことと見た。
0215デフォルトの名無しさんNGNG

BMP画像を貼りつけて、その上にマウスカーソルが
あるかどうかを感知したいんですかね?

0216デフォルトの名無しさんNGNG
>>215
単純にグラフィックしたいだけかも知れんぞ。
それなら、そのままFormに描けばいい。
あと、Messageについて勉強することだな。
0217デフォルトの名無しさんNGNG
>>184-189
まだ読んでるかな?
VC++のウィザードってのは、あれはたんっっっっなる
ソースコード生成ツールだからその点よろしく。
でもMFCを使うならウィザードが作るコードを骨組みに
するのがお勧め。
0218デフォルトの名無しさんNGNG
>>184
3はギャグだよな?
0219208NGNG
>>216
そうです。その通りです。

Form に描画の処理書く方法もあるんですが、ピクチャボックスっぽい外観を
付けたい場合はどうすればいいんでしょう?
(左半分に描画域、右半分にボタン類を付けたい)

CView クラスをそのまま継承すれば描画処理は簡単に作れると思いますけど、
どうしてもフォームベースで作ってみたいんです。
0220デフォルトの名無しさんNGNG
スレ違いのような気もするのですが…教えてください。
VC++でフリーソフト作って公開するに当たって、
中には「動作環境」を記載しているサイトもありますが
あれはロウスペックのPCに入れて動くか動かないかを
徐々に試していくしか方法はないのでしょうか?

それともPCの動作を制限し、その上でexeファイルを動かせるような
ソフトがあるのでしょうか?
0221デフォルトの名無しさんNGNG
>>219
Staticか、使ったこと無いけどPictureコントロールを貼り付けて
右クリックでプロパティー出してスタイル変更。
設定できないスタイルや背景色はは、別途プログラムで変更できる。
ttp://www.kumei.ne.jp/c_lang/ も参考にするべし。
0222デフォルトの名無しさんNGNG
ウインアプリでウインドウを作る時に
myProg.hbrBackground=GetStockObject(WHITE_BRUSH);//背景
の所に
error C2440: '=' : 'void *' から 'struct HBRUSH__ *' に変換することはできません。
と言うエラーが出るのですが、解決方法を教えてください。
0223デフォルトの名無しさんNGNG
myProg.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);//背景
0224デフォルトの名無しさんNGNG
>>222
これは良く出るエラーだな。型をしっかり指定すればOK!
0225デフォルトの名無しさんNGNG
>>220
「CPU:最低400MHz」とかいうの?
ゲームとかでヨッポドタイムクリティカルなものでもなければ、意外と適当と思われ。
自分のPCで、クロックダウンして動かしてみるとか(w
0226デフォルトの名無しさんNGNG
今まで、ボーランドのフリーの使ってましたが、ここを読んで、勢いあまってVC++.NET購入したんですけど、使い方が全然分からないです。
とりあえずプログラム動かしたいんですけど、どうすればいいんすか?
誰か丁寧に教えてくだしい。
0227aaaNGNG
http://www5b.biglobe.ne.jp/~ryo-kyo/osu.html

http://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/279026/pack/win95/game/table/pachinko/sikisai.lzh
0228デフォルトの名無しさんNGNG
>>226
「Windowsプログラミングの基礎知識」 柏原 (ascii)
おすすめ。
0229デフォルトの名無しさんNGNG
>>225
クロックダウン…なるほど…
危険そうな言葉ですが頭には入れておきます。
どうもありがとう!
0230デフォルトの名無しさんNGNG
COM コンポーネント作ってみたんですけど、全体的に作り直したいんで、
全部削除して最初からやり直したいんです。

COM って作った時点でレジストリに登録されますよね?
ですから、作業フォルダだけ消したら問題が生じると思うんですが。。。
レジストリから削除するにはどうすればいいんですか?
0231デフォルトの名無しさんNGNG
regeditで削除すりゃいいじゃん。
0232デフォルトの名無しさんNGNG
Windows2000で、通常使用するプリンタを任意に
切り替えるプログラムを作成したいのですが…。
SetPrinterが失敗してしまって、切り替えることができません。
なにか方法はありますでしょうか?
0233デフォルトの名無しさんNGNG
>>220=229
最低限のクロック周波数なんてみんな結構いい加減だよ。
「責任逃れ」な値を書いておけば大丈夫(笑)

それよりもプラットフォーム(98/Me/NT4.0 等)の心配したほうがよろし。
0234bloomNGNG
http://www2.leverage.jp/start/
0235デフォルトの名無しさんNGNG
>>233
あれって、手持ちにあるPCの中でも低スペックのもので動作させて、
満足行くような処理が出来たらそれが最低環境っていう風に決めてんじゃないの?
0236デフォルトの名無しさんNGNG
超初心者は何やったらいいんだろう・・・
とりあえず箱を抱いて寝ています。
0237デフォルトの名無しさんNGNG
デバッグ実行後メモリリーク(解放忘れ)があった場合、
そのことがアウトプットに表示されるようにするには
どうすればいいのでしょうか?
知人が表示させているのを見たことがあるのですが、
どこで設定すればそうなるのかわかりません。
0238デフォルトの名無しさんNGNG
>>237
デバッグ環境だと普通に表示されると思うが。。。
0239237NGNG
>>238
それが、WinMainで
char *p = new char[ 100 ];
を実行して、そのままdeleteせずに
終了しても何も表示されません。

ひょっとして、何かincludeしなければ
いけないとかいうことなのでしょうか?
0240デフォルトの名無しさんNGNG
>>239
単にデバッグ版を実行してるだけじゃなくて?
0241デフォルトの名無しさんNGNG
>>239
非MFC環境の場合であれば

#include <crtdbg.h>
_CrtSetDbgFlag()

これらに関連する関数等を調べていけば、
何かわかってくるかと。
0242デフォルトの名無しさんNGNG
俺の場合はAfxBiginThreadで起動したスレッドの先頭でCString msg;として
その中でmsg.Format云々を使ったりするとメモリリークになるんですが。
0243237NGNG
>>241
その関数を実行することで
リークが表示されるようになりました。
ありがとうございます。
0244222NGNG
>>223-224 できました。ありがとうございました。
0245デフォルトの名無しさんNGNG
>>242
TerminateThread使ってない?
0246デフォルトの名無しさんNGNG
ハンドルをグローバル変数にするのはだめですか?1回1回引数で渡すより
早いような気がして。後々問題とか出てきそうですけど。
0247かおりん祭りNGNG
http://www.saitama.gasuki.com/kaorin/

  〜oノノハヽo〜
     ( ^▽^)/⌒\                       , −-
     ((ニ[二=(  こんなのがございま−−==≡≡す♪  ))
   /∧=:||  \_/                       `ー‐‐'
     じ/___/
0248デフォルトの名無しさんNGNG
>>246
別に駄目って事は無いぞ。
0249デフォルトの名無しさんNGNG
Java厨じゃないんだから
グローバル=悪なんて固定観念
持つ必要はない
ライフタイムがプロセスと同一とか
終始アクセスが発生するとか
必要なら使えばいい
0250デフォルトの名無しさんNGNG
>>249
Javaだと駄目なのか?使ったこと無いから知らん。
0251デフォルトの名無しさんNGNG
分かりました。ありがとうございました。
0252超初心者NGNG
visualc++で、ボタンを押すと新しいフォルダを作成するようにさせるには
どうしたらいいですか??
0253デフォルトの名無しさんNGNG
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
のどこから
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
を呼び出しているのですか?うまく質問できないのですが、教えてください。
0254デフォルトの名無しさんNGNG
DispatchMessage(&msg);
0255デフォルトの名無しさんNGNG
>>253
CALLBACKの付いた関数はソースからではなく、
ウインドウズ(OS)から呼び出されるんですよ。
0256デフォルトの名無しさんNGNG
>>252
何か1冊初心者向けの本を読んだほうが良いと思われ。
フォルダの作成と、ボタンに反応する関数の作り方では
アドバイスが異なります。

0257253NGNG
>>254-255 分かりました。ありがとうございました。
0258デフォルトの名無しさんNGNG
>>245
使ってないっす(´Д`;)
そのスレッドの中でWaitForSingleObjectでループしてるんですが
そのループ内で宣言してあげたら何故かメモリリークが取れました。
・・・なぜ・・・?
0259デフォルトの名無しさんNGNG
// formatting (using wsprintf style formatting)
void AFX_CDECL CString::Format(LPCTSTR lpszFormat, ...)
{
ASSERT(AfxIsValidString(lpszFormat));

va_list argList;
va_start(argList, lpszFormat);
FormatV(lpszFormat, argList);
va_end(argList);
}

void AFX_CDECL CString::Format(UINT nFormatID, ...)
{
CString strFormat;
VERIFY(strFormat.LoadString(nFormatID) != 0);

va_list argList;
va_start(argList, nFormatID);
FormatV(strFormat, argList);
va_end(argList);
}
0260デフォルトの名無しさんNGNG
>>258
シングルスレッド用のライブラリになってない?
0261デフォルトの名無しさんNGNG
ウインアプリで、何もイベント(キーが押された、マウスが動いた等)が起こって
いないのに、表示したりできますか?できるなら教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
for(;!kbhit();)printf("%8d",rand());
return 0;
}
コンソールで書くと、こんな感じです。
0262デフォルトの名無しさんNGNG
乱数を使ってタイマーを設定すればよろしいかと。
0263デフォルトの名無しさんNGNG
もまいらのおすすめの文献をおしえr・・・教えて下さい!
始めたばかりの初心者にぴったりな文献を、どうか、お願いしまつ。

Windowsプログラムより先に、MS-DOSのプログラムを先に
勉強した方がいいんでつか?

初心者的質問スマソ(´Д⊂
0264デフォルトの名無しさんNGNG
推薦図書/必読書のためのスレッド PART 9
http://pc2.2ch.net/test/read.cgi/tech/1046937366/
0265261NGNG
>>262 できました。ありがとうございました。
0266デフォルトの名無しさんNGNG
マイクロソフトのC++でソフトを作りたいのですが
販売しているパッケージがいろいろあってどれを使えば買えばいいのか
分かりません、以下の用途の場合どのパッケージを買ったらいいのでしょうか?

・C/C++はまったくの初心者で使いながら学習していきたい
・画像ビューアを作りたい、GV,Susie,IrfanViewのようなもの
0267デフォルトの名無しさんNGNG
>>266
standard で十分と思ふ。
お金に余裕があるなら Professional を
購入してもいいと思うけど。

Win98なら、VC++6.0しか選択肢なし。
Win2000/XPなら、VC++.NETも使える。

.NETは良く分からんので、他の人に聞いとくれ。

0268デフォルトの名無しさんNGNG
>>266
一番高いのを買っておけば間違いはないよ
0269デフォルトの名無しさんNGNG
VC++を買うなら最低Pro。Standard買うぐらいならbccなりgcc(Migw/Dev-C++)で充分。
もっとも.netの場合VC++.netはstandard版しかないので自動的にVisual Studioになるが。

ちなみにアカデミック版VS.netはVS 2003への無償アップグレードの対象外らしいので注意。
0270デフォルトの名無しさんNGNG

VC++ Pro と Std の違いは
Standard -> MFC のみ
Professional -> MFC + ATL
だと思ったのですが、ATLってのはそんなに便利なんですかね?

自分はVC++6.0 Pro持ってるんですが、ATLは使ったこと無いので、
MFC + Platform SDK で十分かなぁと思ったもので。

0271デフォルトの名無しさんNGNG
わざわざ金払って最適化もできないコンパイラが欲しいなら止めないが。
0272デフォルトの名無しさんNGNG
つーか舞糞よ
いいかげんVisualC++.net Pro出せ
Stdなんか買うがボケが
0273学生NGNG
>>272
はげどう。
でも漏れは2003赤出身苦を待つけどなー。
0274デフォルトの名無しさんNGNG
>>270
>ATLってのはそんなに便利なんですかね?
人による。俺はATL+WTLの組み合わせが大好きだがね。
いずれにせよStdにもATLは付いているとは思うが。
0275266NGNG
おすすめは Pro のようですね
単品でのProはやっぱりないのですね、Standardしかないからおかしいと
思ってました・・・

ついでといってはなんですが、でた話で聞きたいことが
今購入すると2003への無償アップグレードが可能なのですか?
2003はいつごろ発売予定なのでしょうか?

ちょっとスレと離れてきてすいません
0276デフォルトの名無しさんNGNG
すいません。
ソース打ち込んでるときに"cout"(もちろんこの他も)と打ち込みビルドすると、
Unicode識別子はサポートされていません となり、エラーが起こってしまいます。
どうしたらよいでしょうか?
0277デフォルトの名無しさんNGNG
>>276
全角で打ち込んでないか?
スペースとか。
0278159NGNG
あれからこの板に来てなくて今見にきたらレスがあったので
返答を…古い書き込みに対してのレスですいません。

>>172
大当たりでした!!まさにそのとおりです。
おかげさまでワークスペースを開くをボタンイメージにして、
開くの横に設定できました。こんなチェックボックス今までいじったこと
ないのになぜだったんだろう…?
でも、治って(思い通り)嬉しいです、ありがとうございました。
そして私の書き込みに対して返答してくれた方もありがとうございました。
0279デフォルトの名無しさんNGNG
質問です。
DLL内で自分で発行したWM_TIMERを受け取るには
ウィンドウ作るしかないんでしょうか。
0280デフォルトの名無しさんNGNG
スタティックコントロールって MOUSEMOVE イベントは受信できないんですか?
追加する方法ってあるんですか?
0281デフォルトの名無しさんNGNG
cout << "ゲームオーバー" << end;

↑を打ち込んでビルドしたら、
error C2297:'<<':無効な右オペレントです。 と言われますた。
どうすればいいんですか?
0282デフォルトの名無しさんNGNG
>>281
endじゃなくてendl
エルがつくの。
0283281NGNG
>>282
そうなんですかw
ありがとうございます。

ぶっちゃけ、end1;と打ってました(w
すいませんでした。
0284281NGNG
cout << "ゲームオーバー" << endl;

上を打ち込んでビルドしても、
error C2297:'<<':無効な右オペレントです。 と言われますた。。。
どうしたらいいでしょう。。
0285デフォルトの名無しさんNGNG
>>284
#include <iostream>
using namespace std;は?
0286281NGNG
こんな感じです。>>285
#include <iostream>
#include <time.h>
#include <math.h>
#include <stdlib.h>

void main()
{
//変数宣言
int ans, myans, score;
bool bContinue = true;
char res;

//ゲームのループ
while(bContinue){
cout << "***** 数当てゲーム *****" << end1
<< "こちらが考えている0-99の範囲の数を当ててください" << endl;

score = 0;
srand((unsigned)time(NULL));
ans = rand() % 100;

0287281NGNG
//プレイ中のループ
while(1){
cout <<"数値を入力してください" << endl;
cin >> myAns;

// 正否判定
if(myAns == ans)
break;

//程度判定
if(abs(myAns - ans) > 30){
cout << "かなり";
}else{
cout << "少々";
}

// 大小判定
if(myAns > ans){
cout << "大きいです。" << endl;
}else{
cout << "小さいです。"<< endl;
}


score++;
}

//プレイ終了処理
cout <<"正解です!"<< end1
<<"あなたは、"<< score <<"で正解しました!"<< endl;
0288281NGNG
cout << "リプレイしますか?(y/n)";
cin >> res;
if( res != 'y' && res !='y')
bContinue = false;
}

//ゲーム終了処理
cout << "ゲームオーバー" << endl;
}
0289mainはintにしろよNGNG
>>286
main()の上にでもusing namespace std;と書くか、coutやendlにstd::をつける。
0290281NGNG
>>289
using namespace std;と入れたところ、エラーが激減しました。
ありがとうございます。

あと、エラーふたつあるんですが、

//プレイ中のループ
while(1){
cout << "数値を入力してください" << endl;
cin >> myAns;
の三行目に対し、
error C2065:'myAns':定義されていない識別子です。
error C2593:'operator >>'があいまいです。

となってしまいました。
0291デフォルトの名無しさんNGNG
>>290
C++では識別子は大文字と小文字を区別する。
0292デフォルトの名無しさんNGNG
>cout << "***** 数当てゲーム *****" << end1
・・・
0293281NGNG
>>291
A→aにしたところ、識別子エラーがなくなりました。
>>292
全角スペースを半角にしました。

お二方ありがとうございます。

また、エラーが発生しました。
error: LNK2019:未解決外部シンボル_WinMain@16関数_WinMainCRTStartupで参照されました。
fatal error:LNK1120:外部参照1が未解決です。

と表示されますた。
0294デフォルトの名無しさんNGNG
>>293
Win32 Console Applicationでプロジェクト作り直してみて。
0295281NGNG
>>294
出来ました!
ありがとうございます。

いろいろご教授してもらい、皆様、誠にありがとうございました。。
0296デフォルトの名無しさんNGNG
>>280
スタティックコントロールの背景のウインドウ(親ウインドウ)
にMOUSEMOVEイベント送られて来てないですか?

ペゾルトによるとスタティックコントロール上でマウスの移動や
クリックがあると、コントロールが親ウインドウに WM_NCHITTEST
を送って、DefWindowsProc がこれをクライアント領域の
マウスメッセージに変換するそうです。
クライアント領域で自分でマウスの位置を計算するか、コントロールを
サブクラス化するしかないんじゃないでしょうか。


0297デフォルトの名無しさんNGNG

ところで HTTRANSPARENT ってなんですっけ?
どこかで見た記憶があるんですが、関数なのか
パラメータ値なのか、メッセージなのか忘れてしまった。

0298デフォルトの名無しさんNGNG
WM_NCHITTESTの返り値。
In a window currently covered by another window in the same thread
(the message will be sent to underlying windows in the same thread
until one of them returns a code that is not HTTRANSPARENT)
だそうだ。
0299デフォルトの名無しさんNGNG
>>297
検索の仕方も忘れたか
0300デフォルトの名無しさんNGNG
VC++.NETで
http://members.tripod.co.jp/aiton21/a.jpg
こんな感じの、リストの上をクリックしてソートできる物を作りたいのですが
http://members.tripod.co.jp/aiton21/b.jpg
ここからどうやればよいのか分かりません。。。
とりあえずリストボックスを書いてみたんですが
ほかにそれらしき物は見当たらず・・・。
0301デフォルトの名無しさんNGNG
>>298
あー 発見しました。
WM_NCHITTESTの返り値でしたか。

>>299
MSDNのキーワードで検索してますた。^^;
0302デフォルトの名無しさんNGNG
>>300
リストビューのレポート形式
0303デフォルトの名無しさんNGNG
音楽再生機能を持たせたいのだが参考になるものないかなぁ・?
0304デフォルトの名無しさんNGNG
VC++でボタンなどにビジュアルスタイルを対応させるためのソースコード教えて下さい。
0305デフォルトの名無しさんNGNG
インスタンスハンドルからウインドウハンドルを取得したいのですが、
何かいい方法はありますか?
0306デフォルトの名無しさんNGNG
>>305
残念でしたまたどうぞ
0307デフォルトの名無しさんNGNG
>>303
Google
0308デフォルトの名無しさんNGNG
>>306
氏ね
0309300NGNG
>302
どもです!ちょっと試してみます。
0310デフォルトの名無しさんNGNG
>306
どもです!ちょっと試してみます。
0311300NGNG
C++難しいっすね・・・。かなり疲れました。
無事リストを描けたんですがリストにアイテムを追加
するにはどうすればよいんですか?コントロールの変数しか
追加できないんですが・・・。
0312デフォルトの名無しさんNGNG
コンソールアプリ+外字エディタの将棋をウインアプリに作り直したいと
思っているのですが、CONの思考中(再起呼び出し中)落ちたりしませんか?
0313デフォルトの名無しさんNGNG
>>312
あんたがヘタレだから落ちます。絶対に。
0314デフォルトの名無しさんNGNG
>>312
落ちるかどうかはどうプログラムを組むかによるだろ。
313に同意。

>>311
MSDN見ろ
0315214NGNG
いや見たんですけど分からなくて。。。
もっかい見てみます。
0316300NGNG
↑300の間違いです
0317デフォルトの名無しさんNGNG
MSDNのDirectXのヘルプはわかりやすかったが、
VisualC++関係のヘルプの日本語が理解できないです。
助けてください。
0318312NGNG
>>313-314 強さは激指1三段の2枚落ちと互角です。そこそこだと思うのですが。
コンソールアプリだと永久ループでキー入力を待っています。CONの思考中の時は
再起呼び出し中から抜けるボタンを用意しています。ただウインアプリはイベント
トリブン方式(始めから永久ループが用意されている)なのでどうかなと。
思考中に小分けにWinMainの永久ループに戻すみたいなことをすればいいの
ですかね。

永久ループ→CONの手番→CONの思考
↑           ↓
←    ←    ← 抜けるボタン(中断など)を押した∨思考終了
0319デフォルトの名無しさんNGNG
>>318
いやアンタのアルゴリズムが強いか弱いかじゃなくて……

スレッドつくってそっちに任せたほうがいいんじゃないか。
0320デフォルトの名無しさんNGNG
>>307
みつからないんですぅ〜
0321デフォルトの名無しさんNGNG
>>305
ウインドウハンドルからインスタンスハンドルはできますけど、
逆はできるんですかねぇ。俺も知りたいところですが。
0322デフォルトの名無しさんNGNG
>>321
出来たとしても使ってるウインド全部引き連れてくるんじゃないの。
0323デフォルトの名無しさんNGNG
当方の使ってるソフトがvisual C++.net で、
参考書(古い奴)通りにやると、古いとか何とかがでるんだけど(ビルド時じゃなくて)、
新しい参考書買ったほうがいいのかな?
0324デフォルトの名無しさんNGNG
>>323
説明不足で回答不能。
0325デフォルトの名無しさんNGNG
>323
CやC++の本の勉強をVCでやろうとしてる?
0326デフォルトの名無しさんNGNG
>>323
どうせANSI以前の本でも借りてきたんだろ
大人しくVC++.NETの本を買っとけ
どうせANSI準拠の本買ってもコンパイラ通るか怪しいんだから
0327323NGNG
>>324
すいません。。
>>325
その通りです。
>>326
うぃ。
0328デフォルトの名無しさんNGNG
>>327
ソースとエラーメッセージをうざく無い、程度に書きこんでみるのが吉。
誰か親切な方が、それなりに答えてくれますよ。
0329デフォルトの名無しさんNGNG
>>322
そうですね。
やっぱりできないのかな。複数のウインドウハンドルが
返って来ても、どれが欲しいハンドルなのか判別できないような
気がする。
0330デフォルトの名無しさんNGNG
>>329
結局何がやりたいのか相談したら?
別のもっといい方法があると思うが。。。
0331デフォルトの名無しさんNGNG
>>329ですが。

>>330
漏れは質問者ぢゃないので。^^;

0332デフォルトの名無しさんNGNG
クラスのメンバ関数を呼び出すのはオブジェクトを定義しないとむりですか?
0333デフォルトの名無しさんNGNG
>>332
static関数にすれば呼べるが、クラス設計に注意汁。
0334デフォルトの名無しさんNGNG
仮想関数だから無理だボケ!って言われました。。。
もうちっと勉強してきます
0335335NGNG
■ VisualC++(MFC限定)相談室 MFC7.dll■から誘導されてきました。
質問なんですが
あるcppファイルから他のヘッダを取り込んで
他のヘッダにあるクラスでオブジェクトを宣言しようとすると、
コンストラクタ関数を呼び出したことになってしまいます。
オブジェクトを新たに宣言できないんですがどうすればいいですか?
0336デフォルトの名無しさんNGNG
>>335
イマイチ言ってる意味がわからんのだが。
あるクラスのインスタンスを宣言したらコンストラクタは必ず呼び出される。

プログラム開始時に呼びたくないのであればポインタで宣言して好きなときにnewしる
0337デフォルトの名無しさんNGNG
>>335
クラスの構成がこんな感じになってたりするとか?

--A.h--
#include "B.h"
class A{ ... B testB; };
------
--B.h--
#include "C.h"
class B{... C testC };
------
--C.h--
#include "A.h"
class C{... A testA };
------
0338デフォルトの名無しさんNGNG
>>335
MFCスレをみてきたけど……
正直、もう少しC++について調べる必要があると思われ。
知識なさすぎ。

……人に聞くのは「調べる」って言わないからね。念のため。
0339デフォルトの名無しさんNGNG
>>335
VisualC++の初心者向けの本とか買ったのか?
それ見ながらいろいろ試してやっていきなさい

0340335NGNG
>336
どもです。それは分かるんですが、インスタンスを宣言した
ということにならず、そのくらすのコンストラクタを呼び出したことに
なっちまうんです。
newに関してはよく知らんですが見てみます。
>337
そうではないです。
そういう構成は何か支障があるんですか?
>338
正直自分でも痛感です。全然進まないし。。。
>339
参考書買おうと思っても、.NETの参考書って
なかなかないんすよね。VC++6の参考書で大丈夫ですか?
ってかそもそもC++の知識がままならないっすね・・・。
0341デフォルトの名無しさんNGNG
VC++.netでDirectX使う場合なんですが
DirectXのテンプレート使わないでライブラリの設定をするには
どうやるんでしょうか?
0342デフォルトの名無しさんNGNG
グローバル変数を "testglobal.h" で定義して
それを CTest1 や CTest1Dlg で使いたいんですが
両方の cpp の先頭に include "testglobal.h" ってやると
Test1 error LNK2005: "int abc" (?abc@@3HA) は既に Test1.obj で定義されています。
って感じにリンクエラーになります。
CTest1 のヘッダだけに include を入れても同様のエラーになってしまいます。
どうすれば CTest1 でも CTest1Dlg でも使えるようになるんでしょうか?
0343デフォルトの名無しさんNGNG
>>342
1. グローバル変数は使用するべきではない。設計を見直すこと
2. どうしてもそれがムリな場合、Singletonの採用を考えること。
3. それもむりならグローバル変数の宣言部にexternをつけること。
0344デフォルトの名無しさんNGNG
>>342
>>343の言っていることが普通だが、3.のテクニックとして。


--testglobal.h--
#if _AS_MAIN_
int abc;
#else
extern int abc;
#endif

--main.cpp--
#define _AS_MAIN_ ←その他のソースでははずす。
#include "testglobal.h"
main()
{
....
}
とすると間違い起こりにくいのだが。
なるべく使わないにこしたことはなし。
0345デフォルトの名無しさんNGNG
VC6.0 のことで質問なんですけどで 
不正処理でダウンした後、
ワークスペースを新規作成したときに 
プロジェクトの設定 >source files(等) > 一般 の
「 このファイルをビルドしない 」 の項目に
チェックが常に付くようになって、いちいちチェックはずすのめんどくさいんですけど

どこのオプションをいじれば、元のように戻るでしょうか?
0346猿NGNG
CFileDialogで詳細表示の項目にオリジナルの項目を追加したいのですが
どうすれば宜しいでしょうか?ご指導願います(名前、サイズ とか表示されているところです)
0347デフォルトの名無しさんNGNG
>>335 = >>342だろ?
急がば回れ。C言語の(以下略)
0348デフォルトの名無しさんNGNG
static LPBYTE lpBuf;
static WAVEHDR wh;
wh.lpData=lpBuf;//エラーの場所

error C2440: '=' : 'unsigned char *' から 'char *' に変換することはできません。(新しい動作 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

このエラーの解決法を教えてください。
0349デフォルトの名無しさんNGNG
>>348
明示的なキャストが必要。(char*)lpBuf
0350335NGNG
>347
違いますよ。。。エラーの内容も違うし。
0351348NGNG
>>349 できました。ありがとうございました。
0352デフォルトの名無しさんNGNG
CreateMutex で MUTEX を作成して、アプリの多重起動を防ぐ方法はわかりました。
ところで、自分で作成したアプリならMUTEXの文字列はわかりますが、
そうでないアプリのMUTEX文字列がわかりません。
これを調べるのにはどんな方法がありますでしょうか?
0353デフォルトの名無しさんNGNG
>>352
それは俺も知りたいなぁ

まぁ名前をできるだけ長くしておけば大丈夫だと思う
アプリケーション名、作者名、開発環境、ジャンルなどで
例:test_exe__Nanashisan__Microsoft_VisualC__GameProgram

邪道なやり方だけど多重起動を防ぐ他の方法としては
実行ファイルから多重起動防止用のファイル(test.dat)を排他モードで開きっぱなしにする
実行ファイル終了時自動的にクローズされる(実際にやったことないけど
0354デフォルトの名無しさんNGNG
名前はGUID使えばよし
0355デフォルトの名無しさんNGNG
最近VBからVCに移ってきた者です。おながいします。m(__)m
VCで自作のクラスを作り、hファイルとcppファイルに分けて
保存し、それを別プロジェクトで取り込んだのですが、コンパイル時
に「**.hファイルがありません。」と言われます。
そのプロジェクトでしかインクルードしないので、オプションの設定で
インクルードファイルのパスとして登録したくないのですが、
どうしたらいいのでしょうか?
0356デフォルトの名無しさんNGNG
絶対パスで指定する。相対パスで指定する。プロジェクトの設定でインクルードパスを追加する。
0357デフォルトの名無しさんNGNG
ムハハハッハハハハッハハハッハ!!!!!!!!!!!!!!!!!!!!
0358355NGNG
>>356
早速ありがとうございます。m(__)m
プロジェクトの設定のリソースタブのインクルードファイルのパス
でそのファイルのパスを指定したのですがやはりダメでした。。。
0359デフォルトの名無しさんNGNG
データムハハハッハッハハ!!
0360デフォルトの名無しさんNGNG
>>358
まさか
#include <ファイル名>
と言う風に開いているのではあるまいな?
0361355=358NGNG
>>360
いえ、#include "ファイル名" です。
パス指定すればコンパイルできたのですが。。。
0362デフォルトの名無しさんNGNG
(´-`).。oO(日本語ファイル名とか……
0363355NGNG
>>362
いえ、普通の英語名です。なんでだろう。。。
とりあえずパス指定でコンパイルできたので(356さんありがとう)
それで進みます。
みなさんお騒がせしてすみません。。。
0364デフォルトの名無しさんNGNG
>>358
まさかとは思うがファイルそのもののパスを指定していないだろうな?
ファイルのパスではなく、インクルードファイルが格納されているフォルダを指定するんだぞ
0365358NGNG
>>364
すいません...(TT)
いえ、インクルードファイルのパスというエディットボックスに
ちゃんとフォルダのパスを入れてるんですよぉ(C:\省略\Control\Common)。
0366デフォルトの名無しさんNGNG
マウス系のイベント欲しくて

stdafx.h に

#define _WIN32_WINNT 0x0400

付け加えたらデバッグでは動くのに
リリースでは落ちてしまいます。

何か原因考えられますか?
0367756NGNG
#define _WIN32_WINNT 0x0400
のせいじゃないと思う、なんとなく。適当でスマソ。
0368デフォルトの名無しさんNGNG
>>365
つーかちゃんとプロジェクトのワークスペースのファイルビューでソースとヘッダを追加してるか?
0369365NGNG
>>368
してます、してます(TT)。
でも初心者的な質問なのですが、ファイルを追加した時点でVCはどのファイルが
インクルードされてるかわかっているのに、なんでインクルードファイルの
フォルダを指定しないといけないのか理解できないのですが。。。
これだとあるa.hというヘッダをインクルードしてもフォルダ参照にされてなくて
もし参照されているフォルダに同名のa.hが存在したらPGするとき混乱するような
気が。。。VC歴が数ヶ月なのでアホな質問だったらすみません。VBだとファイルを
追加したらそのパスがプロジェクトファイルに書かれているのですが、
確かにVCのプロジェクトファイルには取り込んでいるファイルのパスは書かれて
いない(ファイル名のみ)ですね。
あくまで参照するフォルダを指定する必要があるんですね。。。
0370デフォルトの名無しさんNGNG
そのソースとヘッダはプロジェクトファイルと同じ場所にあるの?
0371365NGNG
>>370
いえ汎用なので別のフォルダに両方とも入っています。
0372デフォルトの名無しさんNGNG
>>371
>>369をしっかり読んでなかったよスマソ。
つーかやっぱりこの場合はフォルダ指定しなきゃ駄目なんじゃないかね。
0373365NGNG
あ、適当なこと書いてしまいました。
VCのプロジェクトファイル(dsp)も別フォルダから取り込んだファイルの
パスを相対パスでちゃんと管理していますね。
だとしたら余計インクルードパスを指定する必要がわからない。。。(TT)
0374365NGNG
>>372
何度もすみません。
VCというよりC++コンパイラの仕様なんでしょうかね。
仕様ならしようがないので納得します。
こんなオチですみません。。。
0375デフォルトの名無しさんNGNG
>>374
プロジェクトの設定⇒タブ:C/C++⇒カテゴリ:プリプロセッサ⇒インクルードファイルのパス(N)
なら相対or絶対パスでも大丈夫。
0376デフォルトの名無しさんNGNG
>>375
10レス程度前のレスも読めんのか
0377デフォルトの名無しさんNGNG
>>376
てめーこそ良く見やがれ。糞が。
>358 名前:355[] 投稿日:03/04/14 20:28
>>>356
>早速ありがとうございます。m(__)m
>プロジェクトの設定のリソースタブのインクルードファイルのパス
>でそのファイルのパスを指定したのですがやはりダメでした。。。

リソースタブで指定してるからおかしいってんだ。
ボケ、氏ネ。

0378365NGNG
>>375
ありがとうございます!
で、できました!!!

>>376
いえ、僕の間違いでした。
リソースタブでインクルードファイル指定してました。
お騒がせしてほんとにすみません。
初心者なので許してください...m(__)m >レス下さったみなさん

逝ってきます。(TT)
0379377NGNG
>>378
>ボケ、氏ネ。
これは、>>376 に対するものだから気にしなくていいよ。
>>377は日本語が不自由なようだ。
0380365NGNG
>>377
いえ僕の文章もだらだらと読みづらかったのですんまそん。
またいろいろ教えてくださいね。ではでは。。。
0381デフォルトの名無しさんNGNG
最後はマターリとしました!
0382デフォルトの名無しさん NGNG
VisualC++勉強したいけど近所の本屋にはVisualC#.NETの本しかない・・・。(TAT)
0383デフォルトの名無しさんNGNG
ちょっと大きい本屋行けばまだまだあるよ。
わかり易いかどうかは別だけど。
0384デフォルトの名無しさんNGNG
>>382
図書館は?
0385デフォルトの名無しさんNGNG
>>340
コンストラクタを呼び出されたら、クラスのインスタンスは必ずあるはずだが?
そもそもコンストラクタが呼び出されると何か問題があるの?

newも解らないようじゃ…
.NETとかVCではなくC++の参考書でも読んで勉強し直してきた方がいいですね。
0386デフォルトの名無しさんNGNG
>>379
おまえも日本語が不自由みたいだなw
0387デフォルトの名無しさんNGNG
>>384
逆にQuickCとか置いてそう
0388デフォルトの名無しさんNGNG
ejanaika ejanaika
0389352NGNG
>>354
>名前はGUID使えばよし

ありがとうございます。GUIDってなんでしょうか?
0390デフォルトの名無しさんNGNG
>>386
脳なしに言われたないわい。
0391デフォルトの名無しさんNGNG
>>389
せめて検索くらいしろボケ
氏ね
0392デフォルトの名無しさんNGNG
すいません。教えてください。

CFont m_Font;
LOGFONT lf;
m_Font.GetLogFont(&lf);

上記は正常に動くのですが、lf をポインタで宣言して、

CFont m_Font;
LOGFONT* lf;
m_Font.GetLogFont(lf);

と変えるとm_Font.GetLogFont(lf);の行でエラー
「値が割り当てられていないローカルな変数 'lf' に対して参照が行われました。」
が出るのはなぜなのでしょうか?
0393デフォルトの名無しさんNGNG
>>392
ちょっと考えれば当たり前だと思うけど……

GetLogFontは、与えられたポインタが指し示すメモリにフォント情報を格納するのね。
上の場合はlfという変数の領域に格納するから問題なし。
下の場合はいったいどこにフォント情報を格納すればいいのでしょうか?
0394デフォルトの名無しさんNGNG
>>392
エラーメッセージのそのまんまの意味。
lfが有効な値になっていない(実体を指していない)から。
つかこんなんC言語の基礎中の基礎だが大丈夫か?
0395デフォルトの名無しさんNGNG
型さえ合っていればいい、っていう考え方なんだろうね。
その関数がどんな動きをするか考えようともしない。
0396誠心君NGNG
ちょ〜素人だけどフ゜ログラマーカメラ電波機械全般に詳しい人探したいけど、どうしたらいいのおちえて?
0397デフォルトの名無しさんNGNG
外国の方が来られたようです。
0398デフォルトの名無しさんNGNG
                     |\
┌──────────┘- \
│  外国の方が             \
│                     /
└──────────┐- /
      ヽ(´ー`).ノ       |/
        (  へ)
        く
                  - = ≡三                    |\
               - = ≡三  ┌──────────┘- \
               _ = ≡三    │                     \
                ̄ = ≡三    │     いらっしゃいます       /
               - = ≡三  └──────────┐- /
        (´ー`)        - = ≡三                     |/
      ( ヽ ヽ)
       /  >
0399342NGNG
>>343-344
すみません。調べたんですが難しすぎてよくわかんないです。
もっと簡単なもんかと思ってたんですが…
でも、グローバル変数は普通使っちゃいけないんですね。
ド素人なもんでそんな事もしりませんでした。

一番わかりやすそうな
CTestApp のメンバ変数にして 他のクラスからは
AfxGetApp で取る事にしようと思います。

ありがとうございました。

>>347
???
0400猿NGNG
>>346 です。CFileDialogを拡張して
hList = GetListViewInner();// リストビューのハンドル確保
hHead = ::GetWindow(hList, GW_CHILD);// そのヘッダーのハンドル確保
LV_COLUMNを利用して項目を追加するも詳細表示の表示項目その他を選択すると
落ちてしまいます。どなたかよきアドバイスをお願いします。
やはり1から作成するしかないのでしょうか?
0401デフォルトの名無しさんNGNG
>>400
マルチうぜー
0402デフォルトの名無しさんNGNG
#include <stdio.h>
#include <windows.h>
int main(void)
{
char c;
char a[3]={3,4,5};
char b[3]={3,4,5};
c=strcmp(a,b);
printf("c=%d\n",c);
c=lstrcmp(a,b);
printf("c=%d\n",c);
}

aとbを比較するとき、等しい場合は0が返ってくると思うのですが何故か
c=1
c=-1
になってしまいます。何故でしょうか?
0403デフォルトの名無しさんNGNG
文字列を比較する関数を使っているからです
0404デフォルトの名無しさんNGNG
>>402
文字列になっていない(終端文字がない)から
0405デフォルトの名無しさんNGNG
>>403
レスありがとうございます。おっしゃる通りでした。
0406デフォルトの名無しさんNGNG
すいません。教えてください。あるサンプルを見ていたのですが、

CString strHtmlPath = _T("C:\\tmp.html");

の _T はどういう処理をしているのでしょうか?
MSDNで調べると「データ型のマッピング」と書かれているのですが
データ型のマッピングという言葉の意味がわかりません。
_T というものはどう言うときに使うものなのでしょうか?

それから、その後に、

Navigate2(strHtmlPath, NULL, NULL);

となっているのですが、MSDNでNavigate2メンバ関数を調べると、3つにオーバーロード
されていて、どれも第一引数がポインタとなっています。
が、上記strHtmlPathは前述の通りCString型の実体として宣言されています。
これはどう言うことなのでしょうか?CString型ということが何かカギなのでしょうか?
0407デフォルトの名無しさんNGNG
>>406
MSDNにも書かれていますが、
_Tは文字列がUnicodeで記述されている場合に、
L"文字列"に置き換えて、その他の場合には
単に削除されるようです。文字列がUnicodeの場合には
L"文字列"というように最初にL(longのL)を書かないと
ダメらしい。

0408デフォルトの名無しさんNGNG
>>406
後者は
CString::operator LPCTSTR
が呼び出されているのでしょう。つまりキャストです。

しかし2番目と3番目、どっちが呼び出されているのですかね。
参照はNULLを取らないから、2番目だと思うのですが、
2番目だとすると第2、第3引数は不要ではないですかね?

0409デフォルトの名無しさんNGNG
>>393-395

レスありがとうございました。
ポインタを宣言してもそのポインタが指し示すアドレスがわからないという
ことですね。
0410デフォルトの名無しさんNGNG
>>407
レスありがとうございます。
C:\\ という記号の辺りがデータ型によっては特殊文字になってしまうのかな?
そこらへんが関係するのですね。調べてみます。

>>408
レスありがとうございます。
MSDNをみたら operator LPCTSTR が載っていました。
試しに
Navigate2((LPCSTR)strHtmlPath, NULL, NULL);
と記述しても動きました。

どうもありがとうございました。
0411デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0412デフォルトの名無しさんNGNG
>>408
あ、それからNavigate2は2番目の関数のようです。
いわれる通り、第一引数だけで残りを省略しても動作しました。
0413デフォルトの名無しさんNGNG
>>410
Unicodeご存知ないですかね。
0414デフォルトの名無しさんNGNG
メッセージループをメインループにすると時間系の関数などを使いやすくなります
が、デメリットはありますか?
0415デフォルトの名無しさんNGNG
>414
デメリットはネタに見えることです。
0416デフォルトの名無しさんNGNG
Windowsを再インストールすることになり、
いままで使ってきた Visual C++ の環境の設定を保存しておきたいのですが、
設定を保存しているファイルとかあるのでしょうか?
もしくは、レジストリでしょうか?
どなたか ご存知でしたら おしえていただくとありがたいです。

(黒字に白文字でないと、目がつかれたり、また その他ショートカット
なども専用に設定しているので、また、設定をする手間が省けるので、
今後のためにも 教えてください。)
0417デフォルトの名無しさんNGNG
>416

俺は↓のレジストリから必要な部分だけを reg ファイルにして保存してる

[HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0]
0418デフォルトの名無しさんNGNG
>>416
そういうのはすべてレジストリだと思われ。
インストールフォルダ以下をざっと探ってみたけどそれらしきものは見つからなかった。

白地に黒、って疲れるよね。
俺は画面のプロパティでウィンドウの背景色を白から薄緑にしてるよ。
他のところまで変わるのはご愛嬌……
0419414NGNG
答えが得られなかったので、他のスレで質問させていただきます。
0420デフォルトの名無しさんNGNG
>>414
プッ。
0421デフォルトの名無しさんNGNG
始めたばかりの超初心者なのですがどうしてもエラーの場所がわかりません
どなたか教えていただけないでしょうか?
#include<stdlib.h>
#include<GL/glut.h>
#include<GL/gl.h>
#include<math.h>
#define PAI 3.1415926536

void display(void)
{
int x=0.5*cos(2.0*PAI*(float)/(float)10);
int y=0.5*sin(2.0*PAI*(float)/(float)10);
int z=0.0;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_LOOP);
glVertex3f(x,y,z);
glEnd();
glFlush();
}
0422デフォルトの名無しさんNGNG
>>421
あなたは何故エラーメッセージを書かないのですか?
0423デフォルトの名無しさんNGNG
>>422
良くわかっていないもので・・・
エラー2 警告0とかいうのは出るんですが
0424デフォルトの名無しさんNGNG
Visual C++ と関係ないのでは?
0425デフォルトの名無しさんNGNG
VC++コンパイラの使い方がわかっていないようだが

>エラー2 警告0
の書かれている所の右側にスクロールバーが無いか?
0426デフォルトの名無しさんNGNG
どこからコピペしたかしらんが、main()もないし#include<GL/glut.h> や #include<GL/gl.h> がちゃんとインクルードできるのかも謎。
0427デフォルトの名無しさんNGNG
floatを掛けて割っているのが原因だと思うが
出力されるエラーメッセージを見ることすら出来ないのは問題外
言語以前にWindowsの基本操作からやり直した方がいい
0428デフォルトの名無しさんNGNG
>>421
エラーの場所はたぶん1桁か2桁ぐらいの数値で表示されてると思います
そしてそれは行数です
あなたに何行目でエラーが発生しているか教えてくれるでしょう

さらにエラーメッセージをダブルクリックするとそのエラーが発生した行を
反転表示してくれると期待できます
0429デフォルトの名無しさんNGNG
>>421
宿題は自分でやりましょう
0430デフォルトの名無しさんNGNG
ゲーム等でマップを作る時なぜ、StretchDIBitsとSetPixselVではなぜスピードが
大きく違うのですか?グラフィックは点の集まりなのだから、同じでもいいと思う
のですが。
0431デフォルトの名無しさんNGNG
>>429
禿しく同意!
0432デフォルトの名無しさんNGNG
>430
問。 
たらい一杯ぶんの水を井戸から汲み上げようと思います。
1)コップをつかって何度も何度もくみなおす
2)たらい並の容積のいれものでいっぺんに汲む
無駄なく早いのはどっち。
0433デフォルトの名無しさんNGNG
>>432
スレタイが読めない文盲の方ですか?( ´ー`)y-~~
0434デフォルトの名無しさんNGNG
>>433
( ´,_ゝ`)
0435デフォルトの名無しさんNGNG
なんつーか何かに例えたがるよな、プログラマって。
0436デフォルトの名無しさんNGNG
>>435
物を教える時に例え話って使うだろ。
プログラミングに限らず。

てか、>>432の意味がマジでワカランかったの?
不条理な逆ギレイクナイ!
0437デフォルトの名無しさんNGNG
>>430
関数のオーバーヘッドがある、最適化し難い(メモリ転送命令が使えない)等…
>>432はなかなか良い例えだと思うが…
0438あぼーんNGNG
( ´∀`)/< 先生!!こんなのを見つけました。
http://japan.pinkserver.com/yamazaki/moe/hankaku09.html
http://japan.pinkserver.com/yamazaki/moe/hankaku10.html
http://japan.pinkserver.com/yamazaki/moe/hankaku07.html
http://japan.pinkserver.com/yamazaki/moe/hankaku08.html
http://japan.pinkserver.com/yamazaki/moe/hankaku05.html
http://japan.pinkserver.com/yamazaki/moe/hankaku06.html
http://japan.pinkserver.com/yamazaki/moe/hankaku03.html
http://japan.pinkserver.com/yamazaki/moe/hankaku04.html
http://japan.pinkserver.com/yamazaki/moe/hankaku01.html
http://japan.pinkserver.com/yamazaki/moe/hankaku02.html
0439デフォルトの名無しさんNGNG
>>433
( ´_ゝ`)
0440デフォルトの名無しさんNGNG
いや、問返しはカコワルイよ。
0441430NGNG
分かりました。ありがとうございました。後、StretchDIBitsでマップをスクロール
する場合、一度半マス移動分のを表示してから、1マス移動を表示したいのですが、
マイナスの座標から表示しても(16ピクセルのセルなら8ピクセルずらし、通常17×17
セルなら18×18セルをずらして表示)大丈夫なのですか?また、他の方法があるなら
教えてください。
0442デフォルトの名無しさんNGNG
StretchDIBitsって使ったこと内や

CreateDIBSection→BitBlt, StretchBltでやってる
0443デフォルトの名無しさんNGNG
LPVOID test;

(DWORD) test;
(UINT) test;
(WORD) test;
(BYTE) test;
--
(DWORD) test;
だけ型キャストの警告がでます。どうしてでしょうか?
VC7使ってます。
お願いします。
0444エラー内容も書けNGNG
>>443
どんなキャストの警告が出る?
VC6では出なかった。
もしもこういうコードを書いているなら当然だが……

LPVOID test;
DWORD test2 = (DWORD) test;
UINT test3 = (UINT) test;
WORD test4=(WORD) test;
BYTE test5=(BYTE) test;

(testが初期化されていないから値が不定。)
0445デフォルトの名無しさんNGNG
>>417,418
返事遅くなりましたが、どうもありがとうございました。
クリーンインストールするんで、レジストリでもなんでも 強気でいじれるので、
いろいろいじってみたいと思います。
どうも ありがとございました。
0446443NGNG
>>444
どうも
'型キャスト' : ポインタを 'LPVOID' から 'DWORD' へ切り詰めます。
ってエラーです。

sizeof で LPVOID と DWORD を調べても、両方4byteで問題ないはずなんですよね。
むしろ問題であるはずのBYTE と WORD のキャストには無警告なんですよ。

おそらくVC7だと64bitアドレスもサポートしてるんで、その性だとおもうんですが、
だとしたら、なんでBYTEとWORDへのキャストには無警告なんでしょうね・・・
0447あNGNG
>>443
いいからソースを見せなさい。
0448443NGNG
やっぱり警告は64ビット対応が原因でした。
UINT型とDWORD型のみへの警告は恐らく、旧来の手法に対する警告ってことでしょうね。

#include <windows.h>
#include <stdio.h>
void main( )
{
DWORD d; UINTui; WORD w;BYTE b;LPVOID p;
p = &d; d = (DWORD) p; ui = (UINT) p; w = (WORD) p; b = (BYTE) p;

printf( "LPVOID = %d\n", sizeof( LPVOID ) );
printf( "DWORD = %d\n", sizeof( DWORD ) );
printf( "UINT = %d\n", sizeof( UINT ) );
printf( "WORD = %d\n", sizeof( WORD ) );
printf( "BYTE = %d\n", sizeof( BYTE ) );
}

結果:LPVOID = 4,DWORD = 4,UINT = 4,WORD = 2,BYTE 1

warning C4311: '型キャスト' : ポインタを 'LPVOID' から 'DWORD' へ切り詰めます。
d = (DWORD) p;
warning C4311: '型キャスト' : ポインタを 'LPVOID' から 'UINT' へ切り詰めます。
ui = (UINT) p;
0449430NGNG
>>442 ありがとうございます。やってみます。
0450デフォルトの名無しさんNGNG
ツールバー上のボタンの文字列を
あらかじめ設定した文字列から
イベント取得時に変更したいのですが
どうやればいいんでしょうか?
0451デフォルトの名無しさんNGNG
オーナードロー
0452あNGNG
警告やな、エラーではないな。
了解。
0453bloomNGNG
http://www2.leverage.jp/start/
0454デフォルトの名無しさんNGNG
テンプレートのデフォルトパラメータにvoidを使用できないのですが
c++の決まりですか?VCの決まりですか?
template < typename T = void > class hoge 〜

template < typename T > class hoge 〜
にたいして
hoge < void > foo;は可能な様です。
0455山崎渉NGNG
(^^)
0456デフォルトの名無しさんNGNG
次からテンプレでMFC使ってるかどうかを書くように促して欲しい
0457454NGNG
ちなみにVC6のコンパイラの話です
エラーメッセージ↓
error C2182: '__formal' : 'void' 型を使って宣言されました。
0458デフォルトの名無しさんNGNG
俺できなかったな
仕方ないのでintにしてる

void *はできるかな? やってないけど
0459454NGNG
>>458
レスどうもです。
その他この他いろんな疑問(VCの不具合?)がでてきたので自分で調べる環境を整えます。
CGI作って遊んだっきりのcygwinが役に立ちそうです・・・
とりあえず立ち上げて・・・即exit。全く使い方覚えていない・・・
0460デフォルトの名無しさんNGNG
VCの不具合って、。。。まず自分のなコードを疑った方がいいよ。
0461デフォルトの名無しさんNGNG
ん〜 void* ならともかく void って実態ないでしょ。
そんなコード作る意義あるんですかね。

0462454NGNG
>>460
テンプレートについてはかなり不充分らしいです。(特にVC6)
実際ちょっとした実験コードを書いたらすぐに壁にぶち当たりました。
んで,なれないg++で実験してみました。

メンバ関数テンプレートで
class Foo {
 template <typename T> void bar(){...}
}
Foo foo;
foo.bar<hoge>();

において「<hoge>が不用です」なんて言われるのです。
g++だとOKでした。
引数でとる場合はOKなんですけどね。

class Foo {
 template <typename T> void bar( T& t ){...}
}
Foo foo;
foo.bar<hoge>();
int i;
foo.bar(i)

でも自分が間違っている気がします。
0463454NGNG
>>461
Modern C++ Design の第11章マルチメソッドに一つの例があります。
てゆうかこれを実験してみたかっただけなんですが。
LokiPortVC6版がホスィ。
0464デフォルトの名無しさんNGNG
>>457
つべこべ言わずにVisualStudio .NET 2003を待て。もうすぐ発売だ。
ANSI準拠度がかなり上がっているぞ。
0465デフォルトの名無しさんNGNG
準拠度98%だっけ?99%?
0466デフォルトの名無しさんNGNG
BITMAPINFO BmInfo;
BmInfoHed.biPlanes=1;
BmInfoHed.biBitCount=24;
for(a=0;a<16*16;a++)
{
r=rand()%64;
lpBMP[a*3]=r/16*85;
lpBMP[a*3+1]=r/4%4*85;
lpBMP[a*3+2]=r%4*85;
}
色のバイトの所を8にするとうまく色が表示されないのですが(6で足りるはずなのに)、
どうすればよいのでしょう。
0467デフォルトの名無しさんNGNG
>>466
色のバイトのところってなんじゃい。

ビットマップの構造として幅が8*nドットになるようにダミーデータが入るのと関係あるのだろうか
0468466NGNG
>>467
色のバイトの所とはBmInfoHed.biBitCount=24の所です。
再び調べてみた所、24(フルカラー)以外の場合は予め色を登録しておかなければ
ならないようです。初心者なので、質問もうまくできませんでしたが、
お答えありがとうございました。もう少し勉強してきます。
0469フルタワーが机の下に入らんNGNG
BMP ファイルの幅は 4の倍数になるようになってます。
これは x86系の CPU が 4 の倍数を計算するときだけ微妙に速くなるからです。
0470デフォルトの名無しさんNGNG
>これは x86系の CPU が 4 の倍数を計算するときだけ微妙に速くなるからです。
なんか大嘘をぶっこいている奴がいるんだがどうしよう
メモリのバス幅の問題とアーキテクチャの問題の近藤君がいるよ
0471デフォルトの名無しさんNGNG
初心者だ、見逃してやれ
0472デフォルトの名無しさんNGNG
>>468

たとえば 8 ビットカラーの場合、BITMAPINFO hoge; じゃあなくて、
LPBITMAPINFO bi = new BYTE[sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD)*256];
てな感じで clut の分も確保して、bi->bmiColors[0...255] にそれぞれの色を入れて、
bi->bmiHeader.biClrUsed = 256; とかする。
0473あNGNG
>>466
ヘルプを見る。
ちゃんと全部かいてある。
その 6ではいけない理由もな。
0474デフォルトの名無しさんNGNG
466の突込みどころはそれだけじゃないような

lpBMP[a*3]=r/16*85;
lpBMP[a*3+1]=r/4%4*85;
lpBMP[a*3+2]=r%4*85;
の部分

p = lpBMP;
...
*p++ =r/16*85;
*p++ =r/4%4*85;
*p++ =r%4*85;
みたいにするほうがいいよ
こっちの方が速いはず
0475デフォルトの名無しさんNGNG
たいした違いはない。
0476デフォルトの名無しさんNGNG
シンボルってなんですか?
VisualStudio6.0をセットアップする時にもWindowsNT Symbol Setup が
どうのこうのというメッセージが出ますが、これをするとどうなるのですか、
しないとどうなるのですか?
OSはWindows2000です。私はVBしか使った事がなくて、これからVCをやってみようかと
思っているのですが・・・
0477デフォルトの名無しさんNGNG
最強の開発言語
http://www.borland.co.jp/delphi/personal/
0478デフォルトの名無しさんNGNG
>476
VisualC++でデバッグをするときにちょっと便利になる。
ディスク容量に余裕があるならセットアップしとけ。

…でも使ってるOSに対する正しいシンボル情報は
別途入手する必要があるかも。
まあ分からなかったら今はまだ気にしなくていい。
0479デフォルトの名無しさんNGNG
ペゾルド読んでます。

Win98/NTではすべてのスレッドが、それぞれのメッセージキューを持つ
らしいのですが、作成したスレッドにメッセージを送るにはどうしたら
いいんですか?

DWORD WINAPI ThreadFunc (LPVOID Param);

↑この関数内部で GetMessage すると、このスレッドのメッセージキューから
メッセージをGetできるってことですよね?

int WINAPI WinMain ();

の場合は hInstance を使って CreateWindow() したウインドウに対して
メッセージを送ることで、WinMain のメッセージキューに送られるみたい
ですが。

またWinMainじゃない、作成したスレッドでCreateWindow する場合は
WinMain の hInstance を使えばいいのでしょうか?
0480あNGNG
>>479
そんなあなたに WaitForSingleObject
いまなら CreateEvent が、もれなくついてきます。
0481デフォルトの名無しさんNGNG
>>479
PostThreadMessage()で送ってGetMessage()かPeekMessage()で受け取る。
この時に気を付けなければならないのは送信先スレッドにメッセージキューが
無いとPostThreadMessage()は失敗する。
CreateMessageQueue()みたいな関数は存在しないので注意。
詳しくはヘルプ参照。
別スレッドでも基本的にWinMainのhInstanceを使用する。
0482デフォルトの名無しさんNGNG
>>481
PostThreadMessage なんてのがあるんですね。
メッセージキューってすべてのスレッドで自動的に
作られるんじゃないんですか?

>>480
どうもです。こっちはペゾルドにも書いてありますた。
0483あNGNG
>>482
それは失礼しますた。

ちょっと強引だが、
Windowsでは、プロセスに自動的にメッセージが「送られて」くるが
それを 「受け取る」&「中身を見る」のは、プログラマの仕事です。
あくまでイメージね。
0484デフォルトの名無しさんNGNG
>>482
メッセージキューは自動的に作成されるが、
スレッドを生成したら自動的にメッセージキューが作成されるわけではないので注意。
ヘルプとか見ると受け取りスレッド側でAPI関数を呼べば自動的に作成されるようだが、
全てのAPI関数がそうなのかはよくわからん(藁)
一番確実なのは受け取りスレッド側でPeekMessage()を呼べはメッセージキューが作成される。
0485デフォルトの名無しさんNGNG
個人的にはPostThreadMessageはお勧めしない。
見えないウィンドウを作ってそのウィンドウにPostMessage
する方が紛れがない。
思わぬAPIがスレッドのメインウィンドウの存在を前提に
してたりする、んじゃなかったかな。
0486デフォルトの名無しさんNGNG
>>485
なるほど。つまりメッセージでコントロールするなら、
わざわざ新規スレッドで作る必要は無いってこと
なのかな。

それとも新スレ作ってもhInstanceで何かのウインドウを
作るべきってこと?
0487デフォルトの名無しさんNGNG
>>485
あ、すんません。理解しました。
ウインドウ作ると SendMessageが使えるってことですね。
0488デフォルトの名無しさんNGNG
最近プログラミング覚えようとおもったものです。
Visual Studio 6.0はあるんですが、Visual Studio NETって買う必要ありますか?
0489デフォルトの名無しさんNGNG
無いです。もうすぐVisualStudio.NET2003が出ます。
0490488NGNG
>>489
VisualStudio.NET2003は買ったほうがいいということでしょうか。
0491デフォルトの名無しさんNGNG
>>490
現状と予算と目的次第。
0492デフォルトの名無しさんNGNG
プログラミング覚えるならVS6.0で充分
0493デフォルトの名無しさんNGNG
というか覚えようと思ってる段階なのにVS6.0をすでに持ってるってのが怪しい
0494485NGNG
>>486-487
新規スレッドの先頭でCreateWindowするってこと。
まあ面倒だし、PostThreadMessageってのは
そういう面倒なことをなくすためのAPIじゃないのかって
話もあるだろうけどね。

待てよ。そこまで気にするならイベントオブジェクトを
使って自前でキューを実装した方がいいかも。
うん、そうだ。その方がいい。
0495デフォルトの名無しさんNGNG
他のプログラムの起動とともに処理を開始して、終了したら処理をとめるような
プログラムを組みたいのですが、この場合グローバルフック使ってメッセージを
監視するのでいいのでしょうか?
他にもっと簡単な方法はありますか? 諸先輩方、アドバイスお願いします。
0496山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0497山崎渉NGNG
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
0498デフォルトの名無しさんNGNG
厨な質問ですが、
m=objFolder.SubFolders.Count
としたとき、mにはフォルダの個数がはいるのですが、
m=objFolder.SubFolders
ならmにはなにがはいるんでしょう?
0499ネタにマジレスNGNG
>>498
ほんとに厨だな。
objFolderの型情報さえも書いてない。
MSDN調べろよ。
0500デフォルトの名無しさんNGNG
>>498
ちゃんとした参考書を1冊こなせば、
そういう質問はでてこないはず。
0501デフォルトの名無しさん NGNG
Visual C++6.0を日本橋まで意気揚揚と買いに行ったら
プロフェショナルしか売ってなかった・・・・・(しかも一店だけ)。ヽ(`Д´)ノウワァァァァン
早く.NETが使える環境になりてぇ・・・(;_;)
0502デフォルトの名無しさんNGNG
.NETなんか(゚�听)イラネ
0503デフォルトの名無しさんNGNG
Professionalでいいじゃん……
0504デフォルトの名無しさんNGNG
managedはイラネけどVC++.NET2003はホスィ。
0505デフォルトの名無しさんNGNG
MFCって進化してるの?
0506.NGNG
漏前らに質問があります。
まずは何でも良いからフォルダを開きます。
アドレスバーにはデスクトップ、マイコンピュータ、3.5インチFD、、、
と続いていますが、ここでデスクトップを選びます。
このデスクトップをプログラムで開く方法を教えて下さい。

ちなみに
C:\Documents and Settings\administrator\デスクトップ
などではありません。

環境:Win2000Pro、VisualC++6.0
0507デフォルトの名無しさんNGNG
>アドレスバーにはデスクトップ、マイコンピュータ、3.5インチFD、、、
>と続いていますが
続いていません
〜終了〜
0508デフォルトの名無しさんNGNG
>>506
言わんとすることがよく分からん。
0509.NGNG
>>507-508
ではCドライブを開いてから、Backspaceキーを2回押してください。
デスクトップが開かれるはずです。その事です。
0510デフォルトの名無しさんNGNG
>>509
>何でも良いから
とりあえずここから修正しろ
0511デフォルトの名無しさんNGNG
SHGetDesktopFolderの事か?
0512C言語GW宿題NGNG
下記の入園料金を計算するプログラムを作成しなさい。
ユーザーに大人の人数と子供の人数を入力してもらい、
大人は一人1000円、子供は300円で合計を算出し、結果を表示する。
0513デフォルトの名無しさんNGNG
ShellExecuteで
"start C:\Documents and Settings\administrator\デスクトップ "
とかそういうのじゃないだろうなあ。
厨房様は何が言いたいのかさっぱりわからん。
0514デフォルトの名無しさんNGNG
>>512
氏ね

C/C++の宿題やらせてください。おながいします
http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
0515デフォルトの名無しさんNGNG
>>514
優しいな(・∀・)
0516デフォルトの名無しさんNGNG
>>506
ttp://www.hidecnet.ne.jp/~sinzan/tips/win/win_tip24.htm
0517デフォルトの名無しさんNGNG
VC++6でSTLを使っているのですが、コンパイル時に

 デバッグ情報で識別子が 255 文字に切り捨てられました。

というwarningがいくつもでて煩わしく思ってます。
このwarningだけ表示させないようにすることはできないでしょうか?
0518デフォルトの名無しさんNGNG
256文字以上もある識別子?あほですか?
0519デフォルトの名無しさんNGNG
//stdafx.h
#ifdef NDEBUG
#undef _STLP_DEBUG
#undef _STLP_DEBUG_ALLOC
#else
#pragma warning(disable:4786)
#define _STLP_DEBUG 1
#define _STLP_DEBUG_ALLOC 1 //or #undef
#endif
0520デフォルトの名無しさんNGNG
つーか、単なるSTLなら_STLP関係いらねーや。
0521デフォルトの名無しさんNGNG
>>517
どんな識別子使ってるんだ?
0522デフォルトの名無しさんNGNG
>>518
あほ発見
0523デフォルトの名無しさんNGNG
>>521
STLがソースの中で使ってるんだよ。
0524デフォルトの名無しさんNGNG
世の中って想像以上にあほが多いんだな
>>518 >>521
0525デフォルトの名無しさんNGNG
おまいら、C++を使うなら STL(STLPort) ぐらい嫉妬家!
0526517NGNG
>>519
それらを埋め込むことで表示されなくなりました。
ありがとうございます。
0527デフォルトの名無しさんNGNG
俺も517と同じ警告出てた
リリースモードではでないけど

519のコード埋めればいいんだね?

STLPortは知らんかった
ちょっと調べてみようかな
0528デフォルトの名無しさんNGNG
517のコード入れてみたけど相変わらず警告が
何がいけないのやら・・・
0529デフォルトの名無しさんNGNG
>>528
stdafx.hの上の方に入れてみろ。
#pragma warning(disable:4786)の一行だけでいいと思うけど。
0530デフォルトの名無しさんNGNG
>>528
何の警告よ
0531デフォルトの名無しさんNGNG
MFCアプリケーションウィザードで作った
SDIのCEditViewを使ってプログラムしてるんですが
何かちょっと編集して×ボタンを押すと
「Save changes to Untitled?」
っていうメッセージボックスがでるんですが
そのメッセージを出さないようにするには
どうすればいいんでしょうか?

0532デフォルトの名無しさんNGNG
>>531
セーブしなくて良いってこと?

0533531NGNG
>>532
ただログをEditViewにダラダラ出してくだけなんで
セーブの警告なんていらないんです。
よろしくお願いします。
0534デフォルトの名無しさんNGNG
>>533
Doc-View使ってる?だとすれば、
とりあえず↓のようにCDcoument::SetModified()をオーバーライドすればできる。
やったことないから、もしかしたら他にいい方法あるかも。

BOOL CHogeDoc::SaveModified()
{
return TRUE;
}
0535531NGNG
>>534
ありがとうございました!
できました!
0536デフォルトの名無しさんNGNG
別アプリケーションの、
特定のウィンドウにフォーカスを変更したいのですが、
どうすればいいのでしょうか?
0537デフォルトの名無しさんNGNG
別アプリのウィンドウのフォーカス取得
↓
SetFocus
0538デフォルトの名無しさんNGNG
>>530
黙れ
0539デフォルトの名無しさんNGNG
>>518=>>521=>>530なのかな
0540デフォルトの名無しさんNGNG
APIの SendKeys や keybd_event は Win2000、XPではNumLockやEnterキー押下に問題があるのでしょうか?

SendInput を使えということですが....
0541540NGNG
>>540
すみません
誤爆です
0542デフォルトの名無しさんNGNG
536ぢゃないけど・・

>>537
これウインドウハンドルが必要でしょ。
ウインドウクラス名とかまで分かっていれば探すことも
できるけど、ソースの分からないアプリの場合は
どうすればできるのかな。

0543デフォルトの名無しさんNGNG
Use Spy++.
0544デフォルトの名無しさんNGNG
アプリA 他人が作った普通のWinアプリ
アプリB 他人が作ったゲームなどDirectXフルスクリーン(排他)
自作アプリC

アプリBを「フォアグラウンドのまま」、自作アプリCからキーフックを使ってアプリAのダイアログにメッセージを送っています。(SendMessage,,,WM_SETTEXTで)

さらにアプリBが「フォアグラウンドのまま」そのアプリAのダイアログでリターンキーを押したいのですがこれは可能でしょうか?
0545デフォルトの名無しさんNGNG
1ダイアログに255個以上のコントロールが貼り付けられないのですが仕様ですか?
0546デフォルトの名無しさんNGNG
DirectInput等つかってなければ、可能ナリ。
0547デフォルトの名無しさんNGNG
すいません。教えてください。

BOOL型のメンバ変数m_Tempを追加したのですが、
ソースにカーソルを当てると、ポップアップで
int CTestView::m_Temp
とINT型で表示されるのですが、BOOL型なのになぜINTなのでしょうか?

例えば、
if(m_Temp == true){ ・・・ と記述すると以下の警告がでます。
「warning C4805: '==' : 演算中の 'int' 型と 'const bool' 型の混用は安全ではありません」

#define TRUE 1 が、Afxstd.hで宣言されてるので、
if(m_Temp == TRUE){・・・ と記述すれば警告はでなくなるのですが
なんか胸の中がすっきりしません。どういう事なのでしょうか?
0548547NGNG
ちょっと訂正します
誤 #define TRUE 1 が、Afxstd.hで宣言されてるので、
正 #define TRUE 1 が、AFX.Hで宣言されてるので、
0549デフォルトの名無しさんNGNG
>>547
bool = 1bit
BOOL = int = 32bit

という説明でよろしいか?
0550デフォルトの名無しさんNGNG
>>549
ありがとうございます!!!なるほど納得&警告でなくなりました!
0551デフォルトの名無しさんNGNG
気持ちわかる↓
>なんか胸の中がすっきりしません

BOOLをboolする関数でも組めば?

inline bool BOOL2bool(BOOL f)
{
  return (f == TRUE) ? true : false;
}

inline BOOL bool2BOOL(bool f)
{
  return (f == true) ? TRUE : FALSE;
}
0552デフォルトの名無しさんNGNG
>>544
Aのダイアログにメッセージが送れるなら、Aのダイアログのボタンで生成
されるメッセージをそのまま送るわけにはイカんのですか?

0553デフォルトの名無しさんNGNG
>>551
レスどうもです。そういうやり方もあるんですね。参考になりました。
0554本7 ◆HON7/awDa. NGNG
金ないんでVC++4.0でがんばってます。
winsockでTCPソケット通信でtelnetサーバを作りたいです。
ソケットを起動(っていうんですか?)して > 接続要求待ち >
要求があれば > サーバの紹介文を送りログインを求める  >
パスワードが照合すればクライアントにDOS画面を送る

というのはどういう流れにすればよいですか?関数とかも挙げて説
明頂けるとありがたいです。よろしくお願いします。
0555デフォルトの名無しさんNGNG
>>545
仕様。
自前でCreateしる。
0556デフォルトの名無しさんNGNG
>>554
とりあえず、それ用の本買うことをお勧めする。
ここで聞いて理解できるようなら、たぶんで作成できるだろうし・・・。

金ないならネットで検索しとけー。
レス1つや2つで終わるような話じゃないと思うぞー。
なんせ、それだけで本1冊かけるしな。

ネットワーク質問スレの過去ログ全部読んでみるのもいいのでは?
0557デフォルトの名無しさんNGNG
ttp://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=winsock%83v%83%8D%83O%83%89%83%7E%83%93%83O&lr=
0558本7 ◆HON7/awDa. NGNG
ありがとうございます。いろいろ試してがんばまります。
0559デフォルトの名無しさんNGNG
>>551
>return (f == TRUE) ? true : false;
( ´_ゝ`) フーン
0560デフォルトの名無しさんNGNG
ってか両方とも==で比較しなくていいよね
0561デフォルトの名無しさんNGNG
ってかキャストでいいよね
0562名無し@沢村NGNG
>>551
そのコード、バグの温床だな。
0563デフォルトの名無しさんNGNG
「BOOLはint」って話の流れで「f == TRUE」は無いよね
0564デフォルトの名無しさんNGNG

つか、 true と TRUE を使い分ければ良い話でわ?
わざわざ変換関数必要なん?

0565デフォルトの名無しさんNGNG
>>564
STLとか使って普通にWindowsプログラミングをしていたら必要になってくるだろ、ボケ。
0566デフォルトの名無しさんNGNG
>>565
簡単な例出してみ。総ツッコミ入るだろうけど。
0567デフォルトの名無しさんNGNG
>>565
簡単な例出してみ(ゲラ 総ツッコミ入るだろうけど(嘲笑激藁
0568デフォルトの名無しさんNGNG
教訓:ここは初心者に教えるスレであって、初心者が知ったかするスレではない。
0569デフォルトの名無しさんNGNG
全然Visual C++関係ないじゃないか・・・
0570デフォルトの名無しさんNGNG
>>566

std::bitset<10> aho;
aho.set(0, ::IsWindowEnabled(hWnd));

さあ、ツッコミ入れろ。vector<BOOL>にしろとか言うなよ。
0571デフォルトの名無しさんNGNG
唐突ですみませんがgetmemoryってどういうことなんでしょうか?
0572デフォルトの名無しさんNGNG
>>570
ツッコミも何もそのコード自身、変換関数なんて使ってないじゃん。
0573デフォルトの名無しさんNGNG
今までの流れ
>>564「わざわざbool<->BOOL変換関数必要なん?」
  ↓
>>565「STLとか使って普通にWindowsプログラミングしてたら変換関数が必要だろボケ」
  ↓
>>566「変換関数が必要になる例出してみ」
  ↓
>>570「std::bitset<10> aho; aho.set(0, ::IsWindowEnabled(hWnd));」
  ↓
>>572「どこにも変換関数使って無いじゃん(;´Д`)」
0574ドアフォ。NGNG
あんのー、Visual BasicとBasicだけ微妙に触ったことある程度のド素人なんだけど、
せっかくMicrosoft Visual C++ 6.0も入ってるのに学校ではやらないそうなんです。
で、個人的に勉強してみようとあっちこっちの初心者向け回ってるんですが、
どうやったらプログラム作り始められるかがわかりません!!w

とりあえずファイル>新規作成>Win32 Console ApplicationでDOS窓用、
Win32 ApplicationでWindowsプログラムってのはなんとなくわかったんだけど・・・
File ViewでSource Filesって書いてあるのがコード書いたのを保存するフォルダ?
あーわけワカメ。
0575デフォルトの名無しさんNGNG
>>574
本買え
0576デフォルトの名無しさんNGNG
warning C4805

を出したくないだけでしょ。
0577デフォルトの名無しさんNGNG
>>560

会社だと

bool fHantei = 判定関数;
:
:
:
if(!fHantei){ //←ここ
:
}

こういう書き方はダメなところが多いと思うけど。
C#でもこういう書き方はErrorになるはず。
0578デフォルトの名無しさんNGNG
==TRUEはもっとダメ。
0579デフォルトの名無しさんNGNG
漏れの同僚に

#define NULLPO 0

HANDLE *pHandle = GetHandle();
if(pHandle == NULLPO){
 MessageBox("ぬるぽ!");
 exit(0);
}

ってやるやつがいます。
0580デフォルトの名無しさんNGNG
外出みたいだけどもう一度

BOOL型を返す関数でFALSEがエラー
FALSE以外が正常ってのがあったような気がするから

BOOL B;
...
if(B == TRUE)はやってはいけないと
やるなら
if(B == FALSE)
if(B != FALSE)
みたいに
0581デフォルトの名無しさんNGNG
ガイシュツのものをなぜわざわざもう一度書くのだろうか?
0582デフォルトの名無しさんNGNG
そもそも比較する必要がない
0583デフォルトの名無しさんNGNG
皆それぞれ言いたいことはあるだろうが、ここは一つ>>551は糞ってことで収めないかね。
if(hoge==FALSE)するかどうかはコーディングスタイルや会社の規約に関わってくるから
水掛け論にしかならんだろうし。
0584デフォルトの名無しさんNGNG
もう >>551の顔の火も、鎮火しただろーよ
0585デフォルトの名無しさんNGNG
顔がチンコに?!
0586デフォルトの名無しさんNGNG
>>585
よく読め。「顔の火」がチンコだ。
0587デフォルトの名無しさんNGNG
>>585
どんな生命体だよ・・・
0588デフォルトの名無しさんNGNG
顔の人はチンコだったか
0589デフォルトの名無しさんNGNG
>>587
  /⌒\
 (    )
 |   |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 |   |<  呼んだー?
 ( ・∀・)  \_________
  )   (
 (__Y_)
0590551NGNG
>>589
読んでねーよ、氏ねや



ああ、イライラする
0591デフォルトの名無しさんNGNG
まだフィッシングかよ……
0592デフォルトの名無しさんNGNG
int main(){
if( >>551 == true )
{
cout <<"  /⌒\   "<< endl;
cout <<"  (    ) "<< endl;
cout <<"  |   | "<< endl; 
cout <<"  |   | "<< endl;
cout <<"  ( ・∀・) "<< endl;
cout <<"   )   ( "<< endl;
cout <<"  (__Y_) "<< endl;
return 0;
}

return -1;
}
0593551NGNG
だいたいここ初心者向けのスレなのに
あの程度のミスでなんで糞呼ばわりされなきゃならないんだ?
初心者なんだから仕方ないだろう?
それともあんたらはプログラム初めてそういうミス一度もしたことないのか?
0594デフォルトの名無しさんNGNG
教える側がミスしちゃいかんだろ。
0595デフォルトの名無しさんNGNG
BOOL型==TRUE ってだめなの?
0596デフォルトの名無しさんNGNG
あ〜なるほどねわかった気がした
0597デフォルトの名無しさんNGNG
初心者スレだから叩く
人間叩かれて大きくなるんだYO!
でも変な所を大きくしないでね
0598デフォルトの名無しさんNGNG
>>593
おまえだけが間違うのは勝手だが初心者を巻き込むな
0599デフォルトの名無しさんNGNG
BOOLを使わなければいいのでは?
0600デフォルトの名無しさんNGNG
intでやれよな。
0601デフォルトの名無しさんNGNG
大は小をかねる。
0602デフォルトの名無しさんNGNG
つーかこんな事で喧嘩すんなよ互いに(w
0603デフォルトの名無しさんNGNG
楽しけりゃいいじゃん!!
0604デフォルトの名無しさんNGNG
>>592みたいなのってendlでフラッシュするじゃん
たぶんそこがネックになって速度が落ちると思うのね
もっとフラッシュを抑制する方法ってないかしらん?
0605デフォルトの名無しさんNGNG
嘘を教えちゃいけないよね
0606Are you OK ??NGNG
#include <iostream>
#include <windows.h>

using namespace std;

inline bool BOOL2bool(BOOL f){ return (f == TRUE) ? true : false; }
inline bool bool2BOOL(bool f){ return (f == true) ? TRUE : false; }

int main()
{
   for(int i=0;i<3;i++){
      BOOL fB = (BOOL)i;
      bool fb = (bool)i;
      cout << "(BOOL)" << i << " = " << fB << " , BOOL2bool((BOOL)" << i << ") = " << BOOL2bool(fB) << endl;
      cout << "(bool)" << i << " = " << fb << " , bool2BOOL((bool)" << i << ") = " << bool2BOOL(fb) << endl;
      cout << "\n";
   }
   return 0;
}


(BOOL)0 = 0 , BOOL2bool((BOOL)0) = 0
(bool)0 = 0 , bool2BOOL((bool)0) = 0

(BOOL)1 = 1 , BOOL2bool((BOOL)1) = 1
(bool)1 = 1 , bool2BOOL((bool)1) = 1

(BOOL)2 = 2 , BOOL2bool((BOOL)2) = 0
(bool)2 = 1 , bool2BOOL((bool)2) = 1
0607デフォルトの名無しさんNGNG
まだやってんの(;´Д`)
0608デフォルトの名無しさんNGNG
これで完結じゃないの。実例出たからみんな納得するだろう。
0609デフォルトの名無しさんNGNG
ていうかすでに納得してんのに何を粘着に(ry
0610606NGNG
>>609 いや、個人的に気になったから
普段からBOOLなんて使わんしさ
0611デフォルトの名無しさんNGNG
>>610
なんでWindowsプログラミングをしていないのにこのスレにいるの?
0612デフォルトの名無しさんNGNG
なぜか急にクラスビューに1つのクラスだけが表示されなくなってしまいました。
どうすれば直りますか?
0613デフォルトの名無しさんNGNG
>>612
引っ込み思案な性格を、カウンセリングで直せ。
0614デフォルトの名無しさんNGNG
>>604
endl のかわりに \0 代入して
表示するさいに std::finish とかってどうよ?
0615デフォルトの名無しさんNGNG
>>611
まだCを勉強して間もない初心者なんじゃないの?
0616デフォルトの名無しさんNGNG
初心者を初心者と見抜けないと
(初心者スレで回答を得るのは)難しい。
0617デフォルトの名無しさんNGNG
>>546
>>552
大変遅くなりましたができました。ありがとうございました。ちなみにこのような感じです。

SendMessage(HWND,WM_KEYDOWN,(WPARAM) VK_RETURN, 0);
SetFocus(HWND);
SendMessage(HWND,WM_KEYUP,(WPARAM) VK_RETURN, 0);

0618デフォルトの名無しさんNGNG
>>612
VC終了して拡張子clw,aps,opt,ncbのファイルを消してVC起動して「表示」→「ClassWizard」で
なんか聞いてくるから「はい」選択。変なダイアログ表示されるから「全て選択」ボタン押してからOK。
0619612NGNG
>>618
ありがとうございます。ちゃんと表示されるようになりましたヽ(´ー`)ノ
0620デフォルトの名無しさんNGNG
そんなことしなくても当該クラスのヘッダーファイルを変更すれば
表示されるよ。変更はスペースでもコメントでもOK.そのあと元に戻せばOK
0621デフォルトの名無しさんNGNG
子ウインドウの取得に関しての質問です

メモ帳をスパイで見ると
"無題 - メモ帳" Notepad
 └""Edit
となっており、クラス名Editのハンドル取得は以下のようにして行うことができました。
FindWindowEx(FindWindow("Notepad", NULL),NULL,"Edit",NULL)

ここで質問なのですが、
"Titlehoge" Clshoge
 └""Edit
    └"Edit2"
 └""Edit
    └"Edit3"

の場合、クラス名Edit3のハンドル取得はどのように行えば良いのでしょうか?
0622デフォルトの名無しさんNGNG
hです。
制すうちを入力しshort型の変数に格納した後
この変数の内部表現をビット列で表示するプログラムを作成せよ・・・
という課題がでました。

integer=>1
0000000000000001
integer=>-2
1111111111111110

といった感じで表示するってとこまでは分かったけど・・・
実際のプログラムが分かりません。どうしよう・・・tt
0623デフォルトの名無しさんNGNG
>>622
スレ違いw
0624デフォルトの名無しさんNGNG
ボーランドC++ビルダーコンパイラのインストール手順(readme)内に、

a. 既存のパスに "c:\Borland\Bcc55\bin" を追加します。

と記載されているのですが、いきなり意味がわかりません。
これは、どういうことをするのですか?

インストールしたところは、
D¥program files\borland\bcc55
としますた。

0625デフォルトの名無しさんNGNG
>>624
スレ違いw
0626デフォルトの名無しさんNGNG
>>622
氏ね
C/C++の宿題やらせてください。おながいします
http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50

>>624
おまえも氏ね
タダで使えるBorland C++ part2
http://pc2.2ch.net/test/read.cgi/tech/1030493157/l50
0627 NGNG
今日のフラワーCの勝ち馬がわかりません。
誰か教えてください。
0628 NGNG
>>628 スレ違い
0629デフォルトの名無しさんNGNG
>628
0630デフォルトの名無しさんNGNG
>>628
再起関数
0631デフォルトの名無しさんNGNG
Microsoft VisualC++ 6.0 Enterprise
で開発してるんですけど。
ブレークポイントを追加してから、デバッグすると
かなりの確立でフリーズするんですけど・・・
ずっと昔からこの状態が続いているんですよ。同じ現象の方いらっしゃいませんか?

環境は
WindowsXP ProfessionalとWindows Me(どちらでも同じ現象)
CPU AthlonXP1600+
Memory DDR256MB
0632デフォルトの名無しさんNGNG
>>630
再帰関数
0633デフォルトの名無しさんNGNG
>>631
フリーズってOSごと?VCのみ?
0634631NGNG
VCがフリーズ→
Alt + F4で強制終了がきかない→
Alt + Ctrl + Delでタスクマネージャーを呼び出せない→
死亡。
なぜにタスクマネージャーさえも呼び出せないのかが不明!
マウスは動きます。キーボードも動作してます。

あとたまにビルド中でVCのみフリーズすることがあります。
Meのときは、一時その状態にしとくと、OSもフリーズしました。
XPのときは、そのままにしておくと、どうもなりません。
0635デフォルトの名無しさんNGNG
.NETに切り替えろという意味では。
0636631NGNG
>>635
そんな無茶な。
というか、結構前からこの症状でてマシタ。
0637デフォルトの名無しさんNGNG
監査は,女体監査
  しめつけ性,しゃぶなめ性,こしふり性を監査
 上シスは,上級尻刺す
  ゴムがうんこだらけ,でもやみつき
被監査対象  監査持ってるが仕事がない人事教育のオールドミスに食われました。ぐいぐいと。
 しかも,一生懸命奉仕したため,オールドミス仲間や最近ごぶさたの孫持ちおばはんの同僚たちにも回され,徹底的に姦さされました。
 この年ではじめて3Pしましたが,相手2人の合計はぼくの年のほぼ4倍です。
 助けてほしいですが,気持ちよくて,そんな自分が許せないのです。どうしたらいいでしょうか。
監査技法  バイブを使いなさい,伝統的な技法では通用しません。
 上がシースルー を上シスと呼びます
 電算室でSEXすると,いくらはりきっても汗が出ません。
アナルスト  え,まだ前からやってるの?
 坊や,まだまだ子供ね
ぶす
 松嶋奈々子 図体はともかく顔でかすぎ
 田中麗奈  爬虫類?
 広末涼子  あざらし
 藤本美貴  AVエロ顔
こんなので抜けるの?
本上まなみ 地味ぶす
男の方がましかも
最近の女,ぶすばっか
くさいし
ばかだし
すぐやらせちゃって病気もちだし
疥癬だし
腋臭だし
エステ通ってるおばちゃんか,男のほうがいいな
0638デフォルトの名無しさんNGNG
>>636
SPは5?
0639デフォルトの名無しさんNGNG
>>636
その症状が出るようになった頃にインストールしたソフトは何?
0640デフォルトの名無しさんNGNG
>631
ttp://forums.belution.com/ja/vc/000/050/71.shtml
いろいろあるがうちではMS IMEが問題だった。
Win2000 & WinXP & VC6 & VC.NET
この中の組み合わせで確認。
MS IMEを使わないことで解決しました。
参考に。
0641631NGNG
Meの頃も発生していたんで、インストールしたソフトは関係ないと
思われます。
SPはわかりません・・バージョン情報で確認できませんでした。
というか、SPをインストールしたことはないのでSPは入ってないのかな?
Coperight (c) 1994-98 って書いてあるんで、更新されてないと思います。
0642デフォルトの名無しさんNGNG
>>641
SPは入れておこうよ。
まあインストールしたことにより新たな不具合が発生することもあるけど(^^;
0643631NGNG
同じ症状の人いたんですね^^
って喜んでいいのか・・・
Nortonの仕業かもしれません。
Norton2002を入れてるんですが、Norton2003だったときは
正常に動いていた気がします・・・
皆様ありがとうございました。
0644デフォルトの名無しさんNGNG
Nortonは極悪ソフトとして有名
0645642NGNG
>>641
うぃ。ダウンロードしてきます^^
マイクロソフト・・・新たな不具合発生したら意味ないじゃん!
0646643NGNG
>>644
そうなんですか?
少し聞いたことがありますけど・・・
Nortonに代わるものって・・・Nortonをぱくったようなやつが
雑誌に載ってたかも。なんでしたっけ?
0647デフォルトの名無しさんNGNG
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\#・∀・) < ServicePack6まだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       | お茶漬けの素 |/
0648デフォルトの名無しさんNGNG
俺の環境 Windows2000 & (VC++6.0 + SP2 +SP5)でも起こった。
とりあえずSP3&SP4をインストールしたら、デバック時のフリーズはなくなったが、
アプリケーションが不正終了したときに出るダイアログでキャンセルを選ぶとフリーズする現象がまだ直っていない。
そうかIMEが悪さしている可能性があるのか。
試してみるよ。
0649デフォルトの名無しさんNGNG
すいません。ご存知の方がいらっしゃったら、教えていただきたいのですが、
現在、VC++6.0(SP5)を使用してプログラミングをしているんですが、ついさっきまで
出来ていたビルドが急に以下のようなエラーを吐いてできなくなってしまいました。

"ツールを開始できません。
この操作を正しく終了しました。
ツールを開始できません。
'vcspawn.exe' 実行時のエラーです。 ビルドを実行できませんでした。"

海外のメーリングリスト等も辿ってみて、

ttp://www.experts-exchange.com/Programming/Programming_Platforms/Win_Prog/Q_10199148.html

とか、
MSのKBからも対処方法を見つけてきたのですが、

ttp://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q236/0/92.ASP&NoWebContent=1

どの方法を取っても回避できません。そしてもちろん再インストールも行いましたが、
何も変わりません。

どのようにしたらいいんでしょうか。
0650デフォルトの名無しさんNGNG
VC++6.0のプリントアウト機能って拡張できないの?
文字がデカすぎて紙がもったいねー。
いちいち別のエディタでソース開いて印刷するのもメンドイし。
0651649NGNG
あ、書き忘れましたが環境は、
Win2K (5.00.2195) SP2 です。
0652デフォルトの名無しさんNGNG
ソースを印刷するヤツ、素人
0653 NGNG
仕事だとどうしても必要になるときはあるよな>印刷
0654デフォルトの名無しさんNGNG
印刷したほうがコスト面で有利、環境にやさしい、見渡せる範囲が広い、注釈をつけやすい、目にやさしい
0655デフォルトの名無しさんNGNG
>>649
ディスクの空き容量が足りないとかそんなんじゃないのか?
0656デフォルトの名無しさんNGNG
>>649
ためしにソース(*.cpp,*.h,と*.dsp、*.dsw、*.rc等)以外のファイル消してみな。
直ることがあるぞ。
0657デフォルトの名無しさんNGNG
>>621
どなたか教えて頂けないでしょうか?
0658デフォルトの名無しさんNGNG
>>631
XPの仕様と思って諦めれ。
0659649NGNG
>>655-656
ありがとうございます。でも、

> ディスクの空き容量が足りないとかそんなんじゃないのか?

とりあえずドライブは2つあって、システムドライブ側の空きが2GB、もう一つの方
(ページファイルを置いている)は3GB空いているんですが、とても足りないとか言う
感じでは無いです。なので、

> ためしにソース(*.cpp,*.h,と*.dsp、*.dsw、*.rc等)以外のファイル消してみな。

を、試してみる事にします。
0660649NGNG
【解決】結局 MSのKB(236092)にあった

> The ComSpec environment variable may be incorrectly defined.

がポイントだったようです。

[マイコンピュータ]→[プロパティ]→[詳細]→[環境変数]に ComSpec=C:\WINNT\SYSTEM32\CMD.EXE (Cドライブの場合)を
追加して起動→ビルド、また削除して起動→ビルドで動作に違いが現れました。

#でも、これ一度試したんだけど、その時は何も変わらなかったような....なんで今になって?

もし似たような症状が出ている方がいらっしゃいましたら、お試しください。
0661デフォルトの名無しさんNGNG
>>621 >>657
EnumChildWindowsとGetClassNameでどう?
0662デフォルトの名無しさんNGNG
>>661
EnumChildWindowsで検索すると有用な情報をたくさん見つけることができました。
ありがとうございます
0663 ◆bYHudLsQLw NGNG
ツールバーで ボタンの右にくっついていて 「▼」のマークをしているものを
良く見かけるのですが、あれはなんという名前でどのように表示しているのでしょうか?
0664名無し@沢村NGNG
>>663
シェブロン
0665名無し@沢村NGNG
>>664は、IEのツールバーの一番右に出てくる奴だ。
関係なかったな。
0666名無し@沢村NGNG
>>663
BTNS_DROPDOWN
0667動画直リンNGNG
http://homepage.mac.com/hitomi18/
0668デフォルトの名無しさんNGNG
http://homepage3.nifty.com/coco-nut/
0669デフォルトの名無しさんNGNG
VC++で\x1b[とかエスケープシーケンスがまったく
動作しないんですけど、仕様でしょうか?
borand c++ で試しても同じ結果でした。
0670デフォルトの名無しさんNGNG
C++相談室から誘導されてきました…

MSVC++6.0使用中なのですが、DLしたソースをコンパイルしようとしても、
「インクルードファイル「stdafx.h」がありません」エラーが出ます。
で、こいつについて調べ、プリコンパイル済ヘッダってコトまではわかったのですが、
どの資料を見ても、「自動で生成される」と、書いてありました。

で、VC++の設定いじってみて、「プリコンパイル済ヘッダを使用」にチェックも入れてみたのですが、コンパイルできません…
どなたか、対処法を教授ください…
0671デフォルトの名無しさんNGNG
>>669
どうも、DOS窓の仕様のようだな。
0672デフォルトの名無しさんNGNG
>>670
メンドクサイからstdafx.hが無いのなら作成して(中は空っぽでいいと思う)
すべての.cppファイル(または.c)の最初の行に
#include "stdafx.h"
を追加してコンパイルしてみ
0673デフォルトの名無しさんNGNG
ダイアログボックスのタイトルバーをドラッグしても動かせないんですが
どうやれば動くようになりますか?
0674デフォルトの名無しさんNGNG
>669
w2k系と、ANSY.sys(だっけな)がはいってない環境だと動かないらしいよ。
最近DOS窓でリバーシ作ったのでDOS窓で動いてるのは確認しました。(CPPじゃないけど。)
0675デフォルトの名無しさんNGNG
ANSI.sysでした。(名前間違ってただけで動く確証は・・・。)

#define locate(x,y) printf("\x1b[%02d;%02dH",y,x)
上のはリバーシの時に使ったマクロの一部。名前はBASIC使ってたときの名残です。
環境はME。
0676デフォルトの名無しさんNGNG
ウインドウに現れた画像結果の画像をファイルに書き出して
保存したいのですけどどうやってすればいいのでしょうか?

BITMAPINFOHEADERなるものを使うと思いますが
よくわかりません・・・
0677デフォルトの名無しさんNGNG
>>676
http://www.kk.iij4u.or.jp/~kondo/bmp/

このフォーマットに従って書き出すだけ
0678デフォルトの名無しさんNGNG
エラー
「msvcrtd.lib(crtexe.obj) : error LNK2001: 外部シンボル "_main" は未解決です」

こいつの消し方を教えてくだしゃい…
0679デフォルトの名無しさんNGNG
>>678
Win32 Cosole Applicationではなく、Win32 Applicationを選択する。
0680デフォルトの名無しさんNGNG
>>679
即レスサンクス
さっそくやってみまつっ!!
0681デフォルトの名無しさんNGNG
Cのこともほとんど分かってない僕がVCを買ってしまって
全く意味が分からないんですが、CとVCは別物と考えていいんですか?
学校ではCをやっているので、VCを買ったのですが何もできなくて困ってます^^;
VCってCのコンパイラとして使えるのでしょうか。
とりあえずCとVC併行してやっていこうと思ってるのですが。
馬鹿げた質問ですが教えてください^^;
お願いします。
0682デフォルトの名無しさんNGNG
よくわからないものをよく買う気になるなぁ
0683デフォルトの名無しさんNGNG
いいテンプレだな〜
0684デフォルトの名無しさんNGNG
>>681
VCは、Cとして使えるよ。
イメージ的には、VC=C and C++ and Visual開発環境。

DOS窓で、コンパイルすると以下のような感じ。

C:\cl test.c <ret>

C:\Temp>cl test.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

test.c
Microsoft (R) Incremental Linker Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:test.exe
test.obj

C:\>
0685デフォルトの名無しさんNGNG
↑、ニュアンスで理解してください。
0686デフォルトの名無しさんNGNG
>>682
早い話、馬鹿なので(゚Д゚;)
>>684
ありがとうございます。
しばらくCのコンパイラになりそうです^^;<VC
0687デフォルトの名無しさんNGNG
Cコンパイラだけなら無料で手に入るのにね
0688デフォルトの名無しさんNGNG
>>687
ですよねぇ・・。
調べもせずに買ってしまったので。
無知って恐ろしい。
0689デフォルトの名無しさんNGNG
名言:利口な客は金にならない。
0690デフォルトの名無しさんNGNG
CFrameWndで作ったフレームがアクティヴかどうか調べる方法はありますか?
0691デフォルトの名無しさんNGNG
CButtonのキャプションを設定する方法を教えて下さい
0692663 ◆bYHudLsQLw NGNG
できました!ありがとうございました。
0693デフォルトの名無しさんNGNG
>>691
SetWindowText
0694デフォルトの名無しさんNGNG
>>690
CWnd::IsWindowEnabled
0695デフォルトの名無しさんNGNG
>>693
ありがとうございます
CButton *b2 = (CButton *)GetDlgItem( IDC_BUTTON2 );
b2->SetWindowText( _T("ggg") );
とこんな感じで書いてるのですが表示されなくて・・
因みにOSはWindowsCEです。
0696デフォルトの名無しさんNGNG
>>695
コードはあってると思う。

1、記述する場所を間違えてる
2、WindowsCEが原因          のどっちかかな
0697デフォルトの名無しさんNGNG
BMPについての質問です。うまく質問できませんが、教えてください。
1、16*16*17*17サイズを表示する場合、DIBはそのサイズのを一つ用意すればよい
  のですか。それとも16*16サイズを17*17個用意すればよいのですか。
2、BMP読み込みで一つ読み込んで一つ表示は分かるのですが、例えば3X3のフィー
  ルドマップに1箇所ずつランダムで読み込むとしてそれが分かりません。
  1がどちらであるかによって違ってくると思いますが。
3、今はBMP読み込みができないので、コードの配列に絵のデータを書いてやっていて、
  lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3]=m%4*85;
  lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3+1]=m/4%4*85;
  lpBMP[(73712-(y*17*16*16+y2*17*16)+x*16+x2)*3+2]=m/16*85;
  見たいにやっているのですが、BMPも同じ感覚なのですか。
4、3のはlpBMP=(LPBYTE)GlobalAlloc(GPTR,16*16*3*17*17);とやってから
  そうしているのですが、これは3byte-1670万色使うと言うことだと思いますが、
  lpBMPの打ち分けはどうなっているのでしょうか。3byteなら[0]B、[1]G、[2]R
  [3]B、[4]G、[5]Rだと思うのですが、色数の変化によりどうなるのですか。
0698697NGNG
3、4は解決できました。3は同じ感覚です。例えば16*16sizeの256色のbmp
を読み込むとlpBMPのサイズは256バイトになります。16色なら128バイトで
1670万色なら768バイトです。全部緑の16*16sizeで256色のbmpを取り込み、
lpBMP[0]=0;なんかをやるとその部分だけ黒くなります。なお位置に注意
しなければならなく、[0]は左上が普通ですが、lpBMPは特殊で左下になります。
[0]左下→右下→左上→右上[255]です。4も3のが使えるので解決できました。
3byteの時の順番はB→G→Rのようです。これも逆のようですね。
1はたぶん前者ですね。後者だとすごく遅くなりました。2は1が前者の場合
3のを使えば自力でできそうです。ただ、逆であるためにlpBMP[(73712-
みたいにしないといけないが嫌ですね。
0699デフォルトの名無しさんNGNG
質問です。
sdkの方のSetWindowPosを使いたいんですが、
コンパイルするとmfcのSetWindowPosをコンパ
イルしているらしく、引数の違いのため、コンパ
イルできません。
sdkのほうをコンパイルするにはどうすればいい
んですか?
0700bloomNGNG
http://homepage.mac.com/ayaya16/
0701699NGNG
解決しました。
::SetWindowPosでいけました。
0702デフォルトの名無しさんNGNG
自作自演ウザイ。
0703690NGNG
>>694 super thanks
0704デフォルトの名無しさんNGNG
256色以上のビットマップ画像をリソースエディタで表示することは不可能ですか?
0705デフォルトの名無しさんNGNG
メモ帳とかに、キーボードを使わずに文字列を表示させることはできるんでしょうか?
思い誤ってSetWindowText()を使ったりしたら、ウィンドウのタイトルが変更されてしまったり…。
どうか助けてください。
0706デフォルトの名無しさんNGNG
>>705
メモ帳のビューそのものにSetWindowTextすればいけるんじゃないかい?
0707705NGNG
レスありがとうございます。

>メモ帳のビューそのものにSetWindowTextすればいけるんじゃないかい?

これはどういう意味でしょうか?
メモ帳のハンドルという意味ですか?
0708デフォルトの名無しさんNGNG
>>705
HWND hwnd;
hwnd=FindWindowEx(FindWindow("Notepad", NULL),NULL,"Edit",NULL);
SendMessage(hwnd,WM_SETTEXT,0, (LPARAM) "( ´∀`)");

という方法もあります
0709デフォルトの名無しさんNGNG
>>707
分からんのだったらkeybd_eventでも使えば?
0710デフォルトの名無しさんNGNG
すいません。ラジオボタンを作って
一回作りました。
そのあとラジオボタンの数を増やそうと思って
そのラジオボタンをコピーして
それから貼り付けてボタン1、ボタン2と
いうコントロールIDに変更しました。

そしたら実行するとラジオボタンが2つともチェックされてしまい
ラジオボタンのチェックが一つに限定されることが
できなくなりました。どこがおかしいのでしょうか
0711デフォルトの名無しさんNGNG
>>710
日本語
0712デフォルトの名無しさんNGNG
>>711
クソレスしてないで答えろや。
0713デフォルトの名無しさんNGNG
>>710
IDの値を連続させる&グループ
0714デフォルトの名無しさんNGNG
VC++は2つのワークスペースを同時に表示させる事はできますか?
右側に別のワークスペースを表示して参考にしながら
現在のワークスペースをコーディングとか。
0715デフォルトの名無しさんNGNG
すいません、ウインドウ内に
色のラインを引きたいのですが
それはプログラムで書くしかできないのでしょうか。

それともスタティックテキストみたいに
簡単にラインを引くことはできるのでしょうか
0716デフォルトの名無しさんNGNG
>>715
プログラムで書いて下さい。
0717デフォルトの名無しさんNGNG
>>714
IDEの複数起動
0718 NGNG
>>715 CDCのMoveToとLineTo
0719 NGNG
あの〜、718も私じゃないです。
煽りはいらないので早くレスください。
0720デフォルトの名無しさんNGNG
>>719
こんな奴に教えたく無いね。
0721705NGNG
>>708さん
>>709さん
レスありがとうこざいます。
いろいろやってみます。
0722デフォルトの名無しさんNGNG
メイン文で構造体をポインタで宣言して、mallocした後で関数に渡しました。
その後メイン文でそれを使うにはどうすればよいですか?
typedef struct{
  int a;
  int b;
}KOUZOUTAI;
main()
{
  KOUZOUTAI *K;
  int i;

  K = malloc(i * sizeof(KOUZOUTAI));
  printf("%d", k[0].a );
         ↑ここに何を入れればKOUZOUTAIの中身をプリントできますか?

どうも自分&とか*の使い方がいまいちです。教えてください。
0723bloomNGNG
http://homepage.mac.com/ayaya16/
0724デフォルトの名無しさんNGNG
>>722
iの値が不定なので正常にメモリーを確保できません
さらにポインタがキャストされていないので、
エラーが出てコンパイルも出来ないことでしょう

中身を出力したければ確保したぶんだけループでまわして
メンバ一つ一つを指定してください
0725デフォルトの名無しさんNGNG
Cスレ行った方がいいと思うよ
0726722NGNG
>724
すばやいレスthx。ちょっと書き方が不十分でしたのでもう一度。
typedef struct{
  int a;
  int b;
}KOUZOUTAI;
main()
{
  KOUZOUTAI *K;
  int i = 3;

  K = malloc(i * sizeof(KOUZOUTAI));
  kansuu(K);       ←何かの関数をよんでると思ってください。
  printf("%d", k[0].a );

それと、キャストって何ですか?お願いします。
0727デフォルトの名無しさんNGNG
略
int j;
略
K = (KOUZOUTAI*)malloc(i * sizeof(KOUZOUTAI));
略
for(j=0;j<i;j++)
printf("%d %d\n",k[j].a,k[j].b);
0728デフォルトの名無しさんNGNG
http://yahooo.s2.x-beat.com/linkvp/linkvp.html
0729デフォルトの名無しさんNGNG
領域確保してるけど何もコピーしてないね
0730デフォルトの名無しさんNGNG
研究室にVC++が落ちてるんだけど勝手にインストールしちゃまずいかな?
0731デフォルトの名無しさんNGNG
>>730
ライセンスの種類によっては可能だったと思われ。
0732デフォルトの名無しさんNGNG
隊長、馬鹿(>>730)を発見しました!
いかがいたしましょう?
0733デフォルトの名無しさんNGNG
VC++ 6.0でADOを使用してAccessのテーブルから
該当件数を表示するものを作りたいのですが、
レコードセットの値を変換して取得する方法がわかりません。
お助けください。

_ConnectionPtr pCn;
_CommandPtr pCm;
_RecordsetPtr pRs;

::CoInitialize(NULL);

pCn.CreateInstance(__uuidof(Connection));
pCm.CreateInstance(__uuidof(Command));
pRs.CreateInstance(__uuidof(Recordset));

pCn->Open(L"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =test.mdb",
L"",L"",adOpenUnspecified);

pCm->ActiveConnection = pCn;

pCm->CommandText = "SELECT COUNT(*) FROM 帳票 WHERE 担当 LIKE '%佐藤%'";pRs = pCm->Execute(NULL,NULL,adCmdText);

ここからどうすれば良いでしょうか?
0734733NGNG
申し訳ない。
何とかなりそうです。

_variant_t vIndex = (long)0;
_variant_t vCount = pRs->GetCollect(vIndex);
long l = vCount.lVal;
0735デフォルトの名無しさんNGNG
STLの事を質問しようと思ってタイトル検索したら

鳥嶋宇宙科学技術研究所(TSTL)どんな研究所?
■▼■各放送局STL周波数【スタジオ⇔アンテナ】

がイパーイ出てきました。鬱です


0736デフォルトの名無しさんNGNG
VisualC++.NETでVC++6.0同様にプロジェクトにリソーステンプレートぶちこんで
テンプレートにダイアログぶち込んだのにリソースのヘッダーファイルが
作られていませんでした。そのためかDialogBoxを使っても
キャラ配列で名前を指定したり、MAKEINTRESORCEでダイアログ
ボックスのIDを生でぶちこんだりしても、IDを認識していないのか
ダイアログボックスを作れません。だれか対応策教えてください。
0737デフォルトの名無しさんNGNG
>>736
ぶ、ぶちこむって、あんまり連呼しないで〜(*´д`*)
0738デフォルトの名無しさんNGNG
>>650,653 宛


 バ グ 込 み の ソ ー ス を プ リ ン ト ア ウ ト し て も
 次 の 日 に は も う 使 い 物 に な ら ん だ ろ ( 爆 笑



0739デフォルトの名無しさんNGNG
>>738
アメリカンジョークですか?
0740デフォルトの名無しさんNGNG
背景の透過の仕方が分かりません。SetBkColorを使うのは分かるのですが。教えてください。
0741名無し@沢村NGNG
>>740
SetLayeredWindowAttributes()
0742デフォルトの名無しさんNGNG
windws + vc+++
os XP

VCでプログラムを実行したあと、右上の×ボタンでウインドを消去

その後再びコンパイルしようとすると、LINK ERR 対象のファイルが使用中.....

これは終了処理が正しく行われていないからだと思われるのですが、
なにをしていない場合おこるのでしょうか?

windowsクラスは破棄しているのですが、それ以外にも defwndprocに何か渡さないといけないのでしょうか?
0743デフォルトの名無しさんNGNG
>>742
自己解決しました。
windowsクラスが破棄できていませんでした。
0744デフォルトの名無しさんNGNG
オススメの書籍教えて

ちなみに超絶初心者です
0745デフォルトの名無しさんNGNG
ねこぷー
0746デフォルトの名無しさんNGNG
>>744
完全自殺マニュアル
0747デフォルトの名無しさんNGNG
>>740
SetBkColor使うと真っ白(真っ黒だっけ?)の
モノクロビットマップにBitBltしたときに
設定した色の部分だけ色が変わるのです。(確か黒)
そのモノクロビットマップをマスクに使って
転送するのです。
0748デフォルトの名無しさんNGNG
最近C++始めたんですが、エディットボックス1〜10(m_ed1〜10)を配列に収集するのに、
for文で10回ループさせようと思ってるんですが、メンバ名にカウント変数[i]を反映させるにはどうしたら(・∀・)イイ?


int dat[10];
for(i=0;i<10;i++)
{
dat[i] = m_ed[i] ←こんなことがしたい…
}


厨でスマソ…
0749デフォルトの名無しさんNGNG
コントロールのIDを連番にして
GetDlgItem(ID + i, ・・・・・・)とか
0750デフォルトの名無しさんNGNG
datにコントロールのポインタを必要なだけ入れておけばいいだけでは?
0751デフォルトの名無しさんNGNG
>>750
いや、それをループでやりたいってことだろ
0752デフォルトの名無しさんNGNG
>>749,750
レスthx!!
750さんの方が簡単にできそうなので、さっそく逝ってきまつ♪
0753デフォルトの名無しさんNGNG
>>751
いや、正直、収集できたらなんでもいいんで、さっそくやってみまつ…
ポインタ、見過ごしてました…(汗)
0754デフォルトの名無しさんNGNG
え、もしかして
CEdit arrayEdit[10];
arrayEdit[0] = &m_ed1;
arrayEdit[1] = &m_ed2;
 :
 :
int dat[10];
for(i=0;i<10;i++)
{
dat[i] = arrayEdit[i]->GetLineCount();
}
みたいなことでいいのか?てっきり最初の
arrayEdit[0] = &m_ed1;の部分をループでやりたいのだと思って・・・
0755デフォルトの名無しさんNGNG
CEdit* だった。ま、いいか。
0756デフォルトの名無しさんNGNG
>748
DDXつかっての話だったら、
  DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum0);
  DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum1);
みたいに自動生成されるところで
  DDX_Text(pDX, IDC_EDIT_NUM0, m_iNum[0]);
  DDX_Text(pDX, IDC_EDIT_NUM1, m_iNum[1]);
と手動で書く。 と漏れはやってる。

力尽く主義なら 更新関数とかで
const int* pT[]= { &m_ed1, &m_ed2, ... };
for(int i=0;i<MAXNUM;i++) dat[i] = *pT[i];
てな方針を提案。
0757デフォルトの名無しさんNGNG
えっと…厨なんで、難しい記述はできないんですが、
int *dat[10]={&m_ed1,&m_ed2…}
の一行だけで、すべてはかたずきました…

ループは、その後のプログラムで使うんで、データ収集も、そのまんまそのループ内に入れようとしてただけなんですわ…



なにぶん、独学で本読みながら学んでるんで、まだまだわからないことだらけです…
(ノД`)シクシク
0758デフォルトの名無しさんNGNG
>>756
Σ(゜Д゜;≡;゜д゜)
も、漏れがやったのは、力づくなのか?そうなのか?(汗)
0759756NGNG
Σ(;´Д`)あ いや
変数名いまさら変えたくないYO! という場合はこちら みたいな
ニュアンスでな…   正直スマソ
0760デフォルトの名無しさんNGNG
DDXに頼り杉。EDITのIDを連番にして↓が最適解だと思う。
for(int i=0; i<10; ++i)
 dat[i] = this->GetDlgItemInt(ID_FIRST_EDIT + i);
0761デフォルトの名無しさんNGNG
何をもって過ぎることになるんだ。使えるなら使えばいいじゃないか。
0762デフォルトの名無しさんNGNG
わたしも760のようにいつも書いているのですが
書きながら、IDが連番であることを仮定したコードを書くのは
論理的に美しくないような気がして(´・ω・`)ショボーン となってしまいます。
0763デフォルトの名無しさんNGNG
初めまして、最近VC++を始めたばかりのプログラム初心者です。このたびは質問があって、「すれ立てるまでもない質問スレ」のほうから移動して書きこみさせていただきました。
Visual Studio.NET Standard Version2002を使ってManaged C++アプリケーションのコードを練習していて、いざコードを書き終わってビルドしたところ
「fatal error C1102:次の初期化が出来ません:クラスが登録されていません」というエラーがタスクに表示されました。そこをダブルクリックしたらstdafx.cppというところに飛ばされたのですが、
当方初心者のため、そこで何をしたらいいのかわからなくて問題を解決できないでいます。この問題を解決するにはどうしたらよいのでしょうか?
私の使っているOSはWindowsXPで教本には「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」を使っています。ステップ2の「animals」というプログラムを作っているときにこの問題が発生しました。
どうかご存知の方いたらよろしくお願いします。
0764デフォルトの名無しさんNGNG
>>763
ソースを書いたら?
0765デフォルトの名無しさんNGNG
>>763
VC++Ver6しか持ってないので細かいとこが違うかもしれんが。
プロジェクト→プロジェクトへ追加→コンポーネント及びコントロール(P)
あたりで追加コントロールが必要なのかもね。
0766デフォルトの名無しさんNGNG
>>763
「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」が
いかなるものか、わからないけど、プリコンパイルヘッダを使用しないとかにしてみる。
0767763NGNG
>>764
すみません、書くべきソースがわかりません・・・
>>765
とりあえず一般C++のクラスを追加をいじってみたら「新しい構文要素を読み出すのに失敗しました構文エラーが考えられます」というエラーメッセージが出てきました。
>>766
プリコンパイルヘッダはどのようにして使用しないようにするのでしょうか?

結局勉強不足で、質問ばかりになってすみません・・・もっと勉強してきます。
0768デフォルトの名無しさんNGNG
>>760等

クリンナップ時に、resource.hをExcelでソートしたりする香具師もいると思うが、ID_DLG1_EDIT1みたいな名前を付けとけば連番が崩れなくて安全だ。
漏れはDDX近辺にASSERT(ID_EDIT_1+1 == ID_EDIT_2);みたいなアホなチェックも入れて、厨房が壊したら本人が気付くようにしているぞ。

(自慢なのか?)
0769デフォルトの名無しさんNGNG
用途にもよるが、俺だったら連続なエディットならリストビューを使うことを検討する。
0770デフォルトの名無しさんNGNG
動的にコントロールを作ればいいだけのような気がするけど
0771デフォルトの名無しさんNGNG
>>763
プリコンパイルヘッダは、コンパイルの高速化のために
コンパイルの途中結果をファイル化しておくもの。
ソースの一部変更などであればそのまま使えるが
ヘッダやソースの大幅変更した場合は破棄されて
再び作成される。
リビルドすれば、まっさらな状態からコンパイルできる。

もしかしたら、プロジェクトの作成方法がおかしいかもしれないので、
プロジェクトだけ別名で作成して、既に打ち込んだソースは別のところに
バックアップして、新しいプロジェクトのソースに貼り付けて見るといいかも。
0772デフォルトの名無しさんNGNG
ダイアログのオーナードローコントロールなんですけど、描画関数の中で使う
フォントについて。

↓は合法なのでしょうか。
HFONT hOldFont = (HFONT) SelectObject(hDC, GetParent() -> GetFont() -> m_hObject);

↓は結構目にするんですが。
LOGFONT lf;
GetParent() -> GetFont() -> GetLogFont(&lf);
HFONT hFont = CreateFontIndirect(&lf);
HFONT hOldFont = (HFONT) SelectObject(hDC, hFont);
0773デフォルトの名無しさんNGNG
基本的なことなんですがお尋ねしたいことがあります。
オーバーロードの利便性とはどのようなことなんでしょうか?
また、オーバーロードすることにより起こりえる問題点などありましたら教えていただきたいです。
0774デフォルトの名無しさんNGNG
まずはオーバーロードについて勉強しろ。
勉強すれば自ずと分かるはずだから。
0775 NGNG
システムモーダルなCFrameWndのフレームってどうやればいいですか?
0776デフォルトの名無しさんNGNG
今までMFCを用いてプログラムを行っていましたが
SDKを用いたプログラムを勉強することにしました。
2つばかり質問させてください。

やはりゲームなどで用いる画像処理の効率は
SDKの方がいくらか高速になるのでしょうか?

あとSDKでのプログラミングでは
ClassWizardが使えないのですが
様々なサイトを調べても
あまりクラスを使って説明している人はいません。
SDKでクラスを用いるのは一般的でないのでしょうか?
0777デフォルトの名無しさんNGNG
>やはりゲームなどで用いる画像処理の効率は
どう比較するの?
ゲーム用の画像処理用のクラスがMFCにあるという前提?
だったら
>今までMFCを用いてプログラムを行っていましたが
いままで何もやっていないのと一緒
0778デフォルトの名無しさんNGNG
CStringの"123.4"などをfloatに変換する方法を教えて下さい。
0779763NGNG
>>771
その方法を試みましたが結果は変わりませんでした。
「ステップバイステップで学ぶvisual C++.NET実践講座」には各ステップごとのプログラムの見本のプログラムが入ったCD−ROMがあるのですが、
その見本のプログラムをビルドしようとしても同じエラーが起こりました。Visual C++.NET Standard自体を再セットアップしたほうがいいでしょうか?
0780デフォルトの名無しさんNGNG
>>779
CD−ROMのサンプルをプロジェクトディレクトリごとLZHかZIPにでも
アーカイブしてどっかにうpしたらいかが?
それと、エラーメッセージをコピー&ペーストで書き込んだほうが良い。
エラーメッセージの種類(コード)がそれでわかる。

それと、ほんの最初のほうにでもプロジェクトの作成方法みたいなのが
書いてないの?
0781デフォルトの名無しさんNGNG
>>778
atof
0782デフォルトの名無しさんNGNG
>>780
プロジェクトの作成は一回しましたよ。Hello Worldですけど・・・それは正常に動作しました。
ビルドエラータスクに出てくるエラーメッセージは次のとおりです。
animals fatal error C1102: 次の初期化ができません : 'クラスが登録されていません
↑これをエラータスクでダブルクリックするとstdafx.cppの一行目に飛ばされます。
下記アプロダにてサンプルをうpしました。よろしくお願いします。

ttp://cgi.members.interq.or.jp/hokkaido/asato/upload/upload.cgi

0783763NGNG
↑コメントに763と書いてあるやつでZIPです。
0784デフォルトの名無しさんNGNG
VC++Proはアクティベーションのリミットが10回しかないのでしょうか?
もしリミットを超えたら新しく買いなおさないといけないのでしょうか?
2〜3ヶ月に1度は再インストールするので、ものすごく不安なんです。
0785デフォルトの名無しさんNGNG
>>784
割れ厨いってよし
0786デフォルトの名無しさんNGNG
VC++にアクティべーションがあるの?.NET?
0787デフォルトの名無しさんNGNG
WindowsのVC++で、
マウスカーソルの座標をセットする命令って何でしたっけ・・・?
0788デフォルトの名無しさんNGNG
>>787
0xFFFF0E87
0789デフォルトの名無しさんNGNG
現在.NETを使っているのですが、
参考書の問題で「新規作成」→「リソーススクリプト」を作成して〜
とあるのですが、その本は古めなので.NETが載ってません。
.NETではどうやればよろしいのでしょうか?
リソーステンプレートというのを選んでもフォルダらしいものができるだけですし、
他も.rcらしいものは作成できなそうです。
ヘルプを見てもそれらしいものは見つけられません。
どなたかご教授お願いいたします。
0790787NGNG


SetCursorPos()で、座標数値を与えても、カーソルがモニター上の左上で固まってしまうのです。
なぜだろう・・・
0791デフォルトの名無しさんNGNG
SetCursorPosに与える引数が両方とも0以下ではないか、と憶測してみるてすと。
0792787NGNG

ためにし、SetCursorPos(400,300)とかして、
OnMouseMoveから呼び出して、
マウスクリックしている間、マウスを動かしてもカーソルが動かないようにしたいのですが、
プログラム自体が停止してしまうような挙動をします・・・。
0793787NGNG
マウスクリックでマウスカーソル座標Aを取得
そのままマウスクリック中、OnMouseMove内で、
SetCursorPosに座標Aを与えると、無限ループになるのかな・・・?
0794787NGNG
他の方法をかんがえます・・・・・・
0795デフォルトの名無しさんNGNG
>>793
試してないからわからんが、
LButtonDownでGetCapture()して、キャプチャー中はWM_MOUSE_MOVEメッセージを
破棄というのはどうだろう?
0796デフォルトの名無しさんNGNG
最近VC++.NETの質問増えてきたねぇ。みんな乗り換えてんのかな。
0797780NGNG
>>782
ごめん、やっぱ、.netは全然違う。
.netが手元にないのでちょっとお手上げかも。
.net持っている人、ヘルプ782です。
0798デフォルトの名無しさんNGNG
>>782
.netは持ってないから勘で答えてみるけど、
__gc
ってやつを使う場合、コンパイルオプションに/clr を指定しないと
いけないみたいだけど、やってる?

参考
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcrefEECOMCompilation.asp
0799デフォルトの名無しさんNGNG
>>782
.NET2003からだけど問題なくコンパイルできた
0800763.782NGNG
>>798
1.プロジェクトの [プロパティ ページ] ダイアログ ボックスを開く。
2.[構成プロパティ] フォルダをクリック。
3.[全般] プロパティ ページをクリック。
4.[マネージ拡張] プロパティを変更。
というMSDNに書いていた手順で変更すればよいのでしょうか?
だとしたら私のVisualC++.NETでは4番の[マネージ拡張]プロパティというのが出てこないのですが・・・

>>799
コンパイルできましたか・・・ご報告ありがとうございました。
0801デフォルトの名無しさんNGNG
C#ってC言語よりもVBに近いんですか?
0802デフォルトの名無しさんNGNG
>>800
まあ、勘なのでそんなもん。

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmex/html/vcgrfmanagedcprojecttypes.asp
の「Managed C++ アプリケーション」というやつでプロジェクトを作っとかないと4.が出ないとか?
でも2003で問題ないということは、関係ないかも。
0803763.782NGNG
>>802
問題が発生しているのは、まさにその「Managed C++アプリケーション」っていうやつで作っているプロジェクトなんですけど4.は出てこないです。
0804デフォルトの名無しさんNGNG
>>776
ゲームってのはVBでもそうだけど基本的にイベントドリブンじゃなくて、
メインループを作ってその中をぐるぐる回すパターンが多い。
メインループとかいじるとMFCの意味無いじゃん。
だから必然的にSDKでやっちゃう。てかゲーム作成サイトなんてみんなそうでしょ。
まあ、最初MFCで作ってみるといいよ。みんなMFCで最初作ってあれこれ悩んで
SDKに移ったクチが多いと思うから。

こことかゲームの基本的な作り方の参考になると思うよ。
http://www.edit.ne.jp/~skyfox/axis/
上記HPの[AXIS ROOM] の [AXISゲーム製作入門(シューティング編)] てとこ。
今、ライブラリはDLできないけど、読めばなんとなくわかると思うです。
0805デフォルトの名無しさんNGNG
>>803
とりあえずC1102をMSDNで調べてみたら?
クラスというのがanimalクラスを指すのか、別のものを指すのか分からん。
0806763NGNG
>>805
高度な検索というヤツにC1102をかけてきましたが0件でした・・・
0807デフォルトの名無しさんNGNG
>>804
板違い
0808 NGNG
誰か、常に最前面にCFrameWndを置く方法教えてくだされ〜
0809名無し@沢村NGNG
>>808
SetWindowPos()
0810 NGNG
>>809 サンクス
0811デフォルトの名無しさんNGNG
>>806
付属のMSDN Libraryで調べた?
0812デフォルトの名無しさんNGNG
VBから最近移ってきた初心者です。
よろしこおながいします。m(__)m
自作のcppとhファイルをコンパイルして、いくつかのプロジェクトで
使いまわしたいのですが、プロジェクトでヘッダだけインクルードしても
「実装がない」といってビルドできません。(cppをファイルに追加すれば
もちろんいけるのですが...)
MFCとかはヘッダだけのインクルードでいいのになんで自作のだと
ダメなのでしょうか?

0813デフォルトの名無しさんNGNG
>>812
多分、リンカでバイナリのファイルを指定してやらないと
ダメなんでしょうけど、詳しくは他の方に。(w

MFCの場合はその辺が自動的に設定されていると思われ。

0814デフォルトの名無しさんNGNG
>>812
VC側から見ると、MFCは実装がどこにあるかわかってるけど、
君が作ったものはどこにあるかわからないから。
0815812NGNG
>>813,814
レスありがとうございます。
納得できました^^
またよろしくおながいします。。。
0816763NGNG
763です。このたびVisualC++.NETを再インストールしたところ問題が解決しました。
これで明日から安心してVC++を学べます。けっきょく詳しい原因はわかりませんでした。
板の皆様、問題解決にご協力いただき本当にありがとうございました。
いつか皆さんのように他人に教えられるくらいになってきます。
それでは失礼しました。ではでは・・・
0817新入社員@インターフェイス開発NGNG
Cはちらっとだけやったことがある、新入社員です。 
いきなり仕事を渡されて〜〜 わかんないからCと同じようにズラズラとmainに文を書こうとしたら、main()がないでやんの。 
VC++の場合はどこから読めばいいんですか?
先輩に質問したら「一応、最初に読むインスタンスはあるけど、オブジェクト指向がわかってたら別にmainから関数を読まなくても、モジュールを読めばいいだけ」
見たいに言われたんですけど、オブジェクト指向ではモジュールを読んだらmain()に何かの値を返さなくてもいいんですか?
モジュールからモジュールを読んでたら、いつ、どうやって終了するんだ? 見たいな疑問があるんですけど・・・・ 
0818デフォルトの名無しさんNGNG
>>817
Windowsプログラミングの場合は、WinMain() がエントリになります。
でもVC++の場合は、プロジェクトによっては WinMain もインクルード
ファイルの中に隠されてしまってるかも。

0819デフォルトの名無しさんNGNG
/***
*crtexe.c - Initialization for client EXE using CRT DLL (Win32, Dosx32)
*
* Copyright (c) 1991-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* Set up call to client's main() or WinMain().
*
*******************************************************************************/
0820デフォルトの名無しさんNGNG
>>817 かなりてきとうですが。
・Win32コンソールアプリケーションならmain()スタートであなたの
やってたのでできると思います。
・Win32アプリケーションだとコンソールアプリとコードはかなり違うのも
多いのですが、Cに近い感覚で文字を表示したり計算したりできます。
http://www.kumei.ne.jp/c_lang/index_sdk.htmlの5章ぐらいまでを
勉強するとすぐにつかめると思います。
・MFCAppWizardが先輩の言ってたものかな?僕は挫折しました。
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
ココはそのスレです。
システム系ならコンソールアプリ、その他なら、理系が得意ならウインアプリ
文系が得意ならMFCにするとか。
0821デフォルトの名無しさんNGNG
あのー。とってもくだらないんですけど。
ドッキングツールバーのつまみのとこが白くてかっちょ悪いんですけど
なんかちがう感じにできないですか?
0822780NGNG
>>816
おめ。
0823デフォルトの名無しさんNGNG
VCでコンパイルしてもエラーメッセージがでないんですがなぜでしょうか。
エラー1 警告0 などはでるんですが。
他のスレで親切な方に再インストしてみと言われたのでしてみたのですが、
JINT35.DLL、VBAR332.DLL、MSXBSE35.DLLというファイルが開くことができませんでしたとでました。
無視するとそのままインストールできるんですが、最後にシンボルファイルをセットアップするようにとでてきます。
それをセットアップしないとデバッカは呼び出し関数のコンテキストを決定できませんと・・。
セットアップするアイコンをクリックしてセットアップしようと思ったんですが
このマシン上の対応するdllファイルとマッチしませんとでて、
最後にすべてのシンボルファイルはシステム上へ正しくインストールされませんとでます・・。
これはエラーメッセージがでないのに関係あるんでしょうか。
向こうのスレではスレ違いだったのでこっちにきました。
分かる方いましたら教えてくださいお願いします。
0824デフォルトの名無しさんNGNG
>>823
とりあえずOSとVCのバージョンを教えてください。
0825デフォルトの名無しさんNGNG
参考書でやってるDLL作成の項での質問です。
VC6以前で「新規作成」→「Win32 Dynamic-Link Library」→「シンボルをエクスポートするDLL」と
なっているものは.NETではどうやればよろしいのでしょうか?
「新規作成」→「MFC DLL」とは思うのですが、その後の
「DLLの種類」でどれを選べばよいのかがわかりません。
アドバイスよろしくお願いします。
0826デフォルトの名無しさんNGNG
>>824
OSはXP
VCのバージョンは6.0です。
0827デフォルトの名無しさんNGNG
VC6で質問させてください。
あるポインタに構造体を連続して連結コピーする方法を教えてください


std::vector<stScreen4_1> _stScreen4_1;
LPDIRECT3DVERTEXBUFFER8 pVB;
void* pVertices;

if( FAILED( pVB->Lock( 0, sizeof(stScreen4_1)*_Ten, (BYTE**)&pVertices, 0 ) ) ) return E_FAIL;

//イメージとしてはこんな感じの事がしたいのですがコンパイルできません(´Д`)
for (i=0;i<_Ten;i++){
  memcpy( pVertices+sizeof(stScreen4_1)*i ) ,&_stScreen4_1.at(i) ,sizeof(stScreen4_1) );
}

stScreen4_1 は構造体宣言されています。
こうすると void*が型宣言されていないとでます。

かといってvoid* pVertices;を stScreen4_1* pVertices 代えると危険な香りがします。
なぜなら構造体の要素数が増えたり減ったいするからです。(大丈夫なのかなぁ?)

分かる方、アドバイスお願いします。
0828デフォルトの名無しさんNGNG
>>823
まずなによりも、もうちょっと自分のやった手順と結果をきちんと
整理して説明できるようになった方がいい。

本題については済まないがよく分からない。
実はadministrator権限のないユーザーでやってるとか、
WindowsXP Home Editionだったとか…?


>>827
コンパイラがやってることとは違うかもしれないけどこんな感じかな?

pVertices + sizeof(stScreen4_1)*i ) という式だと、
pVertices に (voidのサイズ(!) × sizeof(stScreen4_1)*i ) )を足そうとするが、
voidのサイズなんてものは無いので困る、と。
BYTE* pVertices;
にしてみたらどうだろう?

0829デフォルトの名無しさんNGNG
>>828
先生! ありがとう!うまくいきました。
1時間はまってました 感謝感激です。

0830新入社員@インターフェイス開発NGNG
>820
そのサイトを見るたびに俺は猫以下なのかって鬱になるんですけど。
0831デフォルトの名無しさんNGNG
そんなことはないから安心汁
猫未満
0832デフォルトの名無しさんNGNG
先生教えて!

1500以上のポイントのポリゴンを印刷するコードを書きました。
この処理は動的DLL内で行っています。
しかし無茶苦茶遅いのです。約7秒も掛かる。
試しに静的DLL内で行ってみると処理に1秒も掛からない。

因みにデバッガで
Polygon(hdc, ppoint, npoint);
関数のみ計測したのです。

こんなもんなのでしょうか?
なんか特別なお呪いが必要なのでしょうか??
0833デフォルトの名無しさんNGNG
それ以前に静的DLLというのが意味不明
0834デフォルトの名無しさんNGNG
>>833
あぅ、、、
以下の意味と捉えてください。
静的DLL=MFC 拡張 DLL
動的DLL=MFC と動的にリンクするレギュラー DLL

お願いします。
0835デフォルトの名無しさんNGNG
静的はスタティックリンクのことじゃなかったっけ?
0836デフォルトの名無しさんNGNG
ひぇ〜ごめんなさい。
静的DLLをMFC拡張DLLに読み直してください。
0837デフォルトの名無しさんNGNG
http://member.nifty.ne.jp/~masumoto/embed/wio/
のラッパクラスCWioを使って組んでるんですが、
いまいち使い方がわかりません…

公開メソッドにおいて
m_wio.ReadPort(BYTE &,Word);

との記述があり、まんま呼び出して使おうとしてるのですが、、
BYTE &←この&はいったいどういった意味なのでしょうか?

BYTE byte;
m_wio.ReadPort(byte,0x2b);

といった記述で実行してるんですが、とりあえずエラーは吐かないんですが、
肝心の実行結果が思い通りに出ません…
WIN上で直接I/O叩くのはあまり行儀よくないらしいですが、
もしよろしければ教えてください…
0838デフォルトの名無しさんNGNG
マジで初心者丸出しの質問で申し訳ないんですが、ウィンドウの分割をしたいんですが
横に分割はできるんですが縦に分割ができません。
縦に分割する方法はありますか?

ディスプレイが横長のノートPC使ってるんで縦に分割できるとありがたいんです。
0839デフォルトの名無しさんNGNG
>>838
バージョンとかも書いてないからよくわからんが、
マニュアルみればいいんとちゃうん?
それとも割れ厨ですか?
0840838NGNG
そんな、手取り足取りメニューのコマンド1つ1つをすべて解説したマニュアルなんて
パッケージについてくるわけないじゃないですか。
ツールバーのウィンドウに、横分割しかないので縦分割はできないのかな、と思ったんです。

バージョンはVS.NET アカデミックです。
これは書いてなかった私の落ち度です、すいません。
0841デフォルトの名無しさんNGNG
>>937
参照。
0842838NGNG
スレ立てるまでもない質問スレいってきます。
おさわがせしますた。
0843デフォルトの名無しさんNGNG
今、職場で.netって使われてますか?
それとも6.0ですか?

これから言語を買おうと思うのですが、6.0は発売終了で手に入らなくて.netしか売ってない・・・。
どうしよう。
.netだけで勉強しても差し支えないですか?
0844デフォルトの名無しさんNGNG
まず言語の勉強以前に、製品を比較する勉強が先
当たり前に身に付いているはずのことを
いまさら勉強しなければならない時点で、
人生をやり直した方が良さそうだが
0845デフォルトの名無しさんNGNG
>>844
これからプログラムを勉強するのです。
職場ではどうなってるのでしょうか。
6.0は近いうち.NETに取って代わられそうでしょうか。
0846デフォルトの名無しさんNGNG
>>844
言語の勉強以前に、製品を正しく比較できると思ったら大間違い。
0847デフォルトの名無しさんNGNG
いろいろ調べてるんだが、マジでわかりません。
.netだけで勉強して、6.0が使われてる職場で対応できるのでしょうか。
0848デフォルトの名無しさんNGNG
>>843
両方使ってる。
6.0が欲しけりゃVS2003 with MSDNを買ってMSDNで6.0を落とせ。
>>845
職場による
>>847
知らん
0849デフォルトの名無しさんNGNG
>>847
.netと6.0が両方使われている職場を考慮したまえ。
0850デフォルトの名無しさんNGNG
.NET買ってももMCを使わなければいいだけの話だろ
アホか?
0851デフォルトの名無しさんNGNG
そのMCというものが、.NET特有の機能のうちのひとつだということですか?
6.0+MCの機能≒.NET
ですか?
0852デフォルトの名無しさんNGNG
プログラム実行時に、無限ループを任意で抜け出して(ボタンかなんかを設定して)、
次のプログラムに進むことはできますか?
たとえば、円周率を求めてる途中でボタンを押したら、そこまで求めた
値を使って円の面積を求めるとかです。
0853デフォルトの名無しさんNGNG
raiseでシグナルを送る
0854デフォルトの名無しさんNGNG
>>852
マルチスレッドを使うとかそういうのじゃねーの?
0855デフォルトの名無しさんNGNG
GetPriorityClassでプロセスのハンドルが必要ですが
自身のプロセスの場合はwinmain関数の引数にあるhInstanceが
プロセスのハンドルになるんでしょうか?

0856デフォルトの名無しさんNGNG
CStringクラスを利用するときについて、

int型をLPCTSTR型に変換は
a.Format("%d",〜);

でできますが、その逆の
LPCTSTR型をint型に変換
はどうやるんでしょうか?
自分で関数作るしかないですか?
0857デフォルトの名無しさんNGNG
atoi
0858デフォルトの名無しさんNGNG
_ttoi
0859856NGNG
>>857
ありがとうございました。
0860デフォルトの名無しさんNGNG
くだ質で流されてしまったのでこちらで質問させていただきます。

現在VC++.NETを使って勉強しています。
ですが、参考書などは.NET以前(VC++5〜6)のものが多く、例題通りにできないこともしばしばです。
それで質問なのですが、.NETは6以前のものをすべて含んでいると考えてもよろしいのでしょうか?
.NETになってから一気にプロジェクトの作り方などが変わっているので疑問に思いました。
一応6も持っているので6以前の参考書では6を使った方がイイ、などとかはありますか?
.NETと6以前は別物と考えた方がいいのでしょうか。
0861デフォルトの名無しさんNGNG
なんで勉強段階の人が6と.NETの両方持ってるんだ?
6は何の為に持ってたの?割れ物?
0862デフォルトの名無しさんNGNG
>>861
どっちも割ってんだろ。
0863デフォルトの名無しさんNGNG
>>860
MS好きなら.NET使えばいいじゃん。
勉強で.NET持っていてわざわざVer6つか必要もないと思うが。
0864デフォルトの名無しさんNGNG
文字をTextout関数で書きたいんですけど
色を指定することはできないのでしょうか・
今のところ黒でしか表現できなくて・・
SelectObject関数を使うのでしょうか
0865デフォルトの名無しさんNGNG
>>864
文字はSetTextColor、背景はSetBkColor。
0866デフォルトの名無しさんNGNG
>>864
それくらい調べろやヴォケが!
0867860NGNG
>>863
ありがとうございます。
860で書いた通り、ちょっと例題通りにいかなかったりで勉強がしにくかったので、
ver6を使った方が効率いいのか、などと思ったもので。
今後のためにも.NETで慣れて行こうと思います。

>>861
6を手に入れたのが2000年初期でして、
その時はゲームを作りたく、知り合いに聞いてみたところVCで簡単に作れるぞ、と。
それで当時高校生だったからアカデミックを手に入れ、VCの本を買い、勉強を始めたところ、
3日で挫折。そりゃC,C++もできなきゃサパーリ。
PC関係ではない専門学校へ進んだのですが、中退し、去年の暮れ近くから
Cの勉強を本格的に始めたワケでして…現在VCをば。
0868デフォルトの名無しさんNGNG
>>860>>867 がんがれ!!
0869デフォルトの名無しさんNGNG
アカデミックバージョンだと、シェアウェアとして公開できないのですか?
0870デフォルトの名無しさんNGNG
>>867
そんなレベルなら6の参考書は6でやっとけ。
0871デフォルトの名無しさんNGNG
>>869
大丈夫
そのレベルの質問をしている時点で、
レジストしてもらえるソフトを作るのは不可能だから、悩む必要など無い
0872デフォルトの名無しさんNGNG
>>869
安心汁!
誰もお前が作ったソフトになんかレジストしないから。
0873871NGNG
おい、>>872
ケコーン
0874デフォルトの名無しさんNGNG
アカデミックバージョンだと、シェアウェアとして公開できないのですか?
0875デフォルトの名無しさんNGNG
老いた頭の回転の悪い貧乏リーマンは先が無くて大変だな。
0876デフォルトの名無しさんNGNG

土方として、どうやって生活していこうと思ってるんだ?あ?
0877デフォルトの名無しさんNGNG
>>874
むかしはできなかってkど、今は制限なしだよ。
アカデミック版でもOK!
0878デフォルトの名無しさんNGNG
>>874
大丈夫
そのレベルの質問をしている時点で、
レジストしてもらえるソフトを作るのは不可能だから、悩む必要など無い
0879デフォルトの名無しさんNGNG
>>874
安心汁!
誰もお前が作ったソフトになんかレジストしないから。
0880デフォルトの名無しさんNGNG
デジャブ?!
0881デフォルトの名無しさんNGNG
デジャヴ
0882871NGNG
ヒデブ
0883デフォルトの名無しさんNGNG

OSのファイル/ファイルシステムに拡張情報を埋め込むことって
できないものですかね。

特にmp3などの管理を想定しているのですが、漢字ファイルネーム
の他に、ふりがな情報を埋め込めると管理や検索が楽になると
思うんですよね。他にはmp3に限りませんがCRC情報なども管理
できるといいと思うのですが。

ファイルのお尻に埋め込むことも可能だと思いますが、これだと
Winampなんかで再生できるのかどうか。各フォルダに隠しファイル
を置いて、管理する方法も考えてみましたが、エクスプローラで
ファイルを移動させたときに整合性を取るのが面倒だなと。

なんか良い方法ないもんですかねぇ。

0884デフォルトの名無しさんNGNG
mp3のフォーマット自体に情報を埋め込むためのタグがある
0885デフォルトの名無しさんNGNG
>>883
Mac 使えば。
0886デフォルトの名無しさんNGNG
>>883
NTFS使え。
0887デフォルトの名無しさんNGNG
>>883
IPropertySetStorage
IPropertyStorage
0888デフォルトの名無しさんNGNG
おせてくださーい!
シェルでDSWファイルをダブクリするとVCが立ち上がりますが、既存の
VCが閉じられてしまいます。別のプロセスとして立ち上げたいのですが
方法はあるのでしょうか?
0889名無し@沢村NGNG
>>888
ヌヒよ、VCを立ち上げてからプロジェクトを開けばいいだけだと思うが
0890デフォルトの名無しさんNGNG
沢村に教えてもらうとは…
プログラムをやめることを考えた方がいいかもよ
0891888NGNG
>>889
シェルからじゃ無理なんですかね。
オプションで「別のプロセスとして起動する」とかありそうな
気がしたのですがなさそうなので。。。
0892デフォルトの名無しさんNGNG
あるプロジェクト内で作ったクラスを、また別のプロジェクトで利用するには、
どんな手順でやればできるのでしょうか?
0893デフォルトの名無しさんNGNG
>>892
クラスのcppとhをその別のプロジェクトに含めれば良いだけじゃん?
0894デフォルトの名無しさんNGNG
>>888=>>891
当方、Win98・VC6ですが、以下のようにして出来ました。
(なんで出来るのかは理由はわかりませんが)

1)エクスプローラーでメニューから[表示]-[フォルダオプション]を選択
2)[ファイルの種類]のタブを開く
3)リストから「プロジェクトワークスペース」というのを選択して[編集]ボタンを押す
4)アクションの「MSDEVで開く」を選択して[編集]ボタンを押す
5)[DDEを使用する]のチェックを外す
※注意
チェックを外すと、デフォルトの文字列が消えてしまいます。
一応メモっておいてから外してください。
っていうか、自分が元に戻せなくなってしまいました
「DDEメッセージ」
「アプリケーション」
「DDEアプリケーションを実行していないとき」
「トピック」
のデフォルトの文字列を教えてください。
0895デフォルトの名無しさんNGNG
(;´Д`)…
0896894NGNG
おーい>>888=>>891、もういないのか
戻せねーよ、早く教えろよ!

親切心が仇に…
0897デフォルトの名無しさんNGNG
VC++.NETはC99に対応していますか?
0898888NGNG
>>894
すいませーん。
もうじき書きまーす!
0899デフォルトの名無しさんNGNG
2003は対応してる
0900894NGNG
マテゴルァ->>888! /\
      ヽ(`Д´)ノ  \/\
       (894)        \/\
      /\< ヽ  \    /    \/\
    /    \  |  \  |\    /    \/\
    |\    /  .|       \  |\    /    \ /\
   / \ \/    |             \  |\   /    \/\
 /    \ |    .|     ( ´_ゝ`)フーン     \ |\   /    \/\
 |\    /|     |   ./ (∩∩ )              \|\    /    \
 |  \ //\      |\     /|                \ /        \
 |   |/    \     |   \ /  .|        ウワァン!/\           >
 |   \    /|     |   |    |     ヽ(`Д´)ノ  /    \       / .|
 |     \ //\       |        / (888)  \       \   /    |
 |      |/   \        /\ /    < ヽミ3 \     /| /     |
 |      \    /|   /\/    \      \    /|   /         |
 |        \ //\/    \     \     /|  /                |
 |         |/   \     \    / | /                    |
 |         \     \   / | /                         .|
 |           \    /| /                              .|
 |            \ /                                  |
 |              .|                                   |

0901デフォルトの名無しさんNGNG
2002年発売の製品なのに1999年の規格に対応していないんだ(;´Д`)
0902888NGNG
>>894
どうもありがとう。
僕のはXpなのですが同じようなダイアログが出ました。
下がDDEを使うにチェックが付いているときの状態です。
結果はまた報告しますネ。
すんまそーん。

・DDEメッセージ(D);
Open("%1")

・アプリケーション(C);
msdev

・DDEアプリケーションが実行していないとき(N)

・トピック(T)
system
0903デフォルトの名無しさんNGNG
>>901
対応しなくても誰も困らないから
0904894NGNG
>>902
戻ったよ。これで、おあいこ。
一応出来るけど、他の影響があるかもしれないから
元に戻せるようにしておいた方がいいですよ。
0905892NGNG
>>893
その含め方なんですが、cppとhを利用したいプロジェクトのフォルダ内に
入れた後がわからないんです。
例えば、A.cppとA.hというのがあってそれを、B.cppで利用したいときは、
B.cppで、#include "A.h"と書くだけでは、CAクラスはまだ使えないですよね?
0906デフォルトの名無しさんNGNG
プロジェクト -> プロジェクトへ追加 -> ファイル
0907888NGNG
>>894
お手数かけさしてしまってすんませんでした。m(__)m
VS6.0とVS2002が両方入ってて今設定中です。
(楽しいAAも)どうもありがとう。。。
0908892NGNG
>>906
ありがとうございますた。m(__)m
0909デフォルトの名無しさんNGNG
VC++でTCPを利用して通信をしようとしています。
socket(PF_INET, SOCK_STREAM, 0);
でソケットを生成してread待ちするサーバを作成しているのですが、
相手先をANYにしている為相手のIPアドレスがわかりません。
受信したデータのIPアドレスを知る方法はありますか?
又、VCでソケット通信するコーディングは合っていますか?
もっと単純にTCPで通信する方法などあったら教えて下さい。
0910デフォルトの名無しさんNGNG
getsocknameとか。
0911909NGNG
>>910
これって自局IPアドレスを取得するだけではないのですか?
0912デフォルトの名無しさんNGNG
WinMXの検索ウィンドウのリストビューって+クリックで展開できますよね?
あれどういう方法で実装するんでしょうか?
0913デフォルトの名無しさんNGNG
getpeername
0914デフォルトの名無しさんNGNG
>>912
割れですね。放置。
0915デフォルトの名無しさんNGNG
別にMXじゃなくても展開できるだろ
0916909NGNG
>>913
どうもありがとう。
でも、なんか調べるとCSocket(?)というのがあるみたいですね。
これは使い易いのでしょうか?
当方UNIX系のソケットプログラミングしかしたことないもので…。
0917デフォルトの名無しさんNGNG
MFCのCSocketなら、捨てとけ。
0918デフォルトの名無しさんNGNG
エディットボックスm_ed1内に記入された値を16進データとして吸い出すにはどうしたらよいのでしょう??

BYTE dat=static_cast<BYTE>(m_ed1)

でいいんですかね??
0919デフォルトの名無しさんNGNG
BYTE型に16進などという定義はない
0920デフォルトの名無しさんNGNG
std::runtime_errorを派生したいんですが、
なんかコンパイルエラーの嵐です。
サンプルきぼんぬ。
0921デフォルトの名無しさんNGNG
良心的なアダルトだ
http://homepage3.nifty.com/coco-nut/
0922デフォルトの名無しさんNGNG
Ctrl+Alt+Delを押して出るタスクマネージャのアプリケーションに表示されるような
項目一覧を取得したいのですが、どうすればいいのでしょうか?
EnumWindowsとEnumWindowsProcを使用して試してみると、
なんか予想外にたくさんのウインドウが列挙されて困っています。
0923デフォルトの名無しさんNGNG
#include <stdio.h>
#include <ctype.h>

#define UP_T 0
#define LOW_T 1
#define DIG_T 2
#define PUN_T 3

int main()
{
char *str = "HkJn(4Nk59gL/=s";
char buf[4][20], *bp[4];
bp[UP_T] = buf[UP_T];
bp[LOW_T] = buf[LOW_T];
bp[DIG_T] = buf[DIG_T];
bp[PUN_T] = buf[PUN_T];
0924デフォルトの名無しさんNGNG
printf("初期値:\t%s\n\n", str);
for (; *str; str++) {
if (islower(*str)) *bp[UP_T]++ = *str - 'a' + 'A';
else if (isupper(*str)) *bp[LOW_T]++ = *str - 'A' + 'a';
else if (isdigit(*str)) *bp[DIG_T]++ = *str;
else if (ispunct(*str)) *bp[PUN_T]++ = *str;
}
*bp[UP_T] = '\0';
*bp[LOW_T] = '\0';
*bp[DIG_T] = '\0';
*bp[PUN_T] = '\0';

printf("大文字:\t%s\n", buf[UP_T]);
printf("小文字:\t%s\n", buf[LOW_T]);
printf("数字:\t%s\n", buf[DIG_T]);
printf("記号:\t%s\n", buf[PUN_T]);
return 0;
}
突っ込みどころがあれば突っ込んでちょ☆
0925デフォルトの名無しさんNGNG
>>922
プロセスを列挙するってことか?
どっかにソース付きのプロセスモニターが公開されてたはず。
検索してみたけどみつからんので、とりあえずcodeguruで。

ttp://www.codeguru.com/system/SimpleProcessViewer.html

0926922NGNG
>>925
レスありがとうございます。
プロセスではなくタスクマネージャのアプリケーションタブの方の一覧を
取得したいのです。
具体的に言えば、Windowsを稼動させるといろいろなプログラムが起動、常駐すると
思いますがその中でアプリケーションとして稼動しているものです。
そのアプリケーションのWidowTextと窓ハンドルを取得したいと思ってます。
どうやればいいのか、、、。・゚・(ノД`)・゚・。
0927デフォルトの名無しさんNGNG
少し前のMSDNmagazineに載ってたような気がするけどもう書店には無いだろうしなぁ。
ウィンドウを列挙して、ある条件を満たすものだけ抜き出す。
条件は可視で、タイトル文字列数が0でなく、オーナーを持ってなく、とあとなんだっけ。
0928デフォルトの名無しさんNGNG
>>926
目的のウインドウのウインドウクラスや周辺特徴の確認
一致するウインドウを検索
そしてウインドウ配下のコントロールへウインドウメッセージを送りアイテムを取得
文字列を受け取る場合はプロセス間メモリ共有を使う必要がある
0929デフォルトの名無しさんNGNG
>>927-928
レスありがとうございます。
なるほど、一発で列挙するAPIなどはなく、列挙したウインドウの中から搾ると
いうやり方なのですね。ありがとうございました。
0930デフォルトの名無しさんNGNG
窓ハンドルを取得して画面に表示しました。
そしてボタンを押すと、その窓ハンドルの対応するウインドウを最前面に出すように
しようと思っています。

画面に表示された窓ハンドルをCString文字列として取得しました。
::BringWindowToTop(HWND hWnd)を使用したいのですが、
CString文字列で取得した窓ハンドル(200CCとか)を
HWNDにするにはどうすればいいのでしょうか?
0931デフォルトの名無しさんNGNG
文字列を数値に直せば?
0932デフォルトの名無しさんNGNG
>>930
そもそもなんで文字列で取り出すの?
0933デフォルトの名無しさんNGNG
初歩的な質問です

<include>"tt.h"

std::vector< rFont > cFONTTYPE;
std::vector< rText > cTEXTOBJ;

cTEXTOBJ[0].Init(&cFONTTYPE);


//-------------tt.h
class rFont {
  func()
//略
}

class rText :public classBase{
void* pFTYPE;//        <----ここと

public:
void Init (void* pP )//        <----;ここは
};

どういう宣言をすればいいのでしょうか?

rTextの関数の中でこういうことがしたいのですが....voidのままでは使えないし

pFTYPE(2).func();

よろしくお願いします
0934デフォルトの名無しさんNGNG
http://www.yahoo2003.com/betu/linkvp2/linkvp.html
0935デフォルトの名無しさんNGNG
ちょっと質問ですが、CStaticコントロールにラインとか描画できますか?
ソースはこんな感じで書いてます。

CStatic *s = (CStatic *)GetDlgItem( IDC_STATIC );
CDC *cdc = s->GetDC( );
cdc->MoveTo( 0, 0 );
cdc->LineTo( 40, 15 );

開発ツール:Microsoft eMbedded Visual C++ 3.0
開発環境:Windows98SE
動作環境:CASSIOPEIA PocketPC
0936デフォルトの名無しさんNGNG
>>935
拡張メタファイルを設定できるみたいだから図を拡張メタファイルにして
SetEnhMetaFile()で設定すれば(CEはしらんけど)
0937デフォルトの名無しさんNGNG
>>936
お答えどうもです。
SetEnhMetaFileの引数って静的コントロールに描画される拡張メタファイルのハンドルらしいのですが
何を設定すればいいのでしょうか?
0938デフォルトの名無しさんNGNG
>>936
CStaticの派生クラスを作って
そのOnPaint()をオーバーライドして描画とか。
0939938NGNG
↑
>>936でなくて>>935です
0940デフォルトの名無しさんNGNG
SetTimer(111, 500, NULL)
とした場合、プログラム終了、もしくはKillTimerが使われない限り
ずっと500ミリ秒おきにWM_TIMERが送られてるということなんでしょうか?
0941デフォルトの名無しさんNGNG
>940
ぐぐればいっぱつだよ(´Д`)
>ttp://sysneitf.hp.infoseek.co.jp/cbuilder_timer.html
0942デフォルトの名無しさんNGNG
クラスウィザードで例えばCStaticを継承するCStaticExなるクラスを作成した時に
フォームにCStaticExを貼り付けるにはどうしたらいいのでしょうか?
0943デフォルトの名無しさんNGNG
>>937
固定の図形なら >>936 でいいですが、動的ならだめです。
プログラムで拡張メタファイルつくるなら

CMetaFileDC mdc ;
HENHMETAFILE hemf ;
CClientDC dc(hwnd) ;

CRect rect(0, 0, 500, -500) ;
mdc.CreateEnhanced(&dc, NULL, &rect, "MyApp") ;

mdc.MoveTo( 0, 0 );
mdc.LineTo( 40, 15 );

hemf = mdc.CloseEnhanced() ;

こんな感じ。この例ではローカルにhemfを宣言してるけど
グローバルか、MFCならCxxxAppのメンバー変数にしたほうがよいです。

CxxxApp::InitInstance()の中でm_pMainWndを作った後に
CClientDC dc(m_pMainWnd) ;
でCreateEnhanced()に渡すdcを作ってメタファイルを作るのがいいタイミング。

CxxxApp::ExitInstance()をオーバーライドして
DeleteEnhMetaFile(hemf) でメタファイルを破棄する

リソースにメタファイルを含めることもできたはずだけどやり方忘れた。
0944デフォルトの名無しさんNGNG
>>943
ご丁寧にソースを書いていただき有難うございます。
早速試してみます!
0945943NGNG
>>944
忘れてたけど拡張メタファイルはマップモードが基本的にMM_HIMETRICなので
mdc.SetMapMode(MM_HIMETRIC) ;
がいるかも。rect(0, 0, 500, -500)の4つめがマイナスになってるのは
このせい、MM_HIMETRICにしないならプラスでもいいかも。
動作しているのに描画されないときはこのへんが原因になることが多い。
0946デフォルトの名無しさんNGNG
>>933
自己レス
void Init (std::vector< rFont >* pP )
こういう書き方ができるようです。

C++って偉大だな。
;
0947デフォルトの名無しさんNGNG
>>945
補足ありりんです。
気をつけまーす
0948デフォルトの名無しさんNGNG
>>942
ヘッダでCStaticで宣言されているところをCStaticExに変える
0949デフォルトの名無しさんNGNG
>>948
ヘッダって貼り付けたいフォームのヘッダーファイルですよね?
CStaticはフォームに貼ってるのですが、CStatic宣言はないのですが・・
0950デフォルトの名無しさんNGNG
いつからC++は宣言が無くてもコンパイルが通るようになったんだ?
0951デフォルトの名無しさんNGNG
ヘッダのどの辺にCStaticの宣言があるか教えて下さい
フォームに10個並べてるから定義も10個あるんですよね?
違います?
0952デフォルトの名無しさんNGNG
>>951
横レスになりますが、
>>935=>>942=>>949=>>951ってことでいい?

クラスウィザードで変数作るってことでは。
そのときIDC_STATICをIDC_STATIC_EXとか
適当な値に変えておかないとダメそうですが。
0953デフォルトの名無しさんNGNG
出力結果が
一つ目==>○ーーーーーーscanf()で
二つ目==>□ーーーーーーscanf()で
○+□=△ーーーーーーーー△は2進数で表示
を作りたいのですがサッパリです。
#include <stdio.h>
int main()
{

0954デフォルトの名無しさんNGNG
>>953
#include <stdio.h>
int main()
{
printf("一つ目==>○ーーーーーーscanf()で\n");
printf("二つ目==>□ーーーーーーscanf()で\n");
printf("○+□=△ーーーーーーーー△は2進数で表示\n");
return 0;
}
0955デフォルトの名無しさんNGNG
void main(void)
{
char x='A';
int a=5,b=32;
printf("�@",x);
printf("%d+%d=(�A)x\n",�B)
printf("%d�C%d=%d\n",�D);
printf("変数%cの初期値は%dです\n",x+�E,a);
}
実行結果
変数xの初期値はAです
5+32=(0025)x
32%5=2
変数aの初期値は5です
�Eの答えがわかりません
0956デフォルトの名無しさんNGNG
よーし、俺がマジレスしちゃうぞ。



mainの戻り値の型はint
0957953NGNG
printf("%d+%d=%d\n",a,b,c);
cを二進数で
0958953NGNG
#include <stdio.h>
int main(void)
{
int a,b;
printf("1つ目\n");
scanf("%d",&a);
printf("2つ目\n");
scanf("%d",&b);
printf("\n\t\t演算結果\n");
printf("\t\t%d + %d=%d\n",a,b,a+b);
printf("\t\t%d - %d=%d\n",a,b,a-b);
printf("\t\t%d * %d=%d\n",a,b,a*b);
if( b==0 ){
printf("\t\t%d / %d0では割れません。\n\t\t%d %% %d0では割れません\n",a,b,a,b);
}
else{
printf("\t\t%d / %d=%d\n",a,b,a/b);
printf("\t\t%d %% %d=%d\n",a,b,a%b);
}
return 0;
}
どうかえりゃ
0959デフォルトの名無しさんNGNG
Visual C++ .NETでの質問です。
「変数の追加」では配列は追加できないのでしょうか?
でてくる画面で変数名の部分に test[30] と入れるとエラーになりますし、
変数の種類のところで int [30] とやりましたら一応は作成できたっぽいのですが、
コンパイル時に配列初期化失敗みたいなエラーになりました。
アドバイスお願いいたします。
0960デフォルトの名無しさんNGNG
VC++6.0とVC++.NET、どちらを買おうか迷ってます。
どうしたらよいでしょうか。
0961デフォルトの名無しさんNGNG
>>960
今から買うなら.NET
0962デフォルトの名無しさんNGNG
>>960
迷うと言うことは両方を比較検討したはずだが、
まず自分の調べた範囲を挙げてみてくれ
話はそれからだ
0963デフォルトの名無しさんNGNG
>>962
同意!

でも面倒だから.NET>960
0964デフォルトの名無しさんNGNG
あ、やっぱり今は買わないで2003買う。
0965デフォルトの名無しさんNGNG
全部買う。何でも買う。
0966デフォルトの名無しさんNGNG
>>959
STLを使おう

STLでぐぐれ
変数どころかクラスも追加できるよ。

.NET って良くしらないんだけどSTL使えるの使えないの?
0967デフォルトの名無しさんNGNG
>>966
そういう意味の質問じゃないと思うよ。IDEの使い方(または仕様)を聞いてるんだと思う。
0968デフォルトの名無しさんNGNG
C++を勉強しようと思い、.netを購入したまではよいが
一般的なテキストに書いてある構文を書きながら
覚えていきたいとおもっているのだが、起動させてから
何をどこに書けばいいのかわからん・・・・

こんな超初心者なオイラはどうすりゃいいんですか?
親切な皆さん、おすすめテキストやら解説サイトがあったら
教えてください。よろしくお願い致します〜
0969デフォルトの名無しさんNGNG
>>968
intとかelseとか入力すると色が変わるところがあるでしょ。そこに。
0970デフォルトの名無しさんNGNG
>>968
とりあえず新規作成で*.cppファイルを作って、
サンプルのプログラム打ち込んで、ビルドしてみたら
どうですか?

ビルドの際に、プロジェクトも自動生成されると
思ったけど。(VC++6.0の話)


0971デフォルトの名無しさんNGNG
>>968
推薦図書/必読書のためのスレッド PART 10
http://pc2.2ch.net/test/read.cgi/tech/1051496506/

ここの過去ログにWinプログラミングの参考
書籍があったはず。

0972デフォルトの名無しさんNGNG
>>968
とりあえず、参考書の購入でも検討してみては?

どれが適してるかは人それぞれだが、
個人的には林晴比古氏の著書とかがわかりやすいと思う。
0973デフォルトの名無しさんNGNG
>>968
嘘書くなアホ
マニュアル読め
購入したんだろ?
ワレザーは消えろ
0974デフォルトの名無しさんNGNG
セットアップガイドならあったけど、使い方を書いたマニュアルなんてあったかなぁ。
ちなみに6.0の話。
0975デフォルトの名無しさんNGNG
>>973=ワレザー
0976デフォルトの名無しさんNGNG
>>974
MSDNだからねぇ。
内容が多すぎて、逆に初心者には使いにくい。

0977デフォルトの名無しさんNGNG
スタンダードなら入門書ついてくるんじゃねーの?
0978デフォルトの名無しさんNGNG
>977
当方VC++.NETstanderdとVS.NETPro所持
どっちも中身は皆さんご存知の使いどころが微妙なポスターキットと
異様にインストールが長い五枚のCDROM。以上。
0979デフォルトの名無しさんNGNG
タン10個あってこのボタンのクリックイベントを1箇所で処理したいのですが
どうやってやるのでしょうか?
0980デフォルトの名無しさんNGNG
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。

タン10個消去しました。
0981デフォルトの名無しさんNGNG
>>968
BCC5.5+BCC developer+猫でもわかるのサイト
で、プロジェクト設定をwinアプリにした上で
猫でもわかるのSDKコードをひたすら打ち込む
MFCは簡単なSDKで一通りのメッセージハンドラを
理解できたかなと思ってから手をだす
0982デフォルトの名無しさんNGNG
>>979
ON_CONTROL_RANGEとかON_COMMAND_RANGE
0983デフォルトの名無しさんNGNG
>979

ヘッダ
afx_msg void OnBtnClicked( UINT nID );


ソース
BEGIN_MESSAGE_MAP(..., ...)
ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTON10, OnBtnClicked)
END_MESSAGE_MAP()

...

void OnBtnClicked( UINT nID )
{
switch ( nID )
{
case IDC_BUTTON1:
case IDC_BUTTON2:
...
case IDC_BUTTON10:
}
}
0984デフォルトの名無しさんNGNG
もう調べるのも限界
SDKで、int型の数値を表示する方法教えて
char型はhelloサンプルでくさるほどあるけど
intはない、MFCだとOnDrawで、pDCでTextOutに渡す
みたいなやり方してるけど
int型はCStringでcharに変換てのもあったけど、やったら玉砕したし
SDKで、ウィンドウにint i=10;のiを表示する簡単なコード教えて
SDKで数値計算プログラムつくろうとしたら、ここでつまって
まったく先に進めません・・・
0985デフォルトの名無しさんNGNG
いい店みつけました!

http://www.dvd-yuis.com/
0986デフォルトの名無しさんNGNG
>>984 僕もint型を表示する方法は知りませんが、文字列変換にて。
int i=10;char s[256];
sprintf(s,"%d",i);
TextOut(hdc,x,y,s,s(strlen));
0987986NGNG
>>986
strlen(s)っす。すいません。
0988デフォルトの名無しさんNGNG
CStaticってクリックイベントとれないのでしょうか?
0989デフォルトの名無しさんNGNG
>>988
取れます。
0990デフォルトの名無しさんNGNG
VCでapiのpeekmessage()を使って押された、
キーコードを2文字以上を、
同時に取れる事で出来るんですか?
また方法を教えていただけますでしょうか
0991デフォルトの名無しさんNGNG
>>988
通知のチェックいれるかSS_NOTIFY指定するか
0992968NGNG
昨日の夜ここに書き込んだものです。

バカにされて終わりだと覚悟していたのに・・
こんなに多くの人にアドバイスいただけて光栄です。

昨日は軽いノリで書き込んだのに今日は感激!!
みなさん、ありがとう。これから頑張ります。
0993動画直リンNGNG
http://homepage.mac.com/hitomi18/
0994デフォルトの名無しさんNGNG
>>986
sprintfはよく使うから(存在を)覚えておくといいと思われ
0995デフォルトの名無しさんNGNG
MFCのダイアログベースで作成しています。VC++6.0
OnpaintとOnCtlColorを使用してOnpaintでビットマップの描画、
OnCtlColorでスタティックテキストの文字色を描画しています。
これをInvalidate();でコールしてやると、数分経つとハンドルエラーを起こします。
どうやらデバイスコンテキストのpDC.m_hDCが0クリアされているのが原因でアサート
してるみたいですが、そうなる原因がわかりません。
どなたかアドバイスください。
0996デフォルトの名無しさんNGNG
>>986
MFCでのCDC関数使った場合は
それで問題ないんだけど
SDKだとあかんのです
SDKの場合のやり方教えて
0997デフォルトの名無しさんNGNG
次スレをたてないうちに埋め立てるぞゴルァ!!
0998デフォルトの名無しさんNGNG
おーーーー!!!!!!!!!!!!!
0999デフォルトの名無しさんNGNG
勝手にやれよ
1000デフォルトの名無しさんNGNG
は
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。