[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 07/30 18:10 / Filesize : 165 KB / Number-of Response : 705
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/09/10(月) 12:20:27 ]
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5

577 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:13:46 ]
座標を指定する

578 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:20:15 ]
その座標を指定するというのはディスプレイサイズが分かる関数があるんでしょうか?

579 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 16:53:56 ]
VC++って何?ってところから勉強したいんですけど、オススメの書籍ありますか?
C#は1年くらいやったんですが、VC++は初めてで・・・

580 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 19:25:33 ]
VC++って何?という状況だと勧められるものはない

581 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 21:40:14 ]
>>574-575
これくらいは、実験するよりも仕様を確認するほうがいいと思う。
msdn2.microsoft.com/en-us/library/ms534894.aspx

582 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 21:45:32 ]
>>578
GetMonitorInfoとかそこら辺を使う

583 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 22:47:14 ]
GetWindowRect で十分な気がする

584 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 23:18:39 ]
初心者スレでいきなり敷居の高い話をし始める>>582


585 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 07:52:54 ]
MonitorFromWindowで自分のいるモニタのハンドルとって、
GetMonitorInfoでそのモニタの作業領域を取得するだけ。
簡単だろ。



586 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 09:20:02 ]
GetWindowRect一回呼ぶだけ

587 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 12:32:56 ]
GetWindowRectのウィンドウハンドルには、何を指定すればいいのですか?

588 名前:デフォルトの名無しさん mailto:sage [2007/11/03(土) 13:54:10 ]
RECT rect;
GetWindowRect(GetDesktopWindow(), &rect);

589 名前:デフォルトの名無しさん [2007/11/04(日) 02:31:20 ]
Visual C++6.0でSTL(mapやset)を使ったコードをデバッグ情報を生成する
オプションを指定してコンパイルすると、鬼のように長くてたくさんの
警告が出ます。警告の内容は、"デバッグ情報で識別子が255 文字に切り
捨てられました(warning C4786)"というものです。

この問題を回避するには次の選択肢の中から選ぶしかないのでしょうか?

(1) 警告を表示しないようにする → 他の便利な警告を受け取ることができない。
(2) デバッグ情報を生成しない。→ デバッガが使えない。
(3) 死ぬほどたくさんの警告メッセージを我慢。→ 非常につらい。
(4) STLを使わない。→ それは無理。


590 名前:デフォルトの名無しさん mailto:sage [2007/11/04(日) 02:36:06 ]
#pragma warning (disable: 4786)

が常套手段

591 名前:589 mailto:sage [2007/11/04(日) 03:54:29 ]
>>590
うまくいきました。感謝します。

592 名前:デフォルトの名無しさん [2007/11/05(月) 16:44:09 ]
tserve01.aid.design.kyushu-u.ac.jp/~fujiki/vc_lecture/c_6.htm
のお絵かきソフトを作るページを参考にしてるんですが
「ToolBar」の「IDR_MAINFRAME」のボタンとIDを書き換えても
ページに書かれているようなIDに対応するような関数が作られず
ボタンも描いたように表示されず灰色の使用不可のような状態
になってしまいます。
VS2005stdです。
どなたか、わかるかた、VS2005ではどうしたらよいか教えていただけないでしょうか。
お願いします。

593 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 16:50:01 ]
>>592
マルチ死ね

594 名前:592 [2007/11/05(月) 16:56:38 ]
マルチしてすみません。
ただ「くだすれVisualC++(超初心者用)」のほうが1000レスいったので
こちらでも質問ささしてもらいました。
すいませんが教えてください。

595 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 17:34:30 ]
ツールバーにハンドラ追加する方法なら少し前に誰かに教えたから過去ログ見ればいい
ウイザードから追加する方法は知らん



596 名前:デフォルトの名無しさん [2007/11/05(月) 19:09:58 ]
メモ帳で[F5]を押すと日付と時刻がペーストされますが、
Visual C++のエディタでも同じことができるでしょうか?
できるなら方法を教えてください。

597 名前:デフォルトの名無しさん [2007/11/05(月) 19:32:57 ]
自分で[F5]を押せば分かるだろ?

598 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 19:59:39 ]
Std以上のVCならマクロで簡単に出来るよ。もちろんキーボード割り当ても可能。

599 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 20:40:23 ]
unicodeにすると
char→CStringをどうやって渡すのかわからないです。
ヒントでいいから教えていただければ、、つД`)

600 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 20:46:28 ]
CStringのコンストラクタ

601 名前:デフォルトの名無しさん mailto:sage [2007/11/05(月) 21:21:27 ]
CString は TCHAR データ型をもとにしています。
プログラムでシンボル _UNICODE が定義されたときは、
TCHAR 型は 16 ビット文字型の wchar_t 型として定義されます。
それ以外は、通常の 8 ビット文字型 char で定義されます。
Unicode 環境下では、CString オブジェクトは 16 ビットの文字で構成されます。
Unicode 環境以外では、CString オブジェクトは 8 ビットの文字で構成されます

602 名前:599 mailto:sage [2007/11/05(月) 22:46:31 ]
>600
>601
ありがとう。
ちょいとそれを頭に入れてググル先生に聞いてみます。

603 名前:デフォルトの名無しさん [2007/11/05(月) 23:04:43 ]
初心者は黙ってVC++でMFCでウィザードでサクサクやるのがいいですよね?


604 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:14:49 ]
いい
というのは何を根拠として良いと判断するんですか?>>603


605 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:17:45 ]
VC++がどーだ、MFCはあーだこーだ言ってないで、
サクサク作れるんだから作った方が勉強になるという意味で、
いいと思いますが。




606 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:26:12 ]
サクサク作れない

607 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 00:32:03 ]
MFCウイザードでさくさく作れる香具師は、
MFCウイザードがなくたってサクサク作れる。

608 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 07:54:50 ]
MFCキライなヤツが増えたな。

609 名前:デフォルトの名無しさん [2007/11/06(火) 18:13:37 ]
ダメ!
MFCで人生を棒に振った悲しいプログラマが、いったい何人いることやら。
MFC犠牲者慰霊の塔の下に眠っている幾千幾万のプログラマたちが
成仏できずに毎晩、悲痛なうめき声をあげて助けを求めているというのに。
マイクロソフト社さえ見放した禁断の果実MFCを、なぜ今更?
もうこれ以上、犠牲者が増えるのを善良な市民として見ていられない。
忘れなさい。MFCの事は忘れなさい。記憶の底から消し去るのです。
MFCなんて見なかった。聞かなかった。この世に存在しなかった。
いいですね?わかりましたね?


610 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 21:54:51 ]
ダメ! 
.NET で人生を棒に振った悲しいプログラマが、いったい何人いることやら。
(ry

611 名前:デフォルトの名無しさん [2007/11/06(火) 22:13:12 ]
VC++でWin32アプリならいい?

612 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 23:47:36 ]
VisualC++6 と VisualC++.NET の差がわかりません
差はないのでしょうか?
今から始めるならVC.netでいいんでしょうか?
VCに興味を持っている理由は .NET Frameworkとかの
ランタイムのインストールをしなくても動くEXEが作れるらしいから、と
DirectXでゲーム作ろうとしてもC++の参考書しかないから、なのですが
VC.NETで作ったEXEは .NET Frameworkがないと動かないものになるのですか?


613 名前:デフォルトの名無しさん mailto:sage [2007/11/06(火) 23:56:01 ]
Visual C++ .NET 2002はVisual C++ 7.0、.NET 2003は7.1相当。
.NET抜きにして、C++コンパイラとしても開発環境としても機能は上がっている。

.NET Framework使うプロジェクトを作らなければ、
Visual C++ .NET 2002/2003でも.NETなしのネイティブプログラムが作れる。

ちなみに、現在の最新版は2005 (8.0)。ただ、上に書いたような事情は変わらず。

614 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 00:11:39 ]
>>613
ありなとうございまつ
早速VC++2005EEをインスコしますた

しかしネットだと.NET Framework使うプロジェクトか
HalloWorldみたいなウインドウすら出てこないのの解説ばかりでつなorz
猫でもわかるプログラミングでも観ることにするでつよ

615 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 00:15:34 ]
>HalloWorld
早くもオリジナルな要素を取り入れてるのか



616 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 00:24:29 ]
>>614
SDK入れなウィンドウの表示なんてできへんで〜

617 名前:デフォルトの名無しさん mailto:age [2007/11/07(水) 00:59:03 ]
すみませんが質問です。

大量のログをとれるようなDOSプロンプトというか、コンソールエミュレータと
いうようなものを作る場合、リッチエディットコントロールを使うのがよいので
しょうか?

それともwin32アプリにしてしまって、入出力をリダイレクトするのが良いので
しょうか?

618 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 01:00:01 ]
>>615
もまい、やさしいでつね

>>616
www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
をやらないと.NET Frameworkなソフトしか作れないということですか?

619 名前:デフォルトの名無しさん [2007/11/07(水) 01:08:09 ]
>>617
特に見栄えを気にしなくてもいいのなら、「コンソールアプリ」 にするのがいちばん簡単だよ。
ログを取るだけで、画面にスクロール表示する必要がないのなら、ふつーにウインドウアプリ
でもいいし。ログだけファイルに落とせればじゅうぶんだろ?

620 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 07:29:29 ]
>>619 レスサンクス

スクロールは使いたいですね。ログは軽く64kb以上になるので、リッチ
エディットコントロールしかないかな、と。
イベントのことはよく分かりませんけど、CLIを真似する以上はEnterキーを
見張らないとダメそうで、どうしたもんだかと悩みますね。

teratermのログ機能と、DOSプロンプトが合体したような感じが望ましいの
です。


621 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 08:39:00 ]
ログ取るのにリッチエディットコントロールが出てくるのが意味不明だったけど
それぐらいの容量なら普通のエディットコントロールでも余裕でいける

622 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 21:47:52 ]
>>621 CREATEしたときにEM_SETTEXTLIMITを投げればいい、って言ってくれればいいのに。

623 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:12:57 ]
AllocConsole

624 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:19:28 ]
上のGetWindowRect(GetDesktopWindow(), &rect);について質問です。

この関数でrect.leftをはじめ、ディスプレイサイズの取得が出来るのは分かるのですが、
それによってウィンドウの表示位置を変えていくのであれば、WinMainの中のCreateWindowの水平、垂直位置の更新をしなければいけませんよね?
その方法ってのはどうやるんですか?一応ウィンドウの雛形やCreateWindowの再描画などで調べたんですが、さっぱりでして。


625 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:50:41 ]
起動時に位置を設定したいならCreateWindowに好きな位置を渡すだけだし
後で変えたいならMoveWindowとかSetWindowPlacement()など。



626 名前:デフォルトの名無しさん mailto:sage [2007/11/07(水) 23:56:40 ]
>>625
取り敢えずMoveWindowについて調べてぱっと記述してみたらできました。
SetWindowPlacementについてもまた調べてみたいと思います。
ありがとうございました。

627 名前:デフォルトの名無しさん [2007/11/08(木) 00:43:31 ]
うは、Win32プロジェクトがないw
イラネw

628 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 00:55:37 ]
Windows SDKでも入れて、
あとは適当なプロジェクトを作って、適当にオプションいじっておけ。

629 名前:デフォルトの名無しさん [2007/11/08(木) 07:17:34 ]
MUIに対応したものを作りたいのですが、
.rcconfigファイルの中身をどう書いたら良いかご存知の方はいませんか?
サンプルアプリケーションを見てみたのですが、
<resourceType typeNameId="#4"/>
の4が何を意味しているのかがわかりません。。



630 名前:デフォルトの名無しさん [2007/11/08(木) 07:30:10 ]
C#やっている人がC++やってもわからないよね?


631 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 11:09:42 ]
>>627
貧乏人乙w

632 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 20:44:10 ]
スタンダード以上だと別途PSDK入れなくても
Win32プロジェクトが最初から選べるのに気づいた
ところでWin32プロジェクトってインテリセンスが
使えないんだが設定が悪いのか?それとも仕様?

633 名前:デフォルトの名無しさん [2007/11/08(木) 23:06:47 ]
LNK2001: 外部シンボル ""public: virtual void __thiscall CWnd::DoDataExchange(class CDataExchange *)" (?DoDataExchange@CWnd@@UAEXPAVCDataExchange@@@Z)" は未解決です。

Visual Studio 2005でMFCのアプリケーションをコンパイルすると
上のようなエラーがいっぱいでるのです。

これはどうやって回避すればいいのでしょうか?

634 名前:デフォルトの名無しさん [2007/11/08(木) 23:12:48 ]
ダメ!
MFCで人生を棒に振った悲しいプログラマが、いったい何人いることやら。
MFC犠牲者慰霊の塔の下に眠っている幾千幾万のプログラマたちが
成仏できずに毎晩、悲痛なうめき声をあげて助けを求めているというのに。
マイクロソフト社さえ見放した禁断の果実MFCを、なぜ今更?
もうこれ以上、犠牲者が増えるのを善良な市民として見ていられない。
忘れなさい。MFCの事は忘れなさい。記憶の底から消し去るのです。
MFCなんて見なかった。聞かなかった。この世に存在しなかった。
いいですね?わかりましたね?

635 名前:デフォルトの名無しさん [2007/11/08(木) 23:18:21 ]
マイクロソフトは、.NETの成功に関わらず
C++の開発を進めています。
次に発売するVisual StudioのMFCには、Vista用のWindowsメッセージの追加。
XmlLiteなどなど、お楽しみがいっぱいです。



636 名前:デフォルトの名無しさん mailto:sage [2007/11/08(木) 23:22:34 ]
そんなことよりもATLのopen source化をだな

637 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:06:25 ]
>>633
VS2005の修復で直らなければ再インスコ

638 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 00:11:36 ]
マイドキュメントのVisual Studio 2005のフォルダをまるまるノートにコピーして
プロジェクトを開いたところ,作成していたプログラムの中のラベルが全て
黒塗りに表示されてしまいました。
ビルドして実行しても黒塗りは変わりません。

直す方法はありますか?

639 名前:デフォルトの名無しさん [2007/11/09(金) 00:45:40 ]
PSRTとかLPSTRってString型みたいなもんですか?

640 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 01:22:46 ]
>>639
ちゃうよ

641 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 05:46:56 ]
全くの無知なんですが、C・C++を覚えたいと思います。
まず何をするべきでしょうか?

642 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 06:24:21 ]
C/C++のコンパイラをインストール
このスレに来たからにはVisualC++だな

643 名前:デフォルトの名無しさん [2007/11/09(金) 06:31:52 ]
>>642
把握d
とりあえずいろいろ調べながらいじってみます!
スレチに気付いたら黙って消えますw

644 名前:デフォルトの名無しさん [2007/11/09(金) 14:10:53 ]
VisualC++のwindowsフォームアプリケーションで
スクリーンキーボードを作ってるんですが
初期のウィンドウを非アクティブ化することができません。
どうしたらいいでしょうか?

645 名前:デフォルトの名無しさん [2007/11/09(金) 16:13:31 ]
>>644
初期のウィンドウってなに? キーボード?



646 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 17:33:59 ]
systemやgetchといった関数が「認識されません」というふうにエラーが出ます。
#include<windows.h>や#include<conio.h>のヘッダが登録できてないのでしょうか。
またそうであれば、やり方を教えてください。
よろしくお願いします。

647 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 17:43:48 ]
windows.hとconio.hをインクルードしてもsystemやgetchは使えない。
systemを選択してF1押すべし。

648 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 17:53:24 ]
>>647
選択とはドラッグでいいんでしょうか。
F1押すとヘルプが出るんですが、どの時点で押せばいいんでしょうか・・・

649 名前:デフォルトの名無しさん [2007/11/09(金) 18:00:11 ]
・まず、画面に出たエラーメッセージをよく読んでみてごらん。
 読んでも分からないなら、省略せずにそっくりそのまま掲示板に貼り付けて質問しよう。
・system関数を使うのに必要なヘッダファイルは何かな?
 (あえて正解は書かないよ。自分で調べる練習しなさい。宿題です)
・getchも同様。

Visual CコンパイラはIDE統合開発環境と、コマンドラインの2種類がある。
・IDEはIDEの使い方を覚えなきゃいけないという障害は立ちふさがる。
・コマンドラインのコンパイラは環境変数の設定とかなんとかメンドクサイ。
どちらも超初心者には敷居が高い。独学はかなりの覚悟が必要。
だれか先生になってもらってくれる人がいればいいんだけどね。

650 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 18:13:30 ]
>>649
エラーメッセージは
'getch': 識別子が見つかりませんでした
'system': 識別子が見つかりませんでした
です。
ヘッダファイルは
<windows.h>
<conio.h>
だと思います。
違っていたら、調べ直すので指摘だけお願いします

651 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 18:25:31 ]
違ってます。
選択の説明しようと思ったけど指摘だけとのことなので省略。
まーがんばれ

652 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 18:53:40 ]
windowsがどっからくるのよ
stdlib

653 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 19:40:50 ]
::CreateProcessかなんかと勘違いしてるんだな
俺にはわかる

654 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 20:34:42 ]
コンパイル通りました。ありがとうございました。
実はttp://fatalita.sakura.ne.jp/TubeRPG/のサイトのlesson1を
実行したかったのですが、コンパイルは通っても画面がすぐに消え
"ハンドルされていないwin32の例外が発生しました"
と出て実行できません。
何がおかしいのでしょうか。

655 名前:デフォルトの名無しさん mailto:sage [2007/11/09(金) 21:36:28 ]
そんな糞サイトの後始末頼まれても迷惑
書いた本人に直接聞けよ



656 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 00:33:26 ]
うは、声がきもい。
インデントが変態。
空白の明け方がへぼい。
思考の流れが行き当たりばったり。

657 名前:デフォルトの名無しさん [2007/11/10(土) 01:27:18 ]
面白そうなのでオレも見てみた。
インデントが変???ぜんぜん変じゃないんだけど・・・

っつう事で、>>656 がどんな立派なコードを書いてるのか、期待age

658 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:27:26 ]
www.wisdomsoft.jp/dev/api/windows/004

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
CHAR chStr[128];

wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

return 0;
}

エラー 1 error C2664: 'wsprintfW' : 1 番目の引数を 'CHAR [128]' から 'LPWSTR' に変換できません。(新しい機能 ; ヘルプを参照) c:\documents and settings\gald.pc-p4gald\デスクトップ\sdaf4e\sdaf4e\asdf.cpp 7
エラー 2 error C2664: 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) c:\documents and settings\gald.pc-p4gald\デスクトップ\sdaf4e\sdaf4e\asdf.cpp 8
というエラーで実行できないんだけど
なぜでございましょう?

つか、VBやらC#の型はわかりやすいのに
WCHARとかTCHERとかLPSTRとか理解しにくい型が多くて苦しい

659 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:31:08 ]
>>658
エラー通りだな
CHAR chStr[128];

TCHAR chStr[128];
に変更すればいいんでない?
それでエラーが出るなら、<tchar.h>をインクルードすればOK


660 名前:デフォルトの名無しさん [2007/11/10(土) 01:32:52 ]
プロジェクトがユニコードになってるからだよ。
ANSIに変更しよう。
初心者がかならずつまづく超FAQだね。

661 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 01:42:19 ]
何回も同じ質問を見てるな
テンプレにでも入れた方がいい気がする

662 名前:若者は馬鹿者 ◆KorX0HCHGU mailto:sage [2007/11/10(土) 01:43:24 ]
>>659

#include <windows.h>
#include <tchar.h>

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
TCHAR chStr[128];

wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

return 0;
}

エラー 1 error C2664: 'wsprintfW' : 2 番目の引数を 'const char [26]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)

だそうでつ

>>660
プロジェクトのプロパティ-構成プロパティ-全般 の
文字セットを「Unicode文字セットを使用する」から「設定なし」にしたら
上記のコードが動いたわけですが、
これはソースコードそのものがUnicodeだったからダメだったってことでつか?
理由がよくわからんです


663 名前:デフォルトの名無しさん [2007/11/10(土) 02:01:46 ]
>>662
ユニコードじゃ無いアプリケーションを、ユニコードアプリケーションとしてコンパイルしようとした。

www.wisdomsoft.jp/dev/api/windows/003
ここには「将来性を考えて、これから文字コードは Unicode を用いるべきです。 」とか書いてあるけど・・・
初心者はユニコードアプリには手を出さんほうがいいよ。もうすこし慣れてからがいい。
よっぽど注意深くコーディングしないと、ワケワカランことになるよ。

664 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 02:03:43 ]
>>662
_T("インスタンスハンドル : %d")
とすれば、いいよ

TCHARってのは、コンパイル時に自動で、マルチバイト文字セットとUNICODE文字セットを切り替えてくれます
文字リテラル("文字列"とか'a'とか)については、_Tもしくは、TEXTマクロで、マルチバイト文字セットとUNICODE文字セットの変更を自動でしてくるようになります

ソースコードがUNICODEとか言うんじゃなく、現在扱っている文字が何なのかをコンパイラに教えてやる必要があるって事です
それを省略したら、勝手に、ANSIとかOEMとか言う文字セットとして扱われるって事です


665 名前:デフォルトの名無しさん [2007/11/10(土) 03:09:35 ]
非ユニコードアプリとユニコードアプリの差をまず理解しないとだめってことでつね



666 名前:デフォルトの名無しさん [2007/11/10(土) 10:46:55 ]
今、ゲーム作ってるんですけど教えてください。(ゲ製作で聞くべき?)

ゲームの画面を(ウィンドウが隠れたりしても)表示させるために
WM_PAINTで

BitBlt(hDC2,0,0,200,200,GetDC(hWnd),0,0,SRCCOPY);

てな感じでhDC2に退避させて、ウィンドウが隠れたりして再表示する時に
hDC2から持ってくる・・・という風にしたいんですが、

1.WM_PAINTの部分で画面を退避させるという事は変でしょうか?
  「普通はこうやる」っていうのがあれば教えて頂きたい。

2.退避させた画面はどの部分(ハンドラ)で戻すべきですか?
  今のところ、WM_TIMERで一定時間ごとに戻してるのですが・・・

667 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 10:56:55 ]
予めメモリDCを作っておいて、描画は全てそこへ行う。
WM_PAINTでは、そのメモリDCからウィンドウDCへのBitBltに限る。
ってのが普通。

668 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:32:26 ]
>>667
いまどきそんな原始的な方法なんかw

669 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 11:38:55 ]
でも666はありえないだろ。
話はそれるがReleaseDCしていないのも目に付くし。


670 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:42:02 ]
>>657
void main() {


671 名前:デフォルトの名無しさん mailto:sage [2007/11/10(土) 18:43:53 ]
夫失敬。

>>657
void main(){
 while (1)
 {
  DrawMap();
 }
}
--
変態かどうかは兎も角、不思議なコーディングスタイルだとは思う。

672 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 00:32:33 ]
めんどくせー > VC++
Formねーじゃん

どうやってGUIつくんだよ

673 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 00:46:10 ]
珍しいVC++だね。ウチのにはForm付いてるよ。

674 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 00:56:55 ]
うちのはintも付いてない

675 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 01:03:24 ]
それVirtualConsoleだろ



676 名前:デフォルトの名無しさん [2007/11/11(日) 01:40:15 ]
VC6.0でプログラムしています。
MFCは使わず、APIのみ。

ダイアログボックスにコンボボックスを貼り付けて
内容(数字)をリストから選択するような動作をさせたいと思っています。
ワードでフォントを変更するときのコンボボックスのようなイメージです。

VC上でダイアログボックスにコンボボックスを貼り付け、
コンボボックスのプロパティのデータ にある”リストボックス項目の入力(N)”に
選択したい数字のリストを並べれば良いかと思ったのですが
実際に動かしてみると コンボボックスの▼を押してもキーボードの↓を押しても
リストが現れません。
やり方が間違っているでしょうか?


関係ないかもしれませんが手元の参考書ではリストボックスを使用する場合の方法が書いてあり
リストボックスを初期化するにはSendDlgItemMessage()関数を使用するとのことだったので
試しにやってみましたがリストボックスではリストに文字列を追加できましたがコンボボックスでは追加されませんでした。

内容に不足などありましたらご指摘をお願いします。

677 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 05:28:25 ]
>コンボボックスの▼を押してもキーボードの↓を押しても
>リストが現れません。

ああこれね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<165KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef