07/10/26 19:24:00
>510は >498に答え書いてあるのに気がつかない初心者
512:デフォルトの名無しさん
07/10/26 19:25:48
>>510
ここは初心者スレだけど初心者のお前が威張れる場所じゃない。
513:デフォルトの名無しさん
07/10/26 19:27:53
>>509
どういたしまして^^
514:デフォルトの名無しさん
07/10/26 19:43:06
>>511
ば~か、>>498 は無視されてるのに気づかないの?
515:デフォルトの名無しさん
07/10/26 20:14:44
とりあえずage厨の子供が一人いたということでFA?
516:デフォルトの名無しさん
07/10/26 23:25:56
なんでいつまでたってもSHGetSpecialFolderPathとか出てこないの
517:デフォルトの名無しさん
07/10/26 23:28:58
既に解決済みだから
518:デフォルトの名無しさん
07/10/26 23:32:14
>487
519:デフォルトの名無しさん
07/10/26 23:34:19
まだやってるのかよ、しつこいな。
520:デフォルトの名無しさん
07/10/26 23:38:56
>487
521:デフォルトの名無しさん
07/10/26 23:42:58
clsid直書きで解決ってどんだけー
522:デフォルトの名無しさん
07/10/26 23:45:47
馬鹿は心の隅で笑うのが鉄則
下手に指摘しても知恵を付けさすだけ
523:デフォルトの名無しさん
07/10/28 23:35:34
VS2005 Pro.を使用しています。
プロジェクトにクラスの追加を行う方法について困ったことがあります。
あるヘッダファイルに書かれているクラスをProjectに追加するにはどうすればいいでしょうか?普通はどのように追加するものでしょうか?
以下のようにするとコンパイルエラーになります。
1. ソリューションの作成
2. ソリューションにProject Aをクラスライブラリとして追加
3. Project Aにあるheader ”Common.hとします” を#includeで追加
4. ソリューションにProject Bをクラスライブラリとして追加し、同じようにCommon.hを#include
5. Main ProjectにProject AとProject Bを「プロジェクト」
-「参照の追加」で追加 ビルド
→Common.hで定義された型が再定義されました。というエラー。
524:デフォルトの名無しさん
07/10/29 02:33:01
ソリューションエクスプローラを開いて
「ヘッダー ファイル」 フォルダ を右クリックして「追加」->「既存の項目」でヘッダーを入れて
「ソース ファイル」 フォルダ を右クリックして「追加」->「既存の項目」でソースを入れて
クラスが必要なソースからヘッダーを include すればいい
525:デフォルトの名無しさん
07/10/29 02:36:03
アイタタタタタ・・・
526:523
07/10/30 00:39:16
返事が遅くなってすいません。調べてみると、public, privateが決まってくる
ような気がしました。
Main, ClassLibA, ClassLibBでヘッダファイルに書かれたClassZを
includeしたいと思います。ClassLibA, ClassLibB, ClassZはPublic ref
のクラスです。
ClassLibA, ClassLibBはクラスライブラリとして追加したものです。
Main Class・・・ClassLibA, ClassLibB
ClassLibA・・・ClassZ(includeで追加)
ClassLibB・・・ClassZ(includeで追加)
Main Class, ClassLibA, ClassLibBそれぞれでClassZで定義された
メンバを使いたいと思ってます。
ただし、上記でコンパイルすると、再定義警告となってしまいます。
ClassZをprivateにして、Main, ClassLibA, ClassLibBのClassで
includeするしかないでしょうか?
ClassZはClassLibA, ClassLibBを参照した場合にしか使わないので、
なるべくincludeという形で別includeにしたくないと思っております。
上記のように2つのdllから共通のクラスを使い、その2つのdllを使う
クラスがある場合はどのようなクラス構成、設定にするべきでしょうか?
長々と書いてしまってすいません。
527:デフォルトの名無しさん
07/10/30 01:00:03
.net かよ...
528:デフォルトの名無しさん
07/10/30 01:58:49
>>526
C++/CLIはスレ違いだよね
ClassZもdllにしたら?
とりあえず.netについて分かってない気が
529:デフォルトの名無しさん
07/10/30 19:38:00
VS2005でファイル操作をするためにfstream.hをインクルードしたいのですが、
ファイルを開けないと出るのですが、fstream.h以外に何かありますでしょうか?
530:デフォルトの名無しさん
07/10/30 19:44:11
fstream
531:デフォルトの名無しさん
07/10/30 19:58:49
#include <iostream>
#include <fstream>
void main(){
char buf[512];
// ifstreamのインスタンスを作る
// C言語のfopenと同じ
ifstream ifs("input.txt") ;
// ofstreamのインスタンスを作る
// C言語のfopenと同じ
ofstream ofs("output.txt") ;
// ifstreamのインスタンス(ifs)から1行読み込みbufに入れる。
while( ifs.getline( buf, sizeof(buf) ))
// ofstreamのインスタンス(ofs)を利用して読み込んだ内容を書き込む
ofs << buf << endl;
}
コンパイルエラーになるんですが、なぜですか?
532:デフォルトの名無しさん
07/10/30 20:20:16
バカじゃねぇの
using namespace std;
533:デフォルトの名無しさん
07/10/30 20:24:42
#include <iostream>
#include <fstream>
using namespace std;
void main(){
char buf[512];
// ifstreamのインスタンスを作る
// C言語のfopenと同じ
fstream ifs("input.txt" ,ios::in) ;
// ofstreamのインスタンスを作る
// C言語のfopenと同じ
fstream ofs("output.txt",ios::out) ;
// ifstreamのインスタンス(ifs)から1行読み込みbufに入れる。
while( ifs.getline( buf, sizeof(buf) ))
// ofstreamのインスタンス(ofs)を利用して読み込んだ内容を書き込む
ofs << buf << endl;
}
534:デフォルトの名無しさん
07/10/30 20:35:10
ありがとうございます。
535:デフォルトの名無しさん
07/10/30 20:50:33
>>532は無知の知を知らぬ無知
536:デフォルトの名無しさん
07/10/30 20:54:45
ググれば分かるレベルだろ
答えもしてない分際で答えた者をバカにするな
537:デフォルトの名無しさん
07/10/30 20:58:57
( ´,_ゝ`)プッ
たかが2chで簡単な答えを書いただけの癖に随分と偉そうですなあ
538:デフォルトの名無しさん
07/10/30 21:05:22
( ´,_ゝ`)プッ
たかが2chで簡単な質問を書いただけの癖に随分と偉そうですなあ
539:デフォルトの名無しさん
07/10/30 21:54:39
>>536
先に答えが出たので答えなかっただけ。
たまたま自分が答えを知っていたというだけで質問者を愚弄する者こそ愚者と知るべし。
540:デフォルトの名無しさん
07/10/30 22:06:49
たまたまってレベルじゃねぇぞ
お前どんだけレベル低いんだ
541:デフォルトの名無しさん
07/10/30 22:08:39
>>539
>答えもしてない分際で答えた者をバカにするな
日本語読める?
542:デフォルトの名無しさん
07/10/30 22:40:20
Q&A系スレッドを勝負に例えるなら
答えた者が勝ち。
答えられなかった者は負け。
答えられなかったのに捨てゼリフ吐くのはみっともない。
亀田3兄弟よりみっともない。
543:デフォルトの名無しさん
07/10/30 22:52:30
ここC++スレじゃないし
544:デフォルトの名無しさん
07/10/30 23:00:49
↑
亀田3兄弟よりみっともない男
545:デフォルトの名無しさん
07/10/30 23:20:50
スレ違いは犯則負け
546:535
07/10/31 00:10:22
>>540
>質問者を愚弄する者こそ愚者と知るべし
~~~~~~
勝ち負けの問題じゃない。君こそ日本語を読め。
しかも、俺じゃない奴(>>543)すら攻撃するし。
自分以外は全員敵かよw
547:デフォルトの名無しさん
07/10/31 00:17:30
レス番間違ってるし
同一人物だと思ってるし
自分以外は全員敵かよw
548:デフォルトの名無しさん
07/10/31 00:27:48
( ´,_ゝ`)プッ
なら口ださなきゃいいのに>>547
549:デフォルトの名無しさん
07/10/31 02:53:50
picutureBox1とpicutureBox2があって、
picutureBox1 Clickの処理をpicutureBox2 Clickにも同じくさせたいんですが、
どうのようにすればいいでしょうか?
550:デフォルトの名無しさん
07/10/31 08:01:23
自分の使ってる物も分からんのか
スレ違いだ馬鹿野郎
551:デフォルトの名無しさん
07/10/31 08:39:39
C++/CLIはOKだろ。
>>549
PictureBoxの派生クラスを書けばいい。
追加 - クラス - C++クラス で作成、
ビルドした時点でツールボックスに追加されるので、
後は普通のPictureBoxと同じように配置すればいい。
552:デフォルトの名無しさん
07/10/31 08:43:14
専用スレがあるのにもったいない
553:デフォルトの名無しさん
07/10/31 09:28:52
VisualC++6.0ではMSDN入れないと型情報自動表示機能は使えないのでしょうか?
554:デフォルトの名無しさん
07/10/31 09:39:26
MSDNなんか参照しないよ
555:デフォルトの名無しさん
07/10/31 11:58:43
LRESULT から intに正しく変換する方法を教えてください
556:デフォルトの名無しさん
07/10/31 12:28:14
intでキャスト
557:デフォルトの名無しさん
07/10/31 16:25:21
Windows XP sp2
Visual C++ 6.0
フォームの中のボタンを押すとWindowsキーを押したようにしたいと思っています。
フックして仮想キーコードを取得するところまででき,Windowsキーのコードは確認できたのですが,
そこからWindowsキーを押したように見せる方法がわかりません。
どうすれば,Windowsキーを発行することができるんのでしょうか。
558:デフォルトの名無しさん
07/10/31 16:36:42
WM_LBUTTONDOWNでも送りつけてみたら?
559:デフォルトの名無しさん
07/10/31 17:00:16
>>558さん
お返事ありがとうございます。
>WM_LBUTTONDOWNでも送りつけてみたら?
実際にはどのような関数を使えばいいのでしょうか。
560:558じゃない人
07/10/31 17:14:36
うーん。PostMessage()で、WM_KEYDOWN(WM_SYSKEYDOWN?)を送るというアイデアぐらいしか
思いつかない。
561:デフォルトの名無しさん
07/10/31 17:20:40
>>559
>実際にはどのような関数を使えばいいのでしょうか。
PostMessage()
562:557
07/10/31 17:29:05
>>560さん,>>561さん
ありがとうございます。
WM_KEYDOWN(WM_SYSKEYDOWN?)とPostMessage()
の使い方がわからないので探してみます。
名前さえもわからない状態だったので,とてもうれしいです。
うまくできたら,ご報告させて頂きます。
563:デフォルトの名無しさん
07/11/01 08:43:17
文字コードがバラバラのファイルを
同じ文字コードに統一したいのですが、
どのように処理したらいいのでしょうか?
ちなみに、VC2005です。
564:デフォルトの名無しさん
07/11/01 08:50:42
文字コード判別→変換
565:563
07/11/01 08:53:17
>>564 すばやい回答ありがとうございます。
文字コード判別になにを使えばいいでしょうか?
566:デフォルトの名無しさん
07/11/01 08:57:40
Windows的にはMLang。
だけどnkf使った方が楽。
567:563
07/11/01 09:05:27
.NET の方にはなにかないですか?
568:デフォルトの名無しさん
07/11/01 10:39:24
スレ違い
569:デフォルトの名無しさん
07/11/01 11:13:48
>>567
死ね
570:デフォルトの名無しさん
07/11/01 13:32:02
>>567
死ね
571:デフォルトの名無しさん
07/11/01 14:09:14
>>567
死ね
572:デフォルトの名無しさん
07/11/01 14:38:35
>>567
生きろ
573:デフォルトの名無しさん
07/11/01 18:31:21
>>567
C++なんだから、そこだけネイティブで>>566とすればいいじゃない。
574:デフォルトの名無しさん
07/11/02 09:24:11
WM_CREATEの中でBeginPaintって出来ませんか?
WM_PAINTじゃなく、CREATEの中でLineToとか一度だけの表示をしてしまいたいんですが・・
575:デフォルトの名無しさん
07/11/02 10:27:48
いちいち聞かなくても好きなところで書けばいいよ
自分でやってみればわかるから
576:デフォルトの名無しさん
07/11/02 16:09:17
ウィンドウを常に画面の右上に固定や左下に固定で表示させるのはどうしたらいいでしょうか?
CreateWindow内で座標を指定するのではなく、どのPCで開いてもちゃんと画面左上などの位置にぴったり表示させたいんです。
分かる方お願いします。
577:デフォルトの名無しさん
07/11/02 16:13:46
座標を指定する
578:デフォルトの名無しさん
07/11/02 16:20:15
その座標を指定するというのはディスプレイサイズが分かる関数があるんでしょうか?
579:デフォルトの名無しさん
07/11/02 16:53:56
VC++って何?ってところから勉強したいんですけど、オススメの書籍ありますか?
C#は1年くらいやったんですが、VC++は初めてで・・・
580:デフォルトの名無しさん
07/11/02 19:25:33
VC++って何?という状況だと勧められるものはない
581:デフォルトの名無しさん
07/11/02 21:40:14
>>574-575
これくらいは、実験するよりも仕様を確認するほうがいいと思う。
URLリンク(msdn2.microsoft.com)
582:デフォルトの名無しさん
07/11/02 21:45:32
>>578
GetMonitorInfoとかそこら辺を使う
583:デフォルトの名無しさん
07/11/02 22:47:14
GetWindowRect で十分な気がする
584:デフォルトの名無しさん
07/11/02 23:18:39
初心者スレでいきなり敷居の高い話をし始める>>582
585:デフォルトの名無しさん
07/11/03 07:52:54
MonitorFromWindowで自分のいるモニタのハンドルとって、
GetMonitorInfoでそのモニタの作業領域を取得するだけ。
簡単だろ。
586:デフォルトの名無しさん
07/11/03 09:20:02
GetWindowRect一回呼ぶだけ
587:デフォルトの名無しさん
07/11/03 12:32:56
GetWindowRectのウィンドウハンドルには、何を指定すればいいのですか?
588:デフォルトの名無しさん
07/11/03 13:54:10
RECT rect;
GetWindowRect(GetDesktopWindow(), &rect);
589:デフォルトの名無しさん
07/11/04 02:31:20
Visual C++6.0でSTL(mapやset)を使ったコードをデバッグ情報を生成する
オプションを指定してコンパイルすると、鬼のように長くてたくさんの
警告が出ます。警告の内容は、"デバッグ情報で識別子が255 文字に切り
捨てられました(warning C4786)"というものです。
この問題を回避するには次の選択肢の中から選ぶしかないのでしょうか?
(1) 警告を表示しないようにする → 他の便利な警告を受け取ることができない。
(2) デバッグ情報を生成しない。→ デバッガが使えない。
(3) 死ぬほどたくさんの警告メッセージを我慢。→ 非常につらい。
(4) STLを使わない。→ それは無理。
590:デフォルトの名無しさん
07/11/04 02:36:06
#pragma warning (disable: 4786)
が常套手段
591:589
07/11/04 03:54:29
>>590
うまくいきました。感謝します。
592:デフォルトの名無しさん
07/11/05 16:44:09
URLリンク(tserve01.aid.design.kyushu-u.ac.jp)
のお絵かきソフトを作るページを参考にしてるんですが
「ToolBar」の「IDR_MAINFRAME」のボタンとIDを書き換えても
ページに書かれているようなIDに対応するような関数が作られず
ボタンも描いたように表示されず灰色の使用不可のような状態
になってしまいます。
VS2005stdです。
どなたか、わかるかた、VS2005ではどうしたらよいか教えていただけないでしょうか。
お願いします。
593:デフォルトの名無しさん
07/11/05 16:50:01
>>592
マルチ死ね
594:592
07/11/05 16:56:38
マルチしてすみません。
ただ「くだすれVisualC++(超初心者用)」のほうが1000レスいったので
こちらでも質問ささしてもらいました。
すいませんが教えてください。
595:デフォルトの名無しさん
07/11/05 17:34:30
ツールバーにハンドラ追加する方法なら少し前に誰かに教えたから過去ログ見ればいい
ウイザードから追加する方法は知らん
596:デフォルトの名無しさん
07/11/05 19:09:58
メモ帳で[F5]を押すと日付と時刻がペーストされますが、
Visual C++のエディタでも同じことができるでしょうか?
できるなら方法を教えてください。
597:デフォルトの名無しさん
07/11/05 19:32:57
自分で[F5]を押せば分かるだろ?
598:デフォルトの名無しさん
07/11/05 19:59:39
Std以上のVCならマクロで簡単に出来るよ。もちろんキーボード割り当ても可能。
599:デフォルトの名無しさん
07/11/05 20:40:23
unicodeにすると
char→CStringをどうやって渡すのかわからないです。
ヒントでいいから教えていただければ、、つД`)
600:デフォルトの名無しさん
07/11/05 20:46:28
CStringのコンストラクタ
601:デフォルトの名無しさん
07/11/05 21:21:27
CString は TCHAR データ型をもとにしています。
プログラムでシンボル _UNICODE が定義されたときは、
TCHAR 型は 16 ビット文字型の wchar_t 型として定義されます。
それ以外は、通常の 8 ビット文字型 char で定義されます。
Unicode 環境下では、CString オブジェクトは 16 ビットの文字で構成されます。
Unicode 環境以外では、CString オブジェクトは 8 ビットの文字で構成されます
602:599
07/11/05 22:46:31
>600
>601
ありがとう。
ちょいとそれを頭に入れてググル先生に聞いてみます。
603:デフォルトの名無しさん
07/11/05 23:04:43
初心者は黙ってVC++でMFCでウィザードでサクサクやるのがいいですよね?
604:デフォルトの名無しさん
07/11/06 00:14:49
いい
というのは何を根拠として良いと判断するんですか?>>603
605:デフォルトの名無しさん
07/11/06 00:17:45
VC++がどーだ、MFCはあーだこーだ言ってないで、
サクサク作れるんだから作った方が勉強になるという意味で、
いいと思いますが。
606:デフォルトの名無しさん
07/11/06 00:26:12
サクサク作れない
607:デフォルトの名無しさん
07/11/06 00:32:03
MFCウイザードでさくさく作れる香具師は、
MFCウイザードがなくたってサクサク作れる。
608:デフォルトの名無しさん
07/11/06 07:54:50
MFCキライなヤツが増えたな。
609:デフォルトの名無しさん
07/11/06 18:13:37
ダメ!
MFCで人生を棒に振った悲しいプログラマが、いったい何人いることやら。
MFC犠牲者慰霊の塔の下に眠っている幾千幾万のプログラマたちが
成仏できずに毎晩、悲痛なうめき声をあげて助けを求めているというのに。
マイクロソフト社さえ見放した禁断の果実MFCを、なぜ今更?
もうこれ以上、犠牲者が増えるのを善良な市民として見ていられない。
忘れなさい。MFCの事は忘れなさい。記憶の底から消し去るのです。
MFCなんて見なかった。聞かなかった。この世に存在しなかった。
いいですね?わかりましたね?
610:デフォルトの名無しさん
07/11/06 21:54:51
ダメ!
.NET で人生を棒に振った悲しいプログラマが、いったい何人いることやら。
(ry
611:デフォルトの名無しさん
07/11/06 22:13:12
VC++でWin32アプリならいい?
612:デフォルトの名無しさん
07/11/06 23:47:36
VisualC++6 と VisualC++.NET の差がわかりません
差はないのでしょうか?
今から始めるならVC.netでいいんでしょうか?
VCに興味を持っている理由は .NET Frameworkとかの
ランタイムのインストールをしなくても動くEXEが作れるらしいから、と
DirectXでゲーム作ろうとしてもC++の参考書しかないから、なのですが
VC.NETで作ったEXEは .NET Frameworkがないと動かないものになるのですか?
613:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/07 00:11:39
>>613
ありなとうございまつ
早速VC++2005EEをインスコしますた
しかしネットだと.NET Framework使うプロジェクトか
HalloWorldみたいなウインドウすら出てこないのの解説ばかりでつなorz
猫でもわかるプログラミングでも観ることにするでつよ
615:デフォルトの名無しさん
07/11/07 00:15:34
>HalloWorld
早くもオリジナルな要素を取り入れてるのか
616:デフォルトの名無しさん
07/11/07 00:24:29
>>614
SDK入れなウィンドウの表示なんてできへんで~
617:デフォルトの名無しさん
07/11/07 00:59:03
すみませんが質問です。
大量のログをとれるようなDOSプロンプトというか、コンソールエミュレータと
いうようなものを作る場合、リッチエディットコントロールを使うのがよいので
しょうか?
それともwin32アプリにしてしまって、入出力をリダイレクトするのが良いので
しょうか?
618:デフォルトの名無しさん
07/11/07 01:00:01
>>615
もまい、やさしいでつね
>>616
URLリンク(www.microsoft.com)
をやらないと.NET Frameworkなソフトしか作れないということですか?
619:デフォルトの名無しさん
07/11/07 01:08:09
>>617
特に見栄えを気にしなくてもいいのなら、「コンソールアプリ」 にするのがいちばん簡単だよ。
ログを取るだけで、画面にスクロール表示する必要がないのなら、ふつーにウインドウアプリ
でもいいし。ログだけファイルに落とせればじゅうぶんだろ?
620:デフォルトの名無しさん
07/11/07 07:29:29
>>619 レスサンクス
スクロールは使いたいですね。ログは軽く64kb以上になるので、リッチ
エディットコントロールしかないかな、と。
イベントのことはよく分かりませんけど、CLIを真似する以上はEnterキーを
見張らないとダメそうで、どうしたもんだかと悩みますね。
teratermのログ機能と、DOSプロンプトが合体したような感じが望ましいの
です。
621:デフォルトの名無しさん
07/11/07 08:39:00
ログ取るのにリッチエディットコントロールが出てくるのが意味不明だったけど
それぐらいの容量なら普通のエディットコントロールでも余裕でいける
622:デフォルトの名無しさん
07/11/07 21:47:52
>>621 CREATEしたときにEM_SETTEXTLIMITを投げればいい、って言ってくれればいいのに。
623:デフォルトの名無しさん
07/11/07 23:12:57
AllocConsole
624:デフォルトの名無しさん
07/11/07 23:19:28
上のGetWindowRect(GetDesktopWindow(), &rect);について質問です。
この関数でrect.leftをはじめ、ディスプレイサイズの取得が出来るのは分かるのですが、
それによってウィンドウの表示位置を変えていくのであれば、WinMainの中のCreateWindowの水平、垂直位置の更新をしなければいけませんよね?
その方法ってのはどうやるんですか?一応ウィンドウの雛形やCreateWindowの再描画などで調べたんですが、さっぱりでして。
625:デフォルトの名無しさん
07/11/07 23:50:41
起動時に位置を設定したいならCreateWindowに好きな位置を渡すだけだし
後で変えたいならMoveWindowとかSetWindowPlacement()など。
626:デフォルトの名無しさん
07/11/07 23:56:40
>>625
取り敢えずMoveWindowについて調べてぱっと記述してみたらできました。
SetWindowPlacementについてもまた調べてみたいと思います。
ありがとうございました。
627:デフォルトの名無しさん
07/11/08 00:43:31
うは、Win32プロジェクトがないw
イラネw
628:デフォルトの名無しさん
07/11/08 00:55:37
Windows SDKでも入れて、
あとは適当なプロジェクトを作って、適当にオプションいじっておけ。
629:デフォルトの名無しさん
07/11/08 07:17:34
MUIに対応したものを作りたいのですが、
.rcconfigファイルの中身をどう書いたら良いかご存知の方はいませんか?
サンプルアプリケーションを見てみたのですが、
<resourceType typeNameId="#4"/>
の4が何を意味しているのかがわかりません。。
630:デフォルトの名無しさん
07/11/08 07:30:10
C#やっている人がC++やってもわからないよね?
631:デフォルトの名無しさん
07/11/08 11:09:42
>>627
貧乏人乙w
632:デフォルトの名無しさん
07/11/08 20:44:10
スタンダード以上だと別途PSDK入れなくても
Win32プロジェクトが最初から選べるのに気づいた
ところでWin32プロジェクトってインテリセンスが
使えないんだが設定が悪いのか?それとも仕様?
633:デフォルトの名無しさん
07/11/08 23:06:47
LNK2001: 外部シンボル ""public: virtual void __thiscall CWnd::DoDataExchange(class CDataExchange *)" (?DoDataExchange@CWnd@@UAEXPAVCDataExchange@@@Z)" は未解決です。
Visual Studio 2005でMFCのアプリケーションをコンパイルすると
上のようなエラーがいっぱいでるのです。
これはどうやって回避すればいいのでしょうか?
634:デフォルトの名無しさん
07/11/08 23:12:48
ダメ!
MFCで人生を棒に振った悲しいプログラマが、いったい何人いることやら。
MFC犠牲者慰霊の塔の下に眠っている幾千幾万のプログラマたちが
成仏できずに毎晩、悲痛なうめき声をあげて助けを求めているというのに。
マイクロソフト社さえ見放した禁断の果実MFCを、なぜ今更?
もうこれ以上、犠牲者が増えるのを善良な市民として見ていられない。
忘れなさい。MFCの事は忘れなさい。記憶の底から消し去るのです。
MFCなんて見なかった。聞かなかった。この世に存在しなかった。
いいですね?わかりましたね?
635:デフォルトの名無しさん
07/11/08 23:18:21
マイクロソフトは、.NETの成功に関わらず
C++の開発を進めています。
次に発売するVisual StudioのMFCには、Vista用のWindowsメッセージの追加。
XmlLiteなどなど、お楽しみがいっぱいです。
636:デフォルトの名無しさん
07/11/08 23:22:34
そんなことよりもATLのopen source化をだな
637:デフォルトの名無しさん
07/11/09 00:06:25
>>633
VS2005の修復で直らなければ再インスコ
638:デフォルトの名無しさん
07/11/09 00:11:36
マイドキュメントのVisual Studio 2005のフォルダをまるまるノートにコピーして
プロジェクトを開いたところ,作成していたプログラムの中のラベルが全て
黒塗りに表示されてしまいました。
ビルドして実行しても黒塗りは変わりません。
直す方法はありますか?
639:デフォルトの名無しさん
07/11/09 00:45:40
PSRTとかLPSTRってString型みたいなもんですか?
640:デフォルトの名無しさん
07/11/09 01:22:46
>>639
ちゃうよ
641:デフォルトの名無しさん
07/11/09 05:46:56
全くの無知なんですが、C・C++を覚えたいと思います。
まず何をするべきでしょうか?
642:デフォルトの名無しさん
07/11/09 06:24:21
C/C++のコンパイラをインストール
このスレに来たからにはVisualC++だな
643:デフォルトの名無しさん
07/11/09 06:31:52
>>642
把握㌧
とりあえずいろいろ調べながらいじってみます!
スレチに気付いたら黙って消えますw
644:デフォルトの名無しさん
07/11/09 14:10:53
VisualC++のwindowsフォームアプリケーションで
スクリーンキーボードを作ってるんですが
初期のウィンドウを非アクティブ化することができません。
どうしたらいいでしょうか?
645:デフォルトの名無しさん
07/11/09 16:13:31
>>644
初期のウィンドウってなに? キーボード?
646:デフォルトの名無しさん
07/11/09 17:33:59
systemやgetchといった関数が「認識されません」というふうにエラーが出ます。
#include<windows.h>や#include<conio.h>のヘッダが登録できてないのでしょうか。
またそうであれば、やり方を教えてください。
よろしくお願いします。
647:デフォルトの名無しさん
07/11/09 17:43:48
windows.hとconio.hをインクルードしてもsystemやgetchは使えない。
systemを選択してF1押すべし。
648:デフォルトの名無しさん
07/11/09 17:53:24
>>647
選択とはドラッグでいいんでしょうか。
F1押すとヘルプが出るんですが、どの時点で押せばいいんでしょうか・・・
649:デフォルトの名無しさん
07/11/09 18:00:11
・まず、画面に出たエラーメッセージをよく読んでみてごらん。
読んでも分からないなら、省略せずにそっくりそのまま掲示板に貼り付けて質問しよう。
・system関数を使うのに必要なヘッダファイルは何かな?
(あえて正解は書かないよ。自分で調べる練習しなさい。宿題です)
・getchも同様。
Visual CコンパイラはIDE統合開発環境と、コマンドラインの2種類がある。
・IDEはIDEの使い方を覚えなきゃいけないという障害は立ちふさがる。
・コマンドラインのコンパイラは環境変数の設定とかなんとかメンドクサイ。
どちらも超初心者には敷居が高い。独学はかなりの覚悟が必要。
だれか先生になってもらってくれる人がいればいいんだけどね。
650:デフォルトの名無しさん
07/11/09 18:13:30
>>649
エラーメッセージは
'getch': 識別子が見つかりませんでした
'system': 識別子が見つかりませんでした
です。
ヘッダファイルは
<windows.h>
<conio.h>
だと思います。
違っていたら、調べ直すので指摘だけお願いします
651:デフォルトの名無しさん
07/11/09 18:25:31
違ってます。
選択の説明しようと思ったけど指摘だけとのことなので省略。
まーがんばれ
652:デフォルトの名無しさん
07/11/09 18:53:40
windowsがどっからくるのよ
stdlib
653:デフォルトの名無しさん
07/11/09 19:40:50
::CreateProcessかなんかと勘違いしてるんだな
俺にはわかる
654:デフォルトの名無しさん
07/11/09 20:34:42
コンパイル通りました。ありがとうございました。
実はURLリンク(fatalita.sakura.ne.jp)のサイトのlesson1を
実行したかったのですが、コンパイルは通っても画面がすぐに消え
"ハンドルされていないwin32の例外が発生しました"
と出て実行できません。
何がおかしいのでしょうか。
655:デフォルトの名無しさん
07/11/09 21:36:28
そんな糞サイトの後始末頼まれても迷惑
書いた本人に直接聞けよ
656:デフォルトの名無しさん
07/11/10 00:33:26
うは、声がきもい。
インデントが変態。
空白の明け方がへぼい。
思考の流れが行き当たりばったり。
657:デフォルトの名無しさん
07/11/10 01:27:18
面白そうなのでオレも見てみた。
インデントが変???ぜんぜん変じゃないんだけど・・・
っつう事で、>>656 がどんな立派なコードを書いてるのか、期待age
658:デフォルトの名無しさん
07/11/10 01:27:26
URLリンク(www.wisdomsoft.jp)
の
#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:デフォルトの名無しさん
07/11/10 01:31:08
>>658
エラー通りだな
CHAR chStr[128];
を
TCHAR chStr[128];
に変更すればいいんでない?
それでエラーが出るなら、<tchar.h>をインクルードすればOK
660:デフォルトの名無しさん
07/11/10 01:32:52
プロジェクトがユニコードになってるからだよ。
ANSIに変更しよう。
初心者がかならずつまづく超FAQだね。
661:デフォルトの名無しさん
07/11/10 01:42:19
何回も同じ質問を見てるな
テンプレにでも入れた方がいい気がする
662:若者は馬鹿者 ◆KorX0HCHGU
07/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:デフォルトの名無しさん
07/11/10 02:01:46
>>662
ユニコードじゃ無いアプリケーションを、ユニコードアプリケーションとしてコンパイルしようとした。
URLリンク(www.wisdomsoft.jp)
ここには「将来性を考えて、これから文字コードは Unicode を用いるべきです。 」とか書いてあるけど・・・
初心者はユニコードアプリには手を出さんほうがいいよ。もうすこし慣れてからがいい。
よっぽど注意深くコーディングしないと、ワケワカランことになるよ。
664:デフォルトの名無しさん
07/11/10 02:03:43
>>662
_T("インスタンスハンドル : %d")
とすれば、いいよ
TCHARってのは、コンパイル時に自動で、マルチバイト文字セットとUNICODE文字セットを切り替えてくれます
文字リテラル("文字列"とか'a'とか)については、_Tもしくは、TEXTマクロで、マルチバイト文字セットとUNICODE文字セットの変更を自動でしてくるようになります
ソースコードがUNICODEとか言うんじゃなく、現在扱っている文字が何なのかをコンパイラに教えてやる必要があるって事です
それを省略したら、勝手に、ANSIとかOEMとか言う文字セットとして扱われるって事です
665:デフォルトの名無しさん
07/11/10 03:09:35
非ユニコードアプリとユニコードアプリの差をまず理解しないとだめってことでつね
666:デフォルトの名無しさん
07/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:デフォルトの名無しさん
07/11/10 10:56:55
予めメモリDCを作っておいて、描画は全てそこへ行う。
WM_PAINTでは、そのメモリDCからウィンドウDCへのBitBltに限る。
ってのが普通。
668:デフォルトの名無しさん
07/11/10 11:32:26
>>667
いまどきそんな原始的な方法なんかw
669:デフォルトの名無しさん
07/11/10 11:38:55
でも666はありえないだろ。
話はそれるがReleaseDCしていないのも目に付くし。
670:デフォルトの名無しさん
07/11/10 18:42:02
>>657
void main() {
671:デフォルトの名無しさん
07/11/10 18:43:53
夫失敬。
>>657
void main(){
while (1)
{
DrawMap();
}
}
--
変態かどうかは兎も角、不思議なコーディングスタイルだとは思う。
672:デフォルトの名無しさん
07/11/11 00:32:33
めんどくせー > VC++
Formねーじゃん
どうやってGUIつくんだよ
673:デフォルトの名無しさん
07/11/11 00:46:10
珍しいVC++だね。ウチのにはForm付いてるよ。
674:デフォルトの名無しさん
07/11/11 00:56:55
うちのはintも付いてない
675:デフォルトの名無しさん
07/11/11 01:03:24
それVirtualConsoleだろ
676:デフォルトの名無しさん
07/11/11 01:40:15
VC6.0でプログラムしています。
MFCは使わず、APIのみ。
ダイアログボックスにコンボボックスを貼り付けて
内容(数字)をリストから選択するような動作をさせたいと思っています。
ワードでフォントを変更するときのコンボボックスのようなイメージです。
VC上でダイアログボックスにコンボボックスを貼り付け、
コンボボックスのプロパティのデータ にある”リストボックス項目の入力(N)”に
選択したい数字のリストを並べれば良いかと思ったのですが
実際に動かしてみると コンボボックスの▼を押してもキーボードの↓を押しても
リストが現れません。
やり方が間違っているでしょうか?
関係ないかもしれませんが手元の参考書ではリストボックスを使用する場合の方法が書いてあり
リストボックスを初期化するにはSendDlgItemMessage()関数を使用するとのことだったので
試しにやってみましたがリストボックスではリストに文字列を追加できましたがコンボボックスでは追加されませんでした。
内容に不足などありましたらご指摘をお願いします。
677:デフォルトの名無しさん
07/11/11 05:28:25
>コンボボックスの▼を押してもキーボードの↓を押しても
>リストが現れません。
ああこれね
678:676
07/11/11 07:36:53
>>677
おはようございます。
良くある質問でしょうか?
申し訳ないですが質問内容が間違ってました。
▼ボタンを押すとドロップダウンリストは出ます。
しかし、中が空っぽです。
リソースエディタで入力した内容を反映させたいのですが。
679:デフォルトの名無しさん
07/11/11 08:28:15
早まって答えなくてよかった
>リストボックスではリストに文字列を追加できましたがコンボボックスでは追加されませんでした
問題はこれか
680:96
07/11/11 09:14:14
リソースエディタのコンボボックスまわりの内容はこんな感じです
// Dialog
//
IDD_CONFIG DIALOG DISCARDABLE 125, 110, 194, 95
STYLE DS_SYSMODAL | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | WS_VISIBLE |
WS_CAPTION
CAPTION "CONFIG"
FONT 9, "MS Pゴシック"
BEGIN
LTEXT "コンボボックスで値を選択してください",IDC_STATIC,7,19,77,8
PUSHBUTTON "OK",IDC_CONFIG_OK,133,14,26,15
COMBOBOX IDC_COMBO2,86,16,46,71,CBS_DROPDOWNLIST |
CBS_NOINTEGRALHEIGHT | WS_TABSTOP
END
// Dialog Info
//
IDD_CONFIG DLGINIT
BEGIN ←コンボボックスのリストに表示したい値(1~20の数字)
IDC_COMBO2, 0x403, 2, 0
0x0031,
IDC_COMBO2, 0x403, 2, 0
~~~~省略~~~~~~~~
IDC_COMBO2, 0x403, 3, 0
0x3931, "\000"
IDC_COMBO2, 0x403, 3, 0
0x3032, "\000"
0
END
681:676=680
07/11/11 09:15:52
名前欄ミスしました。
682:デフォルトの名無しさん
07/11/11 09:31:42
リソースレベルでコンボボックスのデータを定義できるのはMFCの独自機能。
リソースビューの*.rcを選んでプロパティを見てもらえば分かるが、
'Mfc Mode'という項目が用意されている。
これをFalseにすると、コンボボックスのプロパティでData部分が無効になる。
683:676
07/11/11 13:38:36
>>682
なるほどそういうことでしたか。
ありがとうございます。
リストの値をSendDlgItemMessage()関数で追加できないと書きましたが
参考書で引数に LB_ADDSTRING を指定しているところで
CB_ADDSTRING を指定するようにしたところリストに追加できました。
ありがとうございました。
684:デフォルトの名無しさん
07/11/11 15:40:55
質問させてください。
Visual C++ .net 2005で開発を行っています。
フォーム(Form1)やピクチャボックス(pictureBox1)に簡単なグラフを表示させたいのですが、
button1_Click等で描画すると、一度非表示になった部分の線が消えてしまいます。
Form1_Paintイベント内で描画すれば解決するのですが、毎回データを読み込んだり計算するのが
無駄に感じます。
Form1で非表示になった部分を消さないための方法はあるのでしょうか?
または、なんらかのバッファに描画して、それをForm1_Paint内で毎回読み出すという方法のほうがいいのでしょうか?
そのための方法等があれば教えてください。
よろしくお願いします。
685:684
07/11/11 15:44:04
補足
線は、
Graphics^ gr = pictureBox1->CreateGraphics();
Pen^ pen1 = gcnew Pen(Color::Black,2);
gr->DrawLine(pen1,10,10,200,200);
こんな感じで書いています。
686:デフォルトの名無しさん
07/11/11 22:25:30
>>684
Imageに描いて、Paintイベントでgr->DrawImage
687:648
07/11/12 00:13:47
>686
なるほど、ありがとうございます。
Bitmapをバッファとして使い、Graphics::FromImageで取り込んだイメージに対して、
描画を行いました。おかげでうまくいきました。
↓みたいな感じでよろしいでしょうか? 何か改善点があればご指摘お願いします。
Bitmap^ bmap1;
private: System::Void mnDraw_Click(System::Object^ sender, System::EventArgs^ e) {
Pen^ pen1 = gcnew Pen(Color::Black,2);
Graphics^ gr1 = Graphics::FromImage(bmap1);
gr1->DrawLine(pen1,10,10,100,100);
// gr1->Dispose(); //なぜかエラーになる
Form1::Refresh();
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
bmap1 = gcnew Bitmap(200,200);
}
private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) {
e->Graphics->DrawImage(bmap1,100,100,200,200);
}
688:デフォルトの名無しさん
07/11/12 00:15:57
>>687
Bitmap^ の 「^ 」 ってどういう意味?
689:若者は馬鹿者 ◆KorX0HCHGU
07/11/12 00:16:21
Win32アプリ開発で
VSの出力の部分にウインドウメッセージを表示したいのですが
.netでいうSystem.Diagnostics.Debug.Printに相当する機能はないですか?
690:デフォルトの名無しさん
07/11/12 00:18:17
>>689
ドットネットの質問は他所でやれ馬鹿者!
691:デフォルトの名無しさん
07/11/12 00:24:38
>>690には>>689が”ドットネットの質問”に見えるらしいw
692:684
07/11/12 01:09:01
>688
自動でガーベージコレクションをやってくれるようです。ようは、使い終わったら勝手にメモリを開放してくれるらしい。
693:デフォルトの名無しさん
07/11/12 03:14:25
>>692
なるほどー 2005からの機能ですね
694:デフォルトの名無しさん
07/11/12 08:44:30
win32APIで虫眼鏡のプログラムを作ってます。
メモリデバイスコンテキストでマウスカーソル周辺を拡大したものを
ディスプレイのデバイスコンテキストに転送してるんですが、
マウスを移動させたときに先ほど拡大した部分を元に戻して
移動先のマウスカーソル周辺をまた拡大という風にしたいんです。
ですが、毎回GetDC(0)をしたとしても拡大した後のディスプレイでは初期化できないし、
hdc2という二つ目のデバイスコンテキストに拡大前の状態を退避させて
hdc1に復活させようと思ったのですがうまくいきません。
さらに、メニューを開いたり新たにソフトを起動させたりと、
刻々と変化するディスプレイの状態を追いかけつつ拡大できるようにしたいのです。
探し方が悪いのかもしれませんが、
いろいろ検索しましたが良い解決法が見つかりませんでした。
それに虫眼鏡のプログラミングを解説してるサイトもなさげだし・・・。
このような場合、どのような方法を用いればいいのでしょうか?
よろしくお願いします。
695:デフォルトの名無しさん
07/11/12 09:49:55
MSDNのサンプルじゃダメなの?
/****************************** Module Header *******************************
* Module Name: zoomin.c
*
* Microsoft ZoomIn utility. This tool magnifies a portion of the screen,
* allowing you to see things at a pixel level.
*
* History:
* 01/01/88 Created.
* 01/01/92 Ported to NT.
* 03/06/92 Cleanup.
*
****************************************************************************/
696:デフォルトの名無しさん
07/11/12 10:35:31
一応
.netを使ったC++/CLI は、普通のC++とは全く別物
.net使いたいならC#がいいと思う
697:デフォルトの名無しさん
07/11/12 12:45:26
argcとargvについて教えてください。
698:694
07/11/12 13:27:05
>>695
そのページってどこを探したらありますかね?
MSDNのサイト調べても見あたらなかったんですが…。
教えて君で申し訳ありません。
699:デフォルトの名無しさん
07/11/12 16:26:41
>>698
Platform SDKはインストールしてる?
700:デフォルトの名無しさん
07/11/12 17:51:17
Visual Studio 2005を使って、DirectXプログラムを作ろうとしてます。
ちなみにOSはWindowsXP Home Editionです。
ネット上の解説サイトで、Visual C++ Express Editionを使って
Windowsアプリケーションを作成する場合にはPlatform SDKが必要と書いてあるんですが、
Visual Studio 2005を使う際にもPlatform SDKをインストールしておいたほうが良いでしょうか?
701:デフォルトの名無しさん
07/11/12 17:58:14
今ならPlatform SDKよりWindows SDKお勧め。
DirectXには、DirectX SDKが必要。
ただし、DirectShowには上2つの内どちらかが必要。
702:デフォルトの名無しさん
07/11/12 18:04:12
>>701
ありがとうございます。
DirectShowが何かよくわかりませんが、
解説本がPlatform SDKで進めているので、
これとDirectX SDKでやってみます。
703:デフォルトの名無しさん
07/11/12 18:20:49
VisualC++ Expressでプログラム製作をしています。
プログラム実行中にコードを書き換えてAlt+F9を押すと、動的にプログラム
の内容を変えてくれますが、ボタンを押しても出来ない時があります。
これは何が原因なのでしょうか?
704:700
07/11/12 20:24:35
度々すみません。
DirectXのテストをしようと、
D:\Program Files\Microsoft DirectX SDK (November 2007)\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice\CreateDevice.cpp
を自分のプロジェクトフォルダにコピー、既存の項目を追加して、
ソリューションのビルドをしてみると以下のエラーが出ました。
CreateDevice.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitD3D(struct HWND__ *)" (?InitD3D@@YAJPAUHWND__@@@Z) で参照されました。
C:\Documents and Settings\(ユーザ名)\My Documents\Visual Studio 2005\Projects\d3dtest01\Debug\d3dtest01.exe : fatal error LNK1120: 外部参照 1 が未解決です。
そこで、Direct3DCreate9を含む「d3d9.lib」をプロジェクト名→プロパティ→リンカ→入力の「既存の依存ファイル」に追加したのですが、
まだ同じエラーが起こります。
D:\Program Files\Microsoft Platform SDK\Bin/Lib/Includeのパスは追加したのですが、
他に何が原因なんでしょうか?