■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part5
751 名前:デフォルトの名無しさん :03/05/05 20:08
>>750
いや、それをループでやりたいってことだろ

752 名前:デフォルトの名無しさん :03/05/05 20:09
>>749,750
レスthx!!
750さんの方が簡単にできそうなので、さっそく逝ってきまつ♪

753 名前:デフォルトの名無しさん :03/05/05 20:10
>>751
いや、正直、収集できたらなんでもいいんで、さっそくやってみまつ…
ポインタ、見過ごしてました…(汗)

754 名前:デフォルトの名無しさん :03/05/05 20:15
え、もしかして
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;の部分をループでやりたいのだと思って・・・

755 名前:デフォルトの名無しさん :03/05/05 20:17
CEdit* だった。ま、いいか。

756 名前:デフォルトの名無しさん :03/05/05 20:19
>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];
てな方針を提案。


757 名前:デフォルトの名無しさん :03/05/05 20:22
えっと…厨なんで、難しい記述はできないんですが、
int *dat[10]={&m_ed1,&m_ed2…}
の一行だけで、すべてはかたずきました…

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



なにぶん、独学で本読みながら学んでるんで、まだまだわからないことだらけです…
(ノД`)シクシク

758 名前:デフォルトの名無しさん :03/05/05 20:25
>>756
Σ(゜Д゜;≡;゜д゜)
も、漏れがやったのは、力づくなのか?そうなのか?(汗)


759 名前:756 :03/05/05 20:30
Σ(;´Д`)あ いや
変数名いまさら変えたくないYO! という場合はこちら みたいな
ニュアンスでな…   正直スマソ


760 名前:デフォルトの名無しさん :03/05/05 20:40
DDXに頼り杉。EDITのIDを連番にして↓が最適解だと思う。
for(int i=0; i<10; ++i)
 dat[i] = this->GetDlgItemInt(ID_FIRST_EDIT + i);

761 名前:デフォルトの名無しさん :03/05/05 20:58
何をもって過ぎることになるんだ。使えるなら使えばいいじゃないか。

762 名前:デフォルトの名無しさん :03/05/05 21:02
わたしも760のようにいつも書いているのですが
書きながら、IDが連番であることを仮定したコードを書くのは
論理的に美しくないような気がして(´・ω・`)ショボーン となってしまいます。

763 名前:デフォルトの名無しさん :03/05/05 22:20
初めまして、最近VC++を始めたばかりのプログラム初心者です。このたびは質問があって、「すれ立てるまでもない質問スレ」のほうから移動して書きこみさせていただきました。
Visual Studio.NET Standard Version2002を使ってManaged C++アプリケーションのコードを練習していて、いざコードを書き終わってビルドしたところ
「fatal error C1102:次の初期化が出来ません:クラスが登録されていません」というエラーがタスクに表示されました。そこをダブルクリックしたらstdafx.cppというところに飛ばされたのですが、
当方初心者のため、そこで何をしたらいいのかわからなくて問題を解決できないでいます。この問題を解決するにはどうしたらよいのでしょうか?
私の使っているOSはWindowsXPで教本には「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」を使っています。ステップ2の「animals」というプログラムを作っているときにこの問題が発生しました。
どうかご存知の方いたらよろしくお願いします。


764 名前:デフォルトの名無しさん :03/05/06 00:55
>>763
ソースを書いたら?


765 名前:デフォルトの名無しさん :03/05/06 01:23
>>763
VC++Ver6しか持ってないので細かいとこが違うかもしれんが。
プロジェクト→プロジェクトへ追加→コンポーネント及びコントロール(P)
あたりで追加コントロールが必要なのかもね。

766 名前:デフォルトの名無しさん :03/05/06 02:37
>>763
「ステップバイステップで学ぶVisualC++.NET実践講座Vol.1基礎編」が
いかなるものか、わからないけど、プリコンパイルヘッダを使用しないとかにしてみる。

767 名前:763 :03/05/06 03:41
>>764
すみません、書くべきソースがわかりません・・・
>>765
とりあえず一般C++のクラスを追加をいじってみたら「新しい構文要素を読み出すのに失敗しました構文エラーが考えられます」というエラーメッセージが出てきました。
>>766
プリコンパイルヘッダはどのようにして使用しないようにするのでしょうか?

結局勉強不足で、質問ばかりになってすみません・・・もっと勉強してきます。


768 名前:デフォルトの名無しさん :03/05/06 03:43
>>760

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

(自慢なのか?)

769 名前:デフォルトの名無しさん :03/05/06 04:01
用途にもよるが、俺だったら連続なエディットならリストビューを使うことを検討する。

770 名前:デフォルトの名無しさん :03/05/06 09:29
動的にコントロールを作ればいいだけのような気がするけど

771 名前:デフォルトの名無しさん :03/05/06 12:57
>>763
プリコンパイルヘッダは、コンパイルの高速化のために
コンパイルの途中結果をファイル化しておくもの。
ソースの一部変更などであればそのまま使えるが
ヘッダやソースの大幅変更した場合は破棄されて
再び作成される。
リビルドすれば、まっさらな状態からコンパイルできる。

もしかしたら、プロジェクトの作成方法がおかしいかもしれないので、
プロジェクトだけ別名で作成して、既に打ち込んだソースは別のところに
バックアップして、新しいプロジェクトのソースに貼り付けて見るといいかも。


772 名前:デフォルトの名無しさん :03/05/06 15:32
ダイアログのオーナードローコントロールなんですけど、描画関数の中で使う
フォントについて。

↓は合法なのでしょうか。
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);


773 名前:デフォルトの名無しさん :03/05/06 16:31
基本的なことなんですがお尋ねしたいことがあります。
オーバーロードの利便性とはどのようなことなんでしょうか?
また、オーバーロードすることにより起こりえる問題点などありましたら教えていただきたいです。

774 名前:デフォルトの名無しさん :03/05/06 16:44
まずはオーバーロードについて勉強しろ。
勉強すれば自ずと分かるはずだから。

775 名前: :03/05/06 16:46
システムモーダルなCFrameWndのフレームってどうやればいいですか?

776 名前:デフォルトの名無しさん :03/05/06 17:16
今までMFCを用いてプログラムを行っていましたが
SDKを用いたプログラムを勉強することにしました。
2つばかり質問させてください。

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

あとSDKでのプログラミングでは
ClassWizardが使えないのですが
様々なサイトを調べても
あまりクラスを使って説明している人はいません。
SDKでクラスを用いるのは一般的でないのでしょうか?

777 名前:デフォルトの名無しさん :03/05/06 17:31
>やはりゲームなどで用いる画像処理の効率は
どう比較するの?
ゲーム用の画像処理用のクラスがMFCにあるという前提?
だったら
>今までMFCを用いてプログラムを行っていましたが
いままで何もやっていないのと一緒

778 名前:デフォルトの名無しさん :03/05/06 17:31
CStringの"123.4"などをfloatに変換する方法を教えて下さい。

779 名前:763 :03/05/06 17:40
>>771
その方法を試みましたが結果は変わりませんでした。
「ステップバイステップで学ぶvisual C++.NET実践講座」には各ステップごとのプログラムの見本のプログラムが入ったCD−ROMがあるのですが、
その見本のプログラムをビルドしようとしても同じエラーが起こりました。Visual C++.NET Standard自体を再セットアップしたほうがいいでしょうか?


780 名前:デフォルトの名無しさん :03/05/06 18:25
>>779
CD−ROMのサンプルをプロジェクトディレクトリごとLZHかZIPにでも
アーカイブしてどっかにうpしたらいかが?
それと、エラーメッセージをコピー&ペーストで書き込んだほうが良い。
エラーメッセージの種類(コード)がそれでわかる。

それと、ほんの最初のほうにでもプロジェクトの作成方法みたいなのが
書いてないの?

781 名前:デフォルトの名無しさん :03/05/06 20:23
>>778
atof

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

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



783 名前:763 :03/05/06 20:27
↑コメントに763と書いてあるやつでZIPです。

784 名前:デフォルトの名無しさん :03/05/06 20:35
VC++Proはアクティベーションのリミットが10回しかないのでしょうか?
もしリミットを超えたら新しく買いなおさないといけないのでしょうか?
2〜3ヶ月に1度は再インストールするので、ものすごく不安なんです。

785 名前:デフォルトの名無しさん :03/05/06 20:37
>>784
割れ厨いってよし

786 名前:デフォルトの名無しさん :03/05/06 20:40
VC++にアクティべーションがあるの?.NET?

787 名前:デフォルトの名無しさん :03/05/06 20:47
WindowsのVC++で、
マウスカーソルの座標をセットする命令って何でしたっけ・・・?

788 名前:デフォルトの名無しさん :03/05/06 20:50
>>787
0xFFFF0E87

789 名前:デフォルトの名無しさん :03/05/06 20:56
現在.NETを使っているのですが、
参考書の問題で「新規作成」→「リソーススクリプト」を作成して〜
とあるのですが、その本は古めなので.NETが載ってません。
.NETではどうやればよろしいのでしょうか?
リソーステンプレートというのを選んでもフォルダらしいものができるだけですし、
他も.rcらしいものは作成できなそうです。
ヘルプを見てもそれらしいものは見つけられません。
どなたかご教授お願いいたします。

790 名前:787 :03/05/06 21:11


SetCursorPos()で、座標数値を与えても、カーソルがモニター上の左上で固まってしまうのです。
なぜだろう・・・

791 名前:デフォルトの名無しさん :03/05/06 21:16
SetCursorPosに与える引数が両方とも0以下ではないか、と憶測してみるてすと。

792 名前:787 :03/05/06 21:21

ためにし、SetCursorPos(400,300)とかして、
OnMouseMoveから呼び出して、
マウスクリックしている間、マウスを動かしてもカーソルが動かないようにしたいのですが、
プログラム自体が停止してしまうような挙動をします・・・。


793 名前:787 :03/05/06 21:26
マウスクリックでマウスカーソル座標Aを取得
そのままマウスクリック中、OnMouseMove内で、
SetCursorPosに座標Aを与えると、無限ループになるのかな・・・?


794 名前:787 :03/05/06 21:52
他の方法をかんがえます・・・・・・

795 名前:デフォルトの名無しさん :03/05/06 21:53
>>793
試してないからわからんが、
LButtonDownでGetCapture()して、キャプチャー中はWM_MOUSE_MOVEメッセージを
破棄というのはどうだろう?

796 名前:デフォルトの名無しさん :03/05/06 21:55
最近VC++.NETの質問増えてきたねぇ。みんな乗り換えてんのかな。

797 名前:780 :03/05/06 21:58
>>782
ごめん、やっぱ、.netは全然違う。
.netが手元にないのでちょっとお手上げかも。
.net持っている人、ヘルプ782です。

798 名前:デフォルトの名無しさん :03/05/06 22:24
>>782
.netは持ってないから勘で答えてみるけど、
__gc
ってやつを使う場合、コンパイルオプションに/clr を指定しないと
いけないみたいだけど、やってる?

参考
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/vcrefEECOMCompilation.asp


799 名前:デフォルトの名無しさん :03/05/06 22:41
>>782
.NET2003からだけど問題なくコンパイルできた

800 名前:763.782 :03/05/06 23:20
>>798
1.プロジェクトの [プロパティ ページ] ダイアログ ボックスを開く。
2.[構成プロパティ] フォルダをクリック。
3.[全般] プロパティ ページをクリック。
4.[マネージ拡張] プロパティを変更。
というMSDNに書いていた手順で変更すればよいのでしょうか?
だとしたら私のVisualC++.NETでは4番の[マネージ拡張]プロパティというのが出てこないのですが・・・

>>799
コンパイルできましたか・・・ご報告ありがとうございました。

801 名前:デフォルトの名無しさん :03/05/06 23:31
C#ってC言語よりもVBに近いんですか?

802 名前:デフォルトの名無しさん :03/05/06 23:46
>>800
まあ、勘なのでそんなもん。

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vcmex/html/vcgrfmanagedcprojecttypes.asp
の「Managed C++ アプリケーション」というやつでプロジェクトを作っとかないと4.が出ないとか?
でも2003で問題ないということは、関係ないかも。

803 名前:763.782 :03/05/07 00:33
>>802
問題が発生しているのは、まさにその「Managed C++アプリケーション」っていうやつで作っているプロジェクトなんですけど4.は出てこないです。


804 名前:デフォルトの名無しさん :03/05/07 01:11
>>776
ゲームってのはVBでもそうだけど基本的にイベントドリブンじゃなくて、
メインループを作ってその中をぐるぐる回すパターンが多い。
メインループとかいじるとMFCの意味無いじゃん。
だから必然的にSDKでやっちゃう。てかゲーム作成サイトなんてみんなそうでしょ。
まあ、最初MFCで作ってみるといいよ。みんなMFCで最初作ってあれこれ悩んで
SDKに移ったクチが多いと思うから。

こことかゲームの基本的な作り方の参考になると思うよ。
http://www.edit.ne.jp/~skyfox/axis/
上記HPの[AXIS ROOM] の [AXISゲーム製作入門(シューティング編)] てとこ。
今、ライブラリはDLできないけど、読めばなんとなくわかると思うです。

805 名前:デフォルトの名無しさん :03/05/07 01:13
>>803
とりあえずC1102をMSDNで調べてみたら?
クラスというのがanimalクラスを指すのか、別のものを指すのか分からん。

806 名前:763 :03/05/07 01:51
>>805
高度な検索というヤツにC1102をかけてきましたが0件でした・・・

807 名前:デフォルトの名無しさん :03/05/07 01:58
>>804
板違い

808 名前: :03/05/07 11:15
誰か、常に最前面にCFrameWndを置く方法教えてくだされ〜

809 名前:名無し@沢村 :03/05/07 12:20
>>808
SetWindowPos()

810 名前: :03/05/07 14:36
>>809 サンクス

811 名前:デフォルトの名無しさん :03/05/07 21:08
>>806
付属のMSDN Libraryで調べた?

812 名前:デフォルトの名無しさん :03/05/07 22:10
VBから最近移ってきた初心者です。
よろしこおながいします。m(__)m
自作のcppとhファイルをコンパイルして、いくつかのプロジェクトで
使いまわしたいのですが、プロジェクトでヘッダだけインクルードしても
「実装がない」といってビルドできません。(cppをファイルに追加すれば
もちろんいけるのですが...)
MFCとかはヘッダだけのインクルードでいいのになんで自作のだと
ダメなのでしょうか?



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

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



814 名前:デフォルトの名無しさん :03/05/07 22:47
>>812
VC側から見ると、MFCは実装がどこにあるかわかってるけど、
君が作ったものはどこにあるかわからないから。

815 名前:812 :03/05/07 22:53
>>813,814
レスありがとうございます。
納得できました^^
またよろしくおながいします。。。

816 名前:763 :03/05/08 01:02
763です。このたびVisualC++.NETを再インストールしたところ問題が解決しました。
これで明日から安心してVC++を学べます。けっきょく詳しい原因はわかりませんでした。
板の皆様、問題解決にご協力いただき本当にありがとうございました。
いつか皆さんのように他人に教えられるくらいになってきます。
それでは失礼しました。ではでは・・・

817 名前:新入社員@インターフェイス開発 :03/05/08 02:29
Cはちらっとだけやったことがある、新入社員です。 
いきなり仕事を渡されて〜〜 わかんないからCと同じようにズラズラとmainに文を書こうとしたら、main()がないでやんの。 
VC++の場合はどこから読めばいいんですか?
先輩に質問したら「一応、最初に読むインスタンスはあるけど、オブジェクト指向がわかってたら別にmainから関数を読まなくても、モジュールを読めばいいだけ」
見たいに言われたんですけど、オブジェクト指向ではモジュールを読んだらmain()に何かの値を返さなくてもいいんですか?
モジュールからモジュールを読んでたら、いつ、どうやって終了するんだ? 見たいな疑問があるんですけど・・・・ 

818 名前:デフォルトの名無しさん :03/05/08 02:50
>>817
Windowsプログラミングの場合は、WinMain() がエントリになります。
でもVC++の場合は、プロジェクトによっては WinMain もインクルード
ファイルの中に隠されてしまってるかも。



819 名前:デフォルトの名無しさん :03/05/08 03:34
/***
*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().
*
*******************************************************************************/

820 名前:デフォルトの名無しさん :03/05/08 08:04
>>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にするとか。

821 名前:デフォルトの名無しさん :03/05/08 10:26
あのー。とってもくだらないんですけど。
ドッキングツールバーのつまみのとこが白くてかっちょ悪いんですけど
なんかちがう感じにできないですか?

822 名前:780 :03/05/08 12:42
>>816
おめ。

823 名前:デフォルトの名無しさん :03/05/08 19:37
VCでコンパイルしてもエラーメッセージがでないんですがなぜでしょうか。
エラー1 警告0 などはでるんですが。
他のスレで親切な方に再インストしてみと言われたのでしてみたのですが、
JINT35.DLL、VBAR332.DLL、MSXBSE35.DLLというファイルが開くことができませんでしたとでました。
無視するとそのままインストールできるんですが、最後にシンボルファイルをセットアップするようにとでてきます。
それをセットアップしないとデバッカは呼び出し関数のコンテキストを決定できませんと・・。
セットアップするアイコンをクリックしてセットアップしようと思ったんですが
このマシン上の対応するdllファイルとマッチしませんとでて、
最後にすべてのシンボルファイルはシステム上へ正しくインストールされませんとでます・・。
これはエラーメッセージがでないのに関係あるんでしょうか。
向こうのスレではスレ違いだったのでこっちにきました。
分かる方いましたら教えてくださいお願いします。

824 名前:デフォルトの名無しさん :03/05/08 20:44
>>823
とりあえずOSとVCのバージョンを教えてください。


825 名前:デフォルトの名無しさん :03/05/08 20:53
参考書でやってるDLL作成の項での質問です。
VC6以前で「新規作成」→「Win32 Dynamic-Link Library」→「シンボルをエクスポートするDLL」と
なっているものは.NETではどうやればよろしいのでしょうか?
「新規作成」→「MFC DLL」とは思うのですが、その後の
「DLLの種類」でどれを選べばよいのかがわかりません。
アドバイスよろしくお願いします。

826 名前:デフォルトの名無しさん :03/05/08 22:05
>>824
OSはXP
VCのバージョンは6.0です。

827 名前:デフォルトの名無しさん :03/05/08 23:59
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 代えると危険な香りがします。
なぜなら構造体の要素数が増えたり減ったいするからです。(大丈夫なのかなぁ?)

分かる方、アドバイスお願いします。


828 名前:デフォルトの名無しさん :03/05/09 00:16
>>823
まずなによりも、もうちょっと自分のやった手順と結果をきちんと
整理して説明できるようになった方がいい。

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


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

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



829 名前:デフォルトの名無しさん :03/05/09 00:19
>>828
先生! ありがとう!うまくいきました。
1時間はまってました 感謝感激です。



830 名前:新入社員@インターフェイス開発 :03/05/09 00:29
>820
そのサイトを見るたびに俺は猫以下なのかって鬱になるんですけど。

831 名前:デフォルトの名無しさん :03/05/09 08:54
そんなことはないから安心汁
猫未満

832 名前:デフォルトの名無しさん :03/05/09 09:29
先生教えて!

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

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

こんなもんなのでしょうか?
なんか特別なお呪いが必要なのでしょうか??


833 名前:デフォルトの名無しさん :03/05/09 09:32
それ以前に静的DLLというのが意味不明

834 名前:デフォルトの名無しさん :03/05/09 09:49
>>833
あぅ、、、
以下の意味と捉えてください。
静的DLL=MFC 拡張 DLL
動的DLL=MFC と動的にリンクするレギュラー DLL

お願いします。


835 名前:デフォルトの名無しさん :03/05/09 09:55
静的はスタティックリンクのことじゃなかったっけ?

836 名前:デフォルトの名無しさん :03/05/09 10:17
ひぇ〜ごめんなさい。
静的DLLをMFC拡張DLLに読み直してください。


837 名前:デフォルトの名無しさん :03/05/09 17:59
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叩くのはあまり行儀よくないらしいですが、
もしよろしければ教えてください…

838 名前:デフォルトの名無しさん :03/05/09 18:20
マジで初心者丸出しの質問で申し訳ないんですが、ウィンドウの分割をしたいんですが
横に分割はできるんですが縦に分割ができません。
縦に分割する方法はありますか?

ディスプレイが横長のノートPC使ってるんで縦に分割できるとありがたいんです。

839 名前:デフォルトの名無しさん :03/05/09 18:53
>>838
バージョンとかも書いてないからよくわからんが、
マニュアルみればいいんとちゃうん?
それとも割れ厨ですか?

840 名前:838 :03/05/09 20:13
そんな、手取り足取りメニューのコマンド1つ1つをすべて解説したマニュアルなんて
パッケージについてくるわけないじゃないですか。
ツールバーのウィンドウに、横分割しかないので縦分割はできないのかな、と思ったんです。

バージョンはVS.NET アカデミックです。
これは書いてなかった私の落ち度です、すいません。

841 名前:デフォルトの名無しさん :03/05/09 20:15
>>937
参照。

842 名前:838 :03/05/09 20:38
スレ立てるまでもない質問スレいってきます。
おさわがせしますた。

843 名前:デフォルトの名無しさん :03/05/10 11:38
今、職場で.netって使われてますか?
それとも6.0ですか?

これから言語を買おうと思うのですが、6.0は発売終了で手に入らなくて.netしか売ってない・・・。
どうしよう。
.netだけで勉強しても差し支えないですか?

844 名前:デフォルトの名無しさん :03/05/10 11:49
まず言語の勉強以前に、製品を比較する勉強が先
当たり前に身に付いているはずのことを
いまさら勉強しなければならない時点で、
人生をやり直した方が良さそうだが

845 名前:デフォルトの名無しさん :03/05/10 11:51
>>844
これからプログラムを勉強するのです。
職場ではどうなってるのでしょうか。
6.0は近いうち.NETに取って代わられそうでしょうか。

846 名前:デフォルトの名無しさん :03/05/10 11:57
>>844
言語の勉強以前に、製品を正しく比較できると思ったら大間違い。

847 名前:デフォルトの名無しさん :03/05/10 12:01
いろいろ調べてるんだが、マジでわかりません。
.netだけで勉強して、6.0が使われてる職場で対応できるのでしょうか。


848 名前:デフォルトの名無しさん :03/05/10 12:07
>>843
両方使ってる。
6.0が欲しけりゃVS2003 with MSDNを買ってMSDNで6.0を落とせ。
>>845
職場による
>>847
知らん

849 名前:デフォルトの名無しさん :03/05/10 12:09
>>847
.netと6.0が両方使われている職場を考慮したまえ。

850 名前:デフォルトの名無しさん :03/05/10 12:54
.NET買ってももMCを使わなければいいだけの話だろ
アホか?

851 名前:デフォルトの名無しさん :03/05/10 13:25
そのMCというものが、.NET特有の機能のうちのひとつだということですか?
6.0+MCの機能≒.NET
ですか?

852 名前:デフォルトの名無しさん :03/05/10 14:28
プログラム実行時に、無限ループを任意で抜け出して(ボタンかなんかを設定して)、
次のプログラムに進むことはできますか?
たとえば、円周率を求めてる途中でボタンを押したら、そこまで求めた
値を使って円の面積を求めるとかです。

853 名前:デフォルトの名無しさん :03/05/10 14:29
raiseでシグナルを送る

854 名前:デフォルトの名無しさん :03/05/10 14:47
>>852
マルチスレッドを使うとかそういうのじゃねーの?

855 名前:デフォルトの名無しさん :03/05/10 14:58
GetPriorityClassでプロセスのハンドルが必要ですが
自身のプロセスの場合はwinmain関数の引数にあるhInstanceが
プロセスのハンドルになるんでしょうか?



856 名前:デフォルトの名無しさん :03/05/10 15:27
CStringクラスを利用するときについて、

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

でできますが、その逆の
LPCTSTR型をint型に変換
はどうやるんでしょうか?
自分で関数作るしかないですか?


857 名前:デフォルトの名無しさん :03/05/10 15:46
atoi

858 名前:デフォルトの名無しさん :03/05/10 15:54
_ttoi

859 名前:856 :03/05/10 15:54
>>857
ありがとうございました。


860 名前:デフォルトの名無しさん :03/05/11 06:36
くだ質で流されてしまったのでこちらで質問させていただきます。

現在VC++.NETを使って勉強しています。
ですが、参考書などは.NET以前(VC++5〜6)のものが多く、例題通りにできないこともしばしばです。
それで質問なのですが、.NETは6以前のものをすべて含んでいると考えてもよろしいのでしょうか?
.NETになってから一気にプロジェクトの作り方などが変わっているので疑問に思いました。
一応6も持っているので6以前の参考書では6を使った方がイイ、などとかはありますか?
.NETと6以前は別物と考えた方がいいのでしょうか。


861 名前:デフォルトの名無しさん :03/05/11 07:41
なんで勉強段階の人が6と.NETの両方持ってるんだ?
6は何の為に持ってたの?割れ物?


862 名前:デフォルトの名無しさん :03/05/11 10:53
>>861
どっちも割ってんだろ。

863 名前:デフォルトの名無しさん :03/05/11 10:54
>>860
MS好きなら.NET使えばいいじゃん。
勉強で.NET持っていてわざわざVer6つか必要もないと思うが。

864 名前:デフォルトの名無しさん :03/05/11 13:16
文字をTextout関数で書きたいんですけど
色を指定することはできないのでしょうか・
今のところ黒でしか表現できなくて・・
SelectObject関数を使うのでしょうか

865 名前:デフォルトの名無しさん :03/05/11 13:19
>>864
文字はSetTextColor、背景はSetBkColor。

866 名前:デフォルトの名無しさん :03/05/11 14:39
>>864
それくらい調べろやヴォケが!

867 名前:860 :03/05/11 14:41
>>863
ありがとうございます。
860で書いた通り、ちょっと例題通りにいかなかったりで勉強がしにくかったので、
ver6を使った方が効率いいのか、などと思ったもので。
今後のためにも.NETで慣れて行こうと思います。

>>861
6を手に入れたのが2000年初期でして、
その時はゲームを作りたく、知り合いに聞いてみたところVCで簡単に作れるぞ、と。
それで当時高校生だったからアカデミックを手に入れ、VCの本を買い、勉強を始めたところ、
3日で挫折。そりゃC,C++もできなきゃサパーリ。
PC関係ではない専門学校へ進んだのですが、中退し、去年の暮れ近くから
Cの勉強を本格的に始めたワケでして…現在VCをば。

868 名前:デフォルトの名無しさん :03/05/11 15:10
>>860>>867 がんがれ!!

869 名前:デフォルトの名無しさん :03/05/11 15:43
アカデミックバージョンだと、シェアウェアとして公開できないのですか?

870 名前:デフォルトの名無しさん :03/05/11 15:45
>>867
そんなレベルなら6の参考書は6でやっとけ。


871 名前:デフォルトの名無しさん :03/05/11 15:52
>>869
大丈夫
そのレベルの質問をしている時点で、
レジストしてもらえるソフトを作るのは不可能だから、悩む必要など無い

872 名前:デフォルトの名無しさん :03/05/11 15:55
>>869
安心汁!
誰もお前が作ったソフトになんかレジストしないから。

873 名前:871 :03/05/11 16:00
おい、>>872
ケコーン

874 名前:デフォルトの名無しさん :03/05/11 16:03
アカデミックバージョンだと、シェアウェアとして公開できないのですか?

875 名前:デフォルトの名無しさん :03/05/11 16:04
老いた頭の回転の悪い貧乏リーマンは先が無くて大変だな。

876 名前:デフォルトの名無しさん :03/05/11 16:04

土方として、どうやって生活していこうと思ってるんだ?あ?

877 名前:デフォルトの名無しさん :03/05/11 16:26
>>874
むかしはできなかってkど、今は制限なしだよ。
アカデミック版でもOK!


878 名前:デフォルトの名無しさん :03/05/11 17:09
>>874
大丈夫
そのレベルの質問をしている時点で、
レジストしてもらえるソフトを作るのは不可能だから、悩む必要など無い


879 名前:デフォルトの名無しさん :03/05/11 17:12
>>874
安心汁!
誰もお前が作ったソフトになんかレジストしないから。


880 名前:デフォルトの名無しさん :03/05/11 17:14
デジャブ?!

881 名前:デフォルトの名無しさん :03/05/11 17:19
デジャヴ

882 名前:871 :03/05/11 17:20
ヒデブ

883 名前:デフォルトの名無しさん :03/05/11 17:28

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

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

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

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



884 名前:デフォルトの名無しさん :03/05/11 17:31
mp3のフォーマット自体に情報を埋め込むためのタグがある

885 名前:デフォルトの名無しさん :03/05/11 17:48
>>883
Mac 使えば。

886 名前:デフォルトの名無しさん :03/05/11 18:08
>>883
NTFS使え。

887 名前:デフォルトの名無しさん :03/05/11 18:38
>>883
IPropertySetStorage
IPropertyStorage

888 名前:デフォルトの名無しさん :03/05/11 19:37
おせてくださーい!
シェルでDSWファイルをダブクリするとVCが立ち上がりますが、既存の
VCが閉じられてしまいます。別のプロセスとして立ち上げたいのですが
方法はあるのでしょうか?

889 名前:名無し@沢村 :03/05/11 19:56
>>888
ヌヒよ、VCを立ち上げてからプロジェクトを開けばいいだけだと思うが

890 名前:デフォルトの名無しさん :03/05/11 19:58
沢村に教えてもらうとは…
プログラムをやめることを考えた方がいいかもよ

891 名前:888 :03/05/11 20:15
>>889
シェルからじゃ無理なんですかね。
オプションで「別のプロセスとして起動する」とかありそうな
気がしたのですがなさそうなので。。。

892 名前:デフォルトの名無しさん :03/05/11 20:30
あるプロジェクト内で作ったクラスを、また別のプロジェクトで利用するには、
どんな手順でやればできるのでしょうか?


893 名前:デフォルトの名無しさん :03/05/11 20:31
>>892
クラスのcppとhをその別のプロジェクトに含めれば良いだけじゃん?

894 名前:デフォルトの名無しさん :03/05/11 20:40
>>888=>>891
当方、Win98・VC6ですが、以下のようにして出来ました。
(なんで出来るのかは理由はわかりませんが)

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


895 名前:デフォルトの名無しさん :03/05/11 20:41
(;´Д`)…

896 名前:894 :03/05/11 20:47
おーい>>888=>>891、もういないのか
戻せねーよ、早く教えろよ!

親切心が仇に…

897 名前:デフォルトの名無しさん :03/05/11 20:49
VC++.NETはC99に対応していますか?

898 名前:888 :03/05/11 20:51
>>894
すいませーん。
もうじき書きまーす!

899 名前:デフォルトの名無しさん :03/05/11 20:51
2003は対応してる

900 名前:894 :03/05/11 20:52
マテゴルァ->>888! /\
      ヽ(`Д´)ノ  \/\
       (894)        \/\
      /\< ヽ  \    /    \/\
    /    \  |  \  |\    /    \/\
    |\    /  .|       \  |\    /    \ /\
   / \ \/    |             \  |\   /    \/\
 /    \ |    .|     ( ´_ゝ`)フーン     \ |\   /    \/\
 |\    /|     |   ./ (∩∩ )              \|\    /    \
 |  \ //\      |\     /|                \ /        \
 |   |/    \     |   \ /  .|        ウワァン!/\           >
 |   \    /|     |   |    |     ヽ(`Д´)ノ  /    \       / .|
 |     \ //\       |        / (888)  \       \   /    |
 |      |/   \        /\ /    < ヽミ3 \     /| /     |
 |      \    /|   /\/    \      \    /|   /         |
 |        \ //\/    \     \     /|  /                |
 |         |/   \     \    / | /                    |
 |         \     \   / | /                         .|
 |           \    /| /                              .|
 |            \ /                                  |
 |              .|                                   |



901 名前:デフォルトの名無しさん :03/05/11 20:53
2002年発売の製品なのに1999年の規格に対応していないんだ(;´Д`)

902 名前:888 :03/05/11 20:55
>>894
どうもありがとう。
僕のはXpなのですが同じようなダイアログが出ました。
下がDDEを使うにチェックが付いているときの状態です。
結果はまた報告しますネ。
すんまそーん。

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

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

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

・トピック(T)
system


903 名前:デフォルトの名無しさん :03/05/11 20:56
>>901
対応しなくても誰も困らないから

904 名前:894 :03/05/11 20:59
>>902
戻ったよ。これで、おあいこ。
一応出来るけど、他の影響があるかもしれないから
元に戻せるようにしておいた方がいいですよ。

905 名前:892 :03/05/11 21:01
>>893
その含め方なんですが、cppとhを利用したいプロジェクトのフォルダ内に
入れた後がわからないんです。
例えば、A.cppとA.hというのがあってそれを、B.cppで利用したいときは、
B.cppで、#include "A.h"と書くだけでは、CAクラスはまだ使えないですよね?


906 名前:デフォルトの名無しさん :03/05/11 21:03
プロジェクト -> プロジェクトへ追加 -> ファイル

907 名前:888 :03/05/11 21:04
>>894
お手数かけさしてしまってすんませんでした。m(__)m
VS6.0とVS2002が両方入ってて今設定中です。
(楽しいAAも)どうもありがとう。。。

908 名前:892 :03/05/11 21:17
>>906
ありがとうございますた。m(__)m


909 名前:デフォルトの名無しさん :03/05/11 22:31
VC++でTCPを利用して通信をしようとしています。
socket(PF_INET, SOCK_STREAM, 0);
でソケットを生成してread待ちするサーバを作成しているのですが、
相手先をANYにしている為相手のIPアドレスがわかりません。
受信したデータのIPアドレスを知る方法はありますか?
又、VCでソケット通信するコーディングは合っていますか?
もっと単純にTCPで通信する方法などあったら教えて下さい。


910 名前:デフォルトの名無しさん :03/05/11 22:38
getsocknameとか。

911 名前:909 :03/05/11 22:54
>>910
これって自局IPアドレスを取得するだけではないのですか?


912 名前:デフォルトの名無しさん :03/05/11 23:30
WinMXの検索ウィンドウのリストビューって+クリックで展開できますよね?
あれどういう方法で実装するんでしょうか?

913 名前:デフォルトの名無しさん :03/05/12 00:07
getpeername

914 名前:デフォルトの名無しさん :03/05/12 00:08
>>912
割れですね。放置。

915 名前:デフォルトの名無しさん :03/05/12 00:15
別にMXじゃなくても展開できるだろ

916 名前:909 :03/05/12 00:31
>>913
どうもありがとう。
でも、なんか調べるとCSocket(?)というのがあるみたいですね。
これは使い易いのでしょうか?
当方UNIX系のソケットプログラミングしかしたことないもので…。


917 名前:デフォルトの名無しさん :03/05/12 01:22
MFCのCSocketなら、捨てとけ。

918 名前:デフォルトの名無しさん :03/05/12 14:03
エディットボックスm_ed1内に記入された値を16進データとして吸い出すにはどうしたらよいのでしょう??

BYTE dat=static_cast<BYTE>(m_ed1)

でいいんですかね??

919 名前:デフォルトの名無しさん :03/05/12 14:19
BYTE型に16進などという定義はない

920 名前:デフォルトの名無しさん :03/05/12 16:25
std::runtime_errorを派生したいんですが、
なんかコンパイルエラーの嵐です。
サンプルきぼんぬ。

921 名前:デフォルトの名無しさん :03/05/12 16:26
良心的なアダルトだ
http://homepage3.nifty.com/coco-nut/

922 名前:デフォルトの名無しさん :03/05/12 16:33
Ctrl+Alt+Delを押して出るタスクマネージャのアプリケーションに表示されるような
項目一覧を取得したいのですが、どうすればいいのでしょうか?
EnumWindowsとEnumWindowsProcを使用して試してみると、
なんか予想外にたくさんのウインドウが列挙されて困っています。

923 名前:デフォルトの名無しさん :03/05/12 17:00
#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];


924 名前:デフォルトの名無しさん :03/05/12 17:01
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;
}
突っ込みどころがあれば突っ込んでちょ☆


925 名前:デフォルトの名無しさん :03/05/12 18:03
>>922
プロセスを列挙するってことか?
どっかにソース付きのプロセスモニターが公開されてたはず。
検索してみたけどみつからんので、とりあえずcodeguruで。

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



926 名前:922 :03/05/12 19:24
>>925
レスありがとうございます。
プロセスではなくタスクマネージャのアプリケーションタブの方の一覧を
取得したいのです。
具体的に言えば、Windowsを稼動させるといろいろなプログラムが起動、常駐すると
思いますがその中でアプリケーションとして稼動しているものです。
そのアプリケーションのWidowTextと窓ハンドルを取得したいと思ってます。
どうやればいいのか、、、。・゚・(ノД`)・゚・。

927 名前:デフォルトの名無しさん :03/05/12 19:58
少し前のMSDNmagazineに載ってたような気がするけどもう書店には無いだろうしなぁ。
ウィンドウを列挙して、ある条件を満たすものだけ抜き出す。
条件は可視で、タイトル文字列数が0でなく、オーナーを持ってなく、とあとなんだっけ。

928 名前:デフォルトの名無しさん :03/05/12 20:21
>>926
目的のウインドウのウインドウクラスや周辺特徴の確認
一致するウインドウを検索
そしてウインドウ配下のコントロールへウインドウメッセージを送りアイテムを取得
文字列を受け取る場合はプロセス間メモリ共有を使う必要がある

929 名前:デフォルトの名無しさん :03/05/12 20:26
>>927-928
レスありがとうございます。
なるほど、一発で列挙するAPIなどはなく、列挙したウインドウの中から搾ると
いうやり方なのですね。ありがとうございました。

930 名前:デフォルトの名無しさん :03/05/12 23:21
窓ハンドルを取得して画面に表示しました。
そしてボタンを押すと、その窓ハンドルの対応するウインドウを最前面に出すように
しようと思っています。

画面に表示された窓ハンドルをCString文字列として取得しました。
::BringWindowToTop(HWND hWnd)を使用したいのですが、
CString文字列で取得した窓ハンドル(200CCとか)を
HWNDにするにはどうすればいいのでしょうか?

931 名前:デフォルトの名無しさん :03/05/12 23:25
文字列を数値に直せば?

932 名前:デフォルトの名無しさん :03/05/13 07:37
>>930
そもそもなんで文字列で取り出すの?

933 名前:デフォルトの名無しさん :03/05/13 15:30
初歩的な質問です

<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();

よろしくお願いします

934 名前:デフォルトの名無しさん :03/05/13 15:41
http://www.yahoo2003.com/betu/linkvp2/linkvp.html

935 名前:デフォルトの名無しさん :03/05/13 15:42
ちょっと質問ですが、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


936 名前:デフォルトの名無しさん :03/05/13 15:50
>>935
拡張メタファイルを設定できるみたいだから図を拡張メタファイルにして
SetEnhMetaFile()で設定すれば(CEはしらんけど)

937 名前:デフォルトの名無しさん :03/05/13 15:55
>>936
お答えどうもです。
SetEnhMetaFileの引数って静的コントロールに描画される拡張メタファイルのハンドルらしいのですが
何を設定すればいいのでしょうか?

938 名前:デフォルトの名無しさん :03/05/13 15:56
>>936
CStaticの派生クラスを作って
そのOnPaint()をオーバーライドして描画とか。


939 名前:938 :03/05/13 15:57

>>936でなくて>>935です

940 名前:デフォルトの名無しさん :03/05/13 16:08
SetTimer(111, 500, NULL)
とした場合、プログラム終了、もしくはKillTimerが使われない限り
ずっと500ミリ秒おきにWM_TIMERが送られてるということなんでしょうか?

941 名前:デフォルトの名無しさん :03/05/13 16:17
>940
ぐぐればいっぱつだよ(´Д`)
ttp://sysneitf.hp.infoseek.co.jp/cbuilder_timer.html


942 名前:デフォルトの名無しさん :03/05/13 16:27
クラスウィザードで例えばCStaticを継承するCStaticExなるクラスを作成した時に
フォームにCStaticExを貼り付けるにはどうしたらいいのでしょうか?

943 名前:デフォルトの名無しさん :03/05/13 16:28
>>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) でメタファイルを破棄する

リソースにメタファイルを含めることもできたはずだけどやり方忘れた。

944 名前:デフォルトの名無しさん :03/05/13 16:31
>>943
ご丁寧にソースを書いていただき有難うございます。
早速試してみます!

945 名前:943 :03/05/13 16:43
>>944
忘れてたけど拡張メタファイルはマップモードが基本的にMM_HIMETRICなので
mdc.SetMapMode(MM_HIMETRIC) ;
がいるかも。rect(0, 0, 500, -500)の4つめがマイナスになってるのは
このせい、MM_HIMETRICにしないならプラスでもいいかも。
動作しているのに描画されないときはこのへんが原因になることが多い。

946 名前:デフォルトの名無しさん :03/05/13 16:50
>>933
自己レス
void Init (std::vector< rFont >* pP )
こういう書き方ができるようです。

C++って偉大だな。
;

947 名前:デフォルトの名無しさん :03/05/13 16:57
>>945
補足ありりんです。
気をつけまーす

948 名前:デフォルトの名無しさん :03/05/13 17:48
>>942
ヘッダでCStaticで宣言されているところをCStaticExに変える

949 名前:デフォルトの名無しさん :03/05/13 18:01
>>948
ヘッダって貼り付けたいフォームのヘッダーファイルですよね?
CStaticはフォームに貼ってるのですが、CStatic宣言はないのですが・・

950 名前:デフォルトの名無しさん :03/05/13 18:10
いつからC++は宣言が無くてもコンパイルが通るようになったんだ?

951 名前:デフォルトの名無しさん :03/05/13 18:17
ヘッダのどの辺にCStaticの宣言があるか教えて下さい
フォームに10個並べてるから定義も10個あるんですよね?
違います?

952 名前:デフォルトの名無しさん :03/05/13 18:30
>>951
横レスになりますが、
>>935=>>942=>>949=>>951ってことでいい?

クラスウィザードで変数作るってことでは。
そのときIDC_STATICをIDC_STATIC_EXとか
適当な値に変えておかないとダメそうですが。

953 名前:デフォルトの名無しさん :03/05/13 18:48
出力結果が
一つ目==>○ーーーーーーscanf()で
二つ目==>□ーーーーーーscanf()で
○+□=△ーーーーーーーー△は2進数で表示
を作りたいのですがサッパリです。
#include <stdio.h>
int main()
{



954 名前:デフォルトの名無しさん :03/05/13 18:52
>>953
#include <stdio.h>
int main()
{
printf("一つ目==>○ーーーーーーscanf()で\n");
printf("二つ目==>□ーーーーーーscanf()で\n");
printf("○+□=△ーーーーーーーー△は2進数で表示\n");
return 0;
}

955 名前:デフォルトの名無しさん :03/05/13 18:59
void main(void)
{
char x='A';
int a=5,b=32;
printf("@",x);
printf("%d+%d=(A)x\n",B)
printf("%dC%d=%d\n",D);
printf("変数%cの初期値は%dです\n",x+E,a);
}
実行結果
変数xの初期値はAです
5+32=(0025)x
32%5=2
変数aの初期値は5です
Eの答えがわかりません

956 名前:デフォルトの名無しさん :03/05/13 19:00
よーし、俺がマジレスしちゃうぞ。



mainの戻り値の型はint


957 名前:953 :03/05/13 19:01
printf("%d+%d=%d\n",a,b,c);
cを二進数で


958 名前:953 :03/05/13 19:05
#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;
}
どうかえりゃ

959 名前:デフォルトの名無しさん :03/05/13 21:19
Visual C++ .NETでの質問です。
「変数の追加」では配列は追加できないのでしょうか?
でてくる画面で変数名の部分に test[30] と入れるとエラーになりますし、
変数の種類のところで int [30] とやりましたら一応は作成できたっぽいのですが、
コンパイル時に配列初期化失敗みたいなエラーになりました。
アドバイスお願いいたします。

960 名前:デフォルトの名無しさん :03/05/13 21:49
VC++6.0とVC++.NET、どちらを買おうか迷ってます。
どうしたらよいでしょうか。

961 名前:デフォルトの名無しさん :03/05/13 21:51
>>960
今から買うなら.NET

962 名前:デフォルトの名無しさん :03/05/13 22:17
>>960
迷うと言うことは両方を比較検討したはずだが、
まず自分の調べた範囲を挙げてみてくれ
話はそれからだ

963 名前:デフォルトの名無しさん :03/05/13 22:28
>>962
同意!

でも面倒だから.NET>960

964 名前:デフォルトの名無しさん :03/05/13 22:28
あ、やっぱり今は買わないで2003買う。

965 名前:デフォルトの名無しさん :03/05/13 22:35
全部買う。何でも買う。

966 名前:デフォルトの名無しさん :03/05/14 00:28
>>959
STLを使おう

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

.NET って良くしらないんだけどSTL使えるの使えないの?


967 名前:デフォルトの名無しさん :03/05/14 00:40
>>966
そういう意味の質問じゃないと思うよ。IDEの使い方(または仕様)を聞いてるんだと思う。

968 名前:デフォルトの名無しさん :03/05/14 02:26
C++を勉強しようと思い、.netを購入したまではよいが
一般的なテキストに書いてある構文を書きながら
覚えていきたいとおもっているのだが、起動させてから
何をどこに書けばいいのかわからん・・・・

こんな超初心者なオイラはどうすりゃいいんですか?
親切な皆さん、おすすめテキストやら解説サイトがあったら
教えてください。よろしくお願い致します〜

969 名前:デフォルトの名無しさん :03/05/14 02:28
>>968
intとかelseとか入力すると色が変わるところがあるでしょ。そこに。

970 名前:デフォルトの名無しさん :03/05/14 02:35
>>968
とりあえず新規作成で*.cppファイルを作って、
サンプルのプログラム打ち込んで、ビルドしてみたら
どうですか?

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




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

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



972 名前:デフォルトの名無しさん :03/05/14 02:37
>>968
とりあえず、参考書の購入でも検討してみては?

どれが適してるかは人それぞれだが、
個人的には林晴比古氏の著書とかがわかりやすいと思う。

973 名前:デフォルトの名無しさん :03/05/14 04:08
>>968
嘘書くなアホ
マニュアル読め
購入したんだろ?
ワレザーは消えろ

974 名前:デフォルトの名無しさん :03/05/14 04:21
セットアップガイドならあったけど、使い方を書いたマニュアルなんてあったかなぁ。
ちなみに6.0の話。

975 名前:デフォルトの名無しさん :03/05/14 10:08
>>973=ワレザー

976 名前:デフォルトの名無しさん :03/05/14 10:49
>>974
MSDNだからねぇ。
内容が多すぎて、逆に初心者には使いにくい。



977 名前:デフォルトの名無しさん :03/05/14 11:00
スタンダードなら入門書ついてくるんじゃねーの?

978 名前:デフォルトの名無しさん :03/05/14 14:29
>977
当方VC++.NETstanderdとVS.NETPro所持
どっちも中身は皆さんご存知の使いどころが微妙なポスターキットと
異様にインストールが長い五枚のCDROM。以上。

979 名前:デフォルトの名無しさん :03/05/14 14:34
タン10個あってこのボタンのクリックイベントを1箇所で処理したいのですが
どうやってやるのでしょうか?

980 名前:デフォルトの名無しさん :03/05/14 14:36
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。
カー、ぺっ。カー、ぺっ。

タン10個消去しました。

981 名前:デフォルトの名無しさん :03/05/14 14:41
>>968
BCC5.5+BCC developer+猫でもわかるのサイト
で、プロジェクト設定をwinアプリにした上で
猫でもわかるのSDKコードをひたすら打ち込む
MFCは簡単なSDKで一通りのメッセージハンドラを
理解できたかなと思ってから手をだす

982 名前:デフォルトの名無しさん :03/05/14 14:54
>>979
ON_CONTROL_RANGEとかON_COMMAND_RANGE


983 名前:デフォルトの名無しさん :03/05/14 14:55
>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:
}
}

984 名前:デフォルトの名無しさん :03/05/14 16:30
もう調べるのも限界
SDKで、int型の数値を表示する方法教えて
char型はhelloサンプルでくさるほどあるけど
intはない、MFCだとOnDrawで、pDCでTextOutに渡す
みたいなやり方してるけど
int型はCStringでcharに変換てのもあったけど、やったら玉砕したし
SDKで、ウィンドウにint i=10;のiを表示する簡単なコード教えて
SDKで数値計算プログラムつくろうとしたら、ここでつまって
まったく先に進めません・・・

985 名前:デフォルトの名無しさん :03/05/14 16:40
いい店みつけました!

http://www.dvd-yuis.com/

986 名前:デフォルトの名無しさん :03/05/14 17:04
>>984 僕もint型を表示する方法は知りませんが、文字列変換にて。
int i=10;char s[256];
sprintf(s,"%d",i);
TextOut(hdc,x,y,s,s(strlen));

987 名前:986 :03/05/14 17:06
>>986
strlen(s)っす。すいません。

988 名前:デフォルトの名無しさん :03/05/14 18:27
CStaticってクリックイベントとれないのでしょうか?


989 名前:デフォルトの名無しさん :03/05/14 18:32
>>988
取れます。

990 名前:デフォルトの名無しさん :03/05/14 20:41
VCでapiのpeekmessage()を使って押された、
キーコードを2文字以上を、
同時に取れる事で出来るんですか?
また方法を教えていただけますでしょうか

991 名前:デフォルトの名無しさん :03/05/14 20:42
>>988
通知のチェックいれるかSS_NOTIFY指定するか

992 名前:968 :03/05/14 21:11
昨日の夜ここに書き込んだものです。

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

昨日は軽いノリで書き込んだのに今日は感激!!
みなさん、ありがとう。これから頑張ります。

993 名前:動画直リン :03/05/14 21:13
http://homepage.mac.com/hitomi18/

994 名前:デフォルトの名無しさん :03/05/14 22:47
>>986
sprintfはよく使うから(存在を)覚えておくといいと思われ

995 名前:デフォルトの名無しさん :03/05/14 23:02
MFCのダイアログベースで作成しています。VC++6.0
OnpaintとOnCtlColorを使用してOnpaintでビットマップの描画、
OnCtlColorでスタティックテキストの文字色を描画しています。
これをInvalidate();でコールしてやると、数分経つとハンドルエラーを起こします。
どうやらデバイスコンテキストのpDC.m_hDCが0クリアされているのが原因でアサート
してるみたいですが、そうなる原因がわかりません。
どなたかアドバイスください。

996 名前:デフォルトの名無しさん :03/05/14 23:19
>>986
MFCでのCDC関数使った場合は
それで問題ないんだけど
SDKだとあかんのです
SDKの場合のやり方教えて

997 名前:デフォルトの名無しさん :03/05/14 23:31
次スレをたてないうちに埋め立てるぞゴルァ!!

998 名前:デフォルトの名無しさん :03/05/14 23:31
おーーーー!!!!!!!!!!!!!

999 名前:デフォルトの名無しさん :03/05/14 23:32
勝手にやれよ

1000 名前:デフォルトの名無しさん :03/05/14 23:32



■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.