★初心者にVisual C++を教えるスレ★ Part27at TECH
★初心者にVisual C++を教えるスレ★ Part27 - 暇つぶし2ch13:デフォルトの名無しさん
07/09/11 13:20:16
関数を使っり途中で、確認のためデバッグしたので問題ないと思ったのですが
デバッグ無しで実行するとエラーが表示されます。
以下にソースとエラーpngが入っています。
どなたか、どこがおかしいか指摘してくれませんでしょうか。
お願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

14:デフォルトの名無しさん
07/09/11 13:26:48
次立てるときはC/C++の質問はそっちのスレへ誘導するようにしてほしいな

15:デフォルトの名無しさん
07/09/11 15:01:43
ソースは見てないが
マクローリンのスペル違うぞw
でもこっちの方がなんかいいなw

16:デフォルトの名無しさん
07/09/11 16:06:18
>>13
どうやってデバックして問題ないと判断したのか、その過程を示せ。
-3から3まで0.1刻みのループでは60回繰り返すけど、それは確認したのか。

17:デフォルトの名無しさん
07/09/11 17:24:46
使っり?

18:13
07/09/11 18:39:07
いや、宿題スレにあった問題を解こうと思って
解いてる最中に、どう表示されるかを見ようと思い
デバッグ→OK デバッグ無しで実行→BAD
で、デバッグポイントつけてステップインして
デバッグしまくっても、問題なく終了。
で、VS2005のどっかがおかしくなったのかと思い
VSを修復。
そんで再度、デバッグ無しで実行したら
数値は出て、エラーは出ませんでした。
ま、そんなところです。

19:デフォルトの名無しさん
07/09/11 18:42:21
縦読みでおk

20:デフォルトの名無しさん
07/09/11 18:56:38
>>18
宿題スレの確認ならまあその程度だろうけど、それでは普通デバッグしたことに
ならない。

>>16で答え言ったつもりだったんだけど、60要素分の書き込みに対し、
領域を10要素分しか確保してないからオーバフローして領域破壊しているだけ。
計算の目的知らないけど、単純に考えれば、Ansの第3パラメタが60か、または
Ans関数内のdxの刻みが0.6か、どちらかが違っていると思う。

21:デフォルトの名無しさん
07/09/11 19:33:01
驚愕の新事実発覚!!!
Windowsで外字「㈰」を含むファイル・フォルダ名が、コピー、削除、リスト表示もできません。
CopyFile()、GetCurrentDirectory()などで取り扱えません!!!
でも、dir コマンドはできます。dir>file とリダイレクトすると、fileの中で
この外字は ? に変換されてしまいます!
誰か回避策教えてちょんまゲ。
文字コードは"\x85\x40" です。よろピク。


22:デフォルトの名無しさん
07/09/11 19:41:26
自分の中での驚愕の新事実発覚は心の中で唱えてろ

23:デフォルトの名無しさん
07/09/11 19:54:22
たまたま使えてしまう場合もあるけど
使えない字は使ってはいけない

24:デフォルトの名無しさん
07/09/11 20:02:37
でも、dir とか、ファインダーからは使えちゃうんです。
同じ外字(機種依存文字)でも①などはおk。

25:デフォルトの名無しさん
07/09/11 20:03:29
うるさい死ね

26:デフォルトの名無しさん
07/09/11 20:36:08
その文字はU+3230だろ。
シフトJISに対応する文字が無いから化けるだけじゃねえの?
Unicode系のAPIを呼ぶように修正しろ。

27:デフォルトの名無しさん
07/09/11 20:36:37
>>24
①は外字でもないし、
Unicodeに収録されているので、もはや機種依存文字ですらない。

28:デフォルトの名無しさん
07/09/11 20:46:09
化けるのは問題ないですが、アクセスできずにエラーになってしまうのが困ります。
このフォルダーがあることさえも検出できません。
このフォルダを dir>file としてfileを見ても アスキーの'?' に置き換えられているので
㈰ があることが検出できないのが問題です。消そうと思ってもアクセスできません。


29:デフォルトの名無しさん
07/09/11 20:49:18
>>27
URLリンク(bird.zero.ad.jp)

30:デフォルトの名無しさん
07/09/11 20:53:59
>>26
Unicode系のAPIとは何でしょうか。教えていただければ幸いです。

31:デフォルトの名無しさん
07/09/11 21:09:34
>>30
末尾がWで終わるWin32API群。
例えばCreateFileに対してCreateFileWといった具合。
文字や文字列引数がみなWCHAR (wchar_tのtypedef)を使ったものになっている。

32:デフォルトの名無しさん
07/09/11 21:17:14
>>31
ああ、見たことあります。やってみます。
アリガト

33:デフォルトの名無しさん
07/09/11 22:06:43
シネ

34:デフォルトの名無しさん
07/09/12 10:45:39


35:デフォルトの名無しさん
07/09/12 11:00:29
処女

36:デフォルトの名無しさん
07/09/13 19:01:10
喪失

37:デフォルトの名無しさん
07/09/13 21:06:58
童貞

38:デフォルトの名無しさん
07/09/13 21:13:56
Visual C++ 6.0を使いたいのですがOSはXPでも大丈夫なんでしょうか?
Visual Studio とは何でしょうか?
初心者ですいません・・・


39:デフォルトの名無しさん
07/09/13 21:27:10
「Visual Studio とは何でしょうか?」というレベルなら、まずはVisualStudio2005EEを使ってみてはどうだろうか。
VisualStudioはVC++やC# VBなどでWindowsを開発できる統合開発環境です。
アナルは開発できません。

40:デフォルトの名無しさん
07/09/13 22:11:33
アナルを開発するゲームなら作れるよ!

仕事で必要というのでなければ、VC6はお勧めしない。
OS対応については下のページを参照。
URLリンク(www.microsoft.com)

41:デフォルトの名無しさん
07/09/13 22:25:14
VC6はお勧め

2005EE入れたけどVC6の方が良い

42:デフォルトの名無しさん
07/09/13 22:28:19
VC6の付属STLはカス
C++98の準拠度もカス
よってC++を使うならVC6は

43:デフォルトの名無しさん
07/09/13 22:36:43
Windows XP ではどうかしらないけど
Windows 2000 に Visual Studio 6.0 いれて
MediaPlayer 9 いれたら
Visual C++ Run-time Error で
エクスプローラがめちゃめちゃ落ちるようになたな。

あまりおすすめはしない

44:デフォルトの名無しさん
07/09/14 07:28:09
>>43
Visual Studio入れたら何かとエラー起こすのは昔からお約束。

45:デフォルトの名無しさん
07/09/14 07:29:31
>>43
MediaPlayer 9 いれたら何かとエラー起こすのは昔からお約束。

46:デフォルトの名無しさん
07/09/14 09:34:13
Windows 2000 いれたら何かとエラー起こすのは昔からお約束。

47:デフォルトの名無しさん
07/09/14 11:36:26
M$とはエラる事と見つけたり

48:デフォルトの名無しさん
07/09/15 01:57:40
2005EEに実行がないんですけど。2008βでは実行してもテストがどうのっていわれて
コンソールもでないし。ソースはよくあるmainにcoutだけのやつです。


49:デフォルトの名無しさん
07/09/15 02:03:21
>2005EEに実行がない
シュールだ。

50:デフォルトの名無しさん
07/09/15 02:23:08
ソースをプロジェクトに加えてなかった・・。#include <iostream.h>とやるとファイルがないと
言われるし.hを取ると今度はcoutが定義されてない識別子。実行はデバッグなしで開始で
いいんですよね?

51:デフォルトの名無しさん
07/09/15 02:31:08
#include <iostream>
using namespace std;

もっと基礎を勉強しろ

52:デフォルトの名無しさん
07/09/15 02:48:02
分かりました(・◇・)ゞ

53:デフォルトの名無しさん
07/09/16 05:34:49
ひさしぶりにVC++6.0で勉強再開したのですがSP6が出ていたので当てましたが
バージョン情報には変化がありません。確認する方法はないのでしょうか。

54:デフォルトの名無しさん
07/09/16 06:59:35
GetDlgItemでハンドルの取得に失敗してるようなのですがどんな原因が考えられますか。
コントロールのIDは合ってます。HWNDはダイアログボックスの引数です。



55:デフォルトの名無しさん
07/09/16 08:23:20
まだコントロールができてない

56:デフォルトの名無しさん
07/09/16 08:27:57
能力不足
コントロールのIDは合ってるつもりなだけ。HWNDにダイアログボックスのハンドルを指定していない。
HWNDがスコープの範囲外である。

57:デフォルトの名無しさん
07/09/16 09:59:33
ハンドルをグローバルにコピーしたものを使うようにしたら解決しました。
。ありがとうございました。


58:デフォルトの名無しさん
07/09/16 21:01:42
CDC* pdc1 = GetDC();
CPen *oldPen;
oldPen = pdc1->SelectStockObject(BLACK_PEN);

これで
error C2440: '=' : 'CGdiObject *' から 'CPen *' に変換できません。

とerrorが出るのですが、本に書いてあるとおりやってるだけなのですがなぜダメなのでしょうか?

59:58
07/09/16 21:10:10
ごめんなさい

CDC* pdc1 = GetDC();
CPen myPen(PS_SOLID, 1, RGB(0, 0, 0));
CPen *oldPen;
oldPen = pdc1->SelectObject(myPen);

です


60:デフォルトの名無しさん
07/09/16 21:17:37
>>59
×oldPen = pdc1->SelectObject(myPen);
○oldPen = pdc1->SelectObject(&myPen);


61:58
07/09/16 21:36:14
>>60
ありがとうございました

62:デフォルトの名無しさん
07/09/17 00:12:35
ぜったい本の通りやってないだろバカ

63:58
07/09/17 00:29:01
いえ本が間違ってました
工学社 Visual C++ .NET ゲーム制作教科書 片山幸雄著 の39ページ40ページです
もちろん他の部分から類推できるものなのでそれができなかったのは私がバカなのですが


64:デフォルトの名無しさん
07/09/17 00:53:59
アナログ時計のプログラムってどんな感じなんでしょうか・・・
デジタルなら簡単に出来るんですが。

どなたかご教授お願いしますorz

65:デフォルトの名無しさん
07/09/17 01:05:55
>>64
文字盤の上に、時分秒に従い角度を計算して針を書くだけ
注意点としては針を進めるとき、下の針を消してから新しい針を書くのではなく、
ダブルバッファリングという手法を使って画面を更新すること
これだけ注意すれば問題ないはず

66:デフォルトの名無しさん
07/09/17 01:23:37
>>65
ダブルバッファリングですか。
難しそうですが、頑張ってみます。
ありがとうございました。

67:デフォルトの名無しさん
07/09/17 08:20:56
プログラミングWindowsのサンプルは消してから書く方式だったと思う
サンプル動かして見たけど特にそれで問題ない

68:デフォルトの名無しさん
07/09/18 01:21:43
DLLプログラムで、自分自身が動作しているパスを取得したいのですが、
どうすればいいのか解りません。よろしくお願いします

69:デフォルトの名無しさん
07/09/18 01:29:42
GetModuleFileNameに自分のインスタンスハンドル渡す。

70:68
07/09/18 02:21:26
>>69
ありがとうございます。
眠い。。

71:デフォルトの名無しさん
07/09/19 13:53:38
眠いのですが、どうすればいいのか解りません。よろしくお願いします

72:デフォルトの名無しさん
07/09/19 14:00:02
眠りましょう。
眠れなければ医者へかかりましょう。

73:デフォルトの名無しさん
07/09/19 14:13:07
いつかは寝なければいけないときが来るのだから寝とけ

74:デフォルトの名無しさん
07/09/19 14:22:28
どうせそのうち寝るのなら、今はがんばって起きていたい

75:デフォルトの名無しさん
07/09/19 17:15:10
でも眠いんだろ?

76:デフォルトの名無しさん
07/09/19 17:20:22
俺の経験から言うと
無理して徹夜するよりきっぱり定時に帰って
明日朝からしゃきっとがんばった方が効率が良いと思って
早朝7時くらいに出社して徹夜するはずだった分を補填しようとするけど
結局5分遅刻して(;´Д`)

77:デフォルトの名無しさん
07/09/19 17:47:55
あるあるw

78:デフォルトの名無しさん
07/09/19 19:56:19
意味わからね。


79:デフォルトの名無しさん
07/09/19 20:25:47
正解

80:デフォルトの名無しさん
07/09/20 00:20:56
vc6でMFC無しでプログラミングしています。
vector< char >のサイズを動的に確保する配列を使いたくて、

vector <char> *vec;
vec = new vector<char>[ size ];
delete[] vec;

としたのですが、コンパイル時にdeleteのところで、「配列のdeleteは合わないから*(ポインタ)と解釈するよ」
という旨のワーニングが出ます(開発環境が手元にないのでうろ覚えです)
実行するとdeleteの行で落ちます。

配列の形式でnewしたら配列の形式でdeleteすると理解していて、上記のように書いたのですが、
どういう形でdeleteするのが正しいのでしょうか。
よろしくお願いします。

81:デフォルトの名無しさん
07/09/20 00:54:33
>>80
何か間違ってないか?

VC6起動して試したけどワーニング出ない
実行エラーにもならない(上記3行だけだけど)

82:デフォルトの名無しさん
07/09/20 01:01:16
vector<vector<char> > でいいじゃん

83:デフォルトの名無しさん
07/09/20 01:40:54
>>82
死ね

84:デフォルトの名無しさん
07/09/20 14:50:37
そんなvectorの使い方はじめて見た。というか意味不明。

85:デフォルトの名無しさん
07/09/20 14:55:45
>>84
二次元データを扱うために、vector<vector<float> >なんて使い方するのは常套手段だが。
>80の使い方なら確かに気色悪いと思う。

86:デフォルトの名無しさん
07/09/20 16:44:18
>>85
いや、当然>80の話よ。vectorの意味を理解してない気がするので。

87:デフォルトの名無しさん
07/09/20 18:54:25
vector<char> vec(size);
こうしたいだけだよな>>80

88:デフォルトの名無しさん
07/09/20 19:30:46
C++の話はどうでもいい

89:デフォルトの名無しさん
07/09/20 21:53:53
list<vector<char>>
vector<list<vector>::iterator>
でいいじゃん

90:デフォルトの名無しさん
07/09/21 01:29:23
vector<char>使うならstd::stringを使いたい気分

91:デフォルトの名無しさん
07/09/21 01:39:46
boost::ptr_vector<std::string> str_vec(size);

92:デフォルトの名無しさん
07/09/21 02:02:10
>>83
死ね って言ってる理由が分からないんだが。
vector<vector<char> > は何か問題あるの?

93:デフォルトの名無しさん
07/09/21 02:26:14
>>92
スルー推奨

94:デフォルトの名無しさん
07/09/21 22:15:06
リソースエディタ経由ではなく直接リソースIDを確保したいときどうしたらいいですか?
Resource.hにじかに編集?

95:デフォルトの名無しさん
07/09/21 22:38:38
C++でBot作れますか?

96:デフォルトの名無しさん
07/09/21 22:51:02
作れない方がおかしい

97:デフォルトの名無しさん
07/09/21 23:10:50
>>94
resource.h を直接編集してますね
個人的に気をつけてるのは、プロジェクトを閉じてから編集を開始するのと
編集後.apsファイルは削除しておくことくらい

98:デフォルトの名無しさん
07/09/21 23:57:57
VC++6で、キー入力を捕まえたいんですが、
設置してあるボタンを押したあとだとキー入力を受け付けてくれません。
原因は何でしょうか?

99:デフォルトの名無しさん
07/09/22 00:03:53
Win32API で
CreateWindowW(
とすると引数の情報が出てくるんですけど
CreateWindow(
では情報がでてきません。
これが普通なんでしょうか?
それとも何かファイルが壊れててでなかったりしてるんでしょうか?

100:デフォルトの名無しさん
07/09/22 00:04:59
>>98
もっともっともっともっともっともっともっともっともっともっともっともっともっともっともっと詳しく。

101:デフォルトの名無しさん
07/09/22 00:11:45
>>99
お前バカじゃねぇの
環境書けよ
どうせ2005だろ?仕様だよ

102:デフォルトの名無しさん
07/09/22 00:19:11
>>100
すみません。
ボタンを押した後、フォーカスがそこにあっていて
キー入力を認識しないみたいなんです。
ボタンが押されたときは

case WM_COMMAND:
 switch(LOWORD(wp)) {
  ・
  ・
  ・
  case ID_CF:
   if(field_flag==FIELD1) field_flag=FIELD2;
   else field_flag=FIELD1;
   InvalidateRect(hWnd, NULL, TRUE);
   break;
 }

のようなかんじで、
キー入力の受け付けは

case WM_KEYDOWN:
 GetKeyboardState(state);
 if(state[VK_UP] & 0x80){
 if(mode_flag==HAITI){
  ・
  ・
  ・
 }

でやっています。

103:デフォルトの名無しさん
07/09/22 00:24:07
わろた

104:デフォルトの名無しさん
07/09/22 00:33:34
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・


105:デフォルトの名無しさん
07/09/22 00:34:16
すみません、超初心者なんで・・・どうしたらよいのでしょうか?

106:デフォルトの名無しさん
07/09/22 00:38:05
ワロタら良い

107:デフォルトの名無しさん
07/09/22 00:39:10
原因がわかりました。
どう調べたらいいのか分からなかったので・・・
ありがとうございました。

108:デフォルトの名無しさん
07/09/22 00:49:50
ソーセージ買いに行ったら自己解決しとった

109:デフォルトの名無しさん
07/09/22 00:57:06
今からオナルんか?
まんこ臭くなるから気を付けろよ

110:デフォルトの名無しさん
07/09/22 01:10:27
エラー デバッグ ブラウザ ツール
URLリンク(www.mozilla-japan.org)
シンプル プログミング ツール
URLリンク(proforceone.web.fc2.com)
素因数分解サンプルプログラム
Calculation processing にコピーして[RUN]

A=2*3*5*11*13*17*19;
x=A;br();write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
 for(j=2;(i>=j)&&(1>=k);j++){
  if(0==i%j){k++;}
 } if(1==k){write(" "+i);}
}}


111:デフォルトの名無しさん
07/09/22 01:51:49
インラインアセンブラじゃなくてインラインフォートランにすればいいのに

112:デフォルトの名無しさん
07/09/22 03:22:01
strtokがエラー出るんだけどなんで?
strtokのソースの中で検索ヒットした文字に\0で置き換えするところでアクセス違反起きてる
ちゃんと文字列の中アクセスしてるはずなのになんで?どうして?

113:デフォルトの名無しさん
07/09/22 03:23:17
お前がバカだから

114:デフォルトの名無しさん
07/09/22 03:32:47
マジで?

115:デフォルトの名無しさん
07/09/22 03:35:13
くまった

116:デフォルトの名無しさん
07/09/22 06:13:46
ローカルの変数にコピったら動いた!!!!1
頭いいかもしんない。ここのみんなじゃ無理だったかも・・・

117:デフォルトの名無しさん
07/09/22 06:15:15
お前の事だからそんなこったろうと思ったよ
頭わるすぎw全米がわろた

118:デフォルトの名無しさん
07/09/22 10:26:33
>>116
無理だったね。
112に書いてあることだけで答えを導き出すには、
おそらく一級のエスパーが必要だったろうから。

119:デフォルトの名無しさん
07/09/22 10:34:37
>>116
正解だったね。
113に書いてあるとおりで答えを導き出せないのは、
おまえが超級のパーである証明だったろうから。

120:デフォルトの名無しさん
07/09/22 10:38:46
VC++5.0(mfc42のヤツ)のインストールについて教えてください。

WindowsXPが出始めた頃にVC++5.0をインストールして普通に使えていたのですが、
XPのSP2を入れたらInfoViewerが表示できなくなってしまいました。
(HTTP 404 - ファイル未検出)とか言うエラーが表示されます

ググッったら、以下のような情報を見つけました。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_MK_PROTOCOL に新規キーで「MSDEV.EXE=dword:00000000」を作成

が、そのときにはVC++5アンインストールと再インストールをしてしまっていました。
(上の情報を早くみつけていれば、レジストリの修正だけですんだのに。。)

インストールしなおしたVC++5.0では、上記のレジストリキーを設定しても
やはりinfoViewの内容を表示させるとエラーになります。

なにか解決方法をご存知の方がいらっしゃったらだったらご教授ください。
よろしくお願いします。


121:デフォルトの名無しさん
07/09/22 10:40:18
新しいのにする

122:デフォルトの名無しさん
07/09/22 11:11:35
CDC *pdc = GetDC();
pdc->Ellipse(x1, y1, x2, y2);

とかのEllipseの引数を自分で作ったクラス(myclass)にしたい場合

CDCクラスにEllipse(&myclass)みたいなのを作る
myclassにEllipse(&CDC)みたいなのを作る
CDCクラスとmyclassを継承したクラス(myCDC)にEllipse()を作る(1行目もmyCDC *pdc = GetDC();)
どれが普通なんでしょう


123:デフォルトの名無しさん
07/09/22 11:33:27
>>97
サンキュー

やっぱそんなかんじか。マイクロソフトはホントダメだな。

124:デフォルトの名無しさん
07/09/22 11:40:55
マイクロソフトがダメなんじゃなくてお前がダメw

125:デフォルトの名無しさん
07/09/22 12:11:02
JavaScriptに近いC++ありませんか?

126:デフォルトの名無しさん
07/09/22 12:16:04
C++0x

127:デフォルトの名無しさん
07/09/22 12:35:50
>>122
フレームワークの中身を書き換えるなんて原則もってのほか。だから1はない。

3番目の案は悪くないが、GetDCがCDCへのポインタ返すのに
myCDCへのポインタとして扱うことは、
(これくらい動くだろうが)規格上、未定義なので気持ち悪い。
仮にGetDCがmyCDCへのポインタを返すように書き換えるとしても
それは1と同じ理由で却下。

残るのは2番。

128:デフォルトの名無しさん
07/09/22 12:37:46
人はそれをヘルパ関数と呼

129:デフォルトの名無しさん
07/09/22 16:42:49
CButtonとかはリソースエディタで追加するとそのまま使えるのに
手で追加するとなぜCreateを呼ばないといけないの?
リソースとして追加した場合なんでCButtonのインスタンスが無いの?


130:デフォルトの名無しさん
07/09/22 16:52:16
ボタンはコントロール
C++のクラスではない
CButtonはそれをMFCで扱うためのクラス

131:デフォルトの名無しさん
07/09/22 16:56:43
ダイアログ上のコントロールは、
ダイアログ作成時にWindowsが作る(そのためのダイアログだ)。
あとは、作成されたコントロールとソース上のCButtonとを
関連付けるだけなので、Createする必要がない。



132:デフォルトの名無しさん
07/09/22 17:13:43
>>130-131
なるほど。。つまり以下の様に理解したけどOKですか?

(1)リソースとしてボタンを追加した場合、MFCのダイアログクラスが初期化のときに自分でそのボタンをCreateしている。
(しかもダイアログクラスはボタンが必要だという情報をリソースファイルから得ている?(だってソース上は見当たらないからなぁ。))

(2)リソースとして追加したうえ、変数を割り当てるとそのCButtonクラスと、内部で生成したボタンコントロールのウインドハンドルをどこかで関連付けている。

(3)リソースエディタを使用しない場合、ダイアログはそのコントロールを作成しない。だから自分でCreateを呼ぶ必要がある。



133:デフォルトの名無しさん
07/09/22 17:20:07
>>132
>(2)
つ[OnInitDialog()]

134:デフォルトの名無しさん
07/09/22 17:27:32
>>133
ありがとうございます。ステップ実行してOnInitDialogでなんかごにょごにょして、その過程でCButtonのメンバが有効な値をもつようになったの確認できました

135:デフォルトの名無しさん
07/09/22 18:40:37
教えるだけ無駄なようだね

136:デフォルトの名無しさん
07/09/22 18:59:37
本当は教える知識がないんでしょ?w

137:デフォルトの名無しさん
07/09/22 19:01:01
えぇーどんだけーってレベルでしょ

138:デフォルトの名無しさん
07/09/22 19:16:31
いかほどぉ~

139:デフォルトの名無しさん
07/09/22 19:40:58
>>132
(1)、「MFCのダイアログクラス」ではなく、「Windows」。

140:デフォルトの名無しさん
07/09/23 00:15:44
まず何から勉強すればいいですかね?

141:デフォルトの名無しさん
07/09/23 03:31:07
>>140
C→C++→Cでwin32apiをかじる→MFCでわけわかんなくなる。
→それでもがんばる→疲れる→Cが恋しくなる→でもC++でがんがる
→どうでもよくなる。

142:デフォルトの名無しさん
07/09/23 07:37:51
Cを少しかじる→C++でわけわかんなくなる→MFCをかじる→感動する→C++も分かった気になる
→win32apiも分かった気になる→Cが恋しくなる→久しぶりにCに戻ってみる→
MFCが恋しくなる→でもがんばる→むかついてどうでもよくなる。

143:デフォルトの名無しさん
07/09/23 09:02:44
Cを少しかじる→むかついてどうでもよくなる。


144:デフォルトの名無しさん
07/09/23 09:13:07
visual C++ からg++なんかの外部のコンパイラを使うにはどうすればいいの?

145:デフォルトの名無しさん
07/09/23 09:42:04
cl.exeを置きかえる

146:デフォルトの名無しさん
07/09/23 10:36:42
カスタムビルドステップ

147:デフォルトの名無しさん
07/09/23 11:59:54
むりむりかたつむり!

148:デフォルトの名無しさん
07/09/23 16:42:12
WM_KeydownのところでOnKeyDownを追加したんですが、
キーボードから何を押してもそこへ飛んでくれないんですが
これって何か初期設定みたいなのが必要なんでしょうか?

149:デフォルトの名無しさん
07/09/23 17:07:53
WM_KEYDOWN を受け取ろうとしているウィンドウにフォーカスが当たってないんじゃない?
たとえば、ダイアログ上のエディットボックスでキーを押した場合、
WM_KEYDOWN が飛んでくるのはダイアログじゃなくてエディットボックス

150:デフォルトの名無しさん
07/09/23 17:19:31
>>149
ダイアログをクリックしてから押してるんだけどうんともすんとも
ちなみにダイアログだけのプログラムでダイアログにはボタンが6個あるだけです

151:デフォルトの名無しさん
07/09/23 18:28:26
Visual Studio2005使って、Windoxsフォームアプリケーションやってるけど
リソースの使い方がわからない…

152:デフォルトの名無しさん
07/09/23 18:31:20
がんばれ

153:デフォルトの名無しさん
07/09/23 18:35:06
Windoxs

154:デフォルトの名無しさん
07/09/23 18:53:38
>>151
すっげーなお前
Visual Studio2005使って、Windoxsフォームアプリケーションなんかやってるんだ

155:デフォルトの名無しさん
07/09/23 18:54:42
>>154
普通は何やるんですか?

156:デフォルトの名無しさん
07/09/23 19:24:53
>>155
次期SPや修正パッチなどの出荷用テスト

157:デフォルトの名無しさん
07/09/23 19:41:56
私、昨日買ったばっかなんですが、勉強したくて

158:デフォルトの名無しさん
07/09/23 19:47:07
初心者向けの製品は別にあるよ

159:デフォルトの名無しさん
07/09/23 20:12:47
本か何か買ったの?
それ見てやればいいんじゃね?

160:デフォルトの名無しさん
07/09/23 21:31:01
最近のWindowsアプリケーションはいったいどんな種類があるの?
自分はダイアログベースアプリが80%
10%はDLLやStaticLib
時々SDIアプリ
たまーにActiveX

GUI系で最近の流行ってなんですか?

161:デフォルトの名無しさん
07/09/25 07:02:02
スリープ(モニタ電源OFF)から復帰すると動作がおかしくなってるのですが
なにか特別な処理をする必要があるのですか?ソフトはアナログ時計です。
なおPC不調でサスペンドから復帰できなくなってるのでサスペンドの場合はどうなるのか
不明です。


162:デフォルトの名無しさん
07/09/25 07:12:33
サスペンドの場合はPCの電源が即座に切れ二度と起動しなくなります。

163:デフォルトの名無しさん
07/09/25 22:01:23
Visual C++と、標準C++って何が違うんですか?

164:デフォルトの名無しさん
07/09/25 22:19:24
Visual C++は商品名で標準C++は言語名

165:デフォルトの名無しさん
07/09/25 22:31:11
Visual C++で、入門者がMFCを最初にやるのは馬鹿ですかね?

166:デフォルトの名無しさん
07/09/25 23:51:53
C++ をよく理解してるんならいいんじゃないのかな。
でも Windows プログラムの動く仕組み理解しておいた方がいいんじゃないかな

167:デフォルトの名無しさん
07/09/26 00:09:05
VisualC++で、キーボードからの入力をテキストファイルに保存したいんですけど、どうしたら出来ますかね?

168:デフォルトの名無しさん
07/09/26 00:39:39
1)キーボードから入力を受け取って
2)ファイルに書き込む

といいよ

169:デフォルトの名無しさん
07/09/26 00:55:04
>>167
キーロガー作ってパス盗む気か

170:デフォルトの名無しさん
07/09/26 01:11:12
ついでに特定のサイトを見ているときだけ保存したいんですけど、どうしたらできますかね?

171:デフォルトの名無しさん
07/09/26 02:41:42
>>170
釣りは死んでください。

172:デフォルトの名無しさん
07/09/26 02:45:01
はい

173:デフォルトの名無しさん
07/09/26 07:28:10
vs2005ですが、デバッグの際、
stlのvectorとかでエラーが出たときに
なんかウィンドウが出るだけでデバッガの方に出力されないので
どこでエラーが出てるのか分かりにくいです。
どうにか場所を特定する方法ってありますか?

174:デフォルトの名無しさん
07/09/26 08:12:35
キーボードからの入力を受け取りたいんですけど、やっぱりAPIとかの知識がないとだめなんですかね?

175:デフォルトの名無しさん
07/09/26 08:18:52
キーボードからの入力以前に、やっぱりAPIとかの知識がないとだめ人間です。

176:デフォルトの名無しさん
07/09/26 08:25:37
>>173
つブレークポイント
まず適当にブレークポイントを設定して自分のコードのどの場所でエラーが出るか特定する
次にその部分で使ってる関数の各ステップにブレークポイントを設定してどの場所でエラーが出るか特定する
それを再帰的に繰り返していくとランタイムアサートのマクロ構文に辿り着く筈

177:デフォルトの名無しさん
07/09/26 08:39:44
>>175
学習してきます。

178:デフォルトの名無しさん
07/09/26 20:53:45
質問です。

struct Base
{
void *p;
virtual ~Base(){}
};

struct Hoge : public Base
{
Hoge(){p = new HogeData;}
};

と、このように IData *pを派生先で共有したいと思っています。
派生先ごとにpに何を生成するかは決まっており、
Hoge なら new HogeData
Main なら new MainData
John なら new JohnData
といった具合です。(xxxData たちは全て、IDataを継承しています)

この状態で
Hoge *pHoge = new Hoge;
と、VisualSturio6.0のデバッガ「変数ウインドウ」で見た場合、pはあくまでvoid*型なのでそれ以上データを見ることはできません。
しかし、プログラマである私が決めたルールとして Hogeの時のpは*HogeDataとして扱うというルールがあります。
これをデバッガに認識させる方法はありませんでしょうか?

・Base *pHoge = new Hoge; とした場合、pHoge->pをHogeDataだと認識する必要は無い(高望みすぎるので)
・void *p; のかわりに IData *p; にしてみたが、IDataとしてしか認識してくれなかった(HogeDataの持つ変数は見られなかった)
・デバッガに認識させるために、何か特別な記述を加える労力は惜しまない
・クイックウォッチを使ってきちんと手動で型認識させてやれば見られたが、毎回手動はきつい(自動にできる方法があるならそれでもいいかも)

よろしくお願いします。

179:デフォルトの名無しさん
07/09/26 20:55:30
1行間違いです
>と、このように IData *pを派生先で共有したいと思っています。

と、このように void *pを派生先で共有したいと思っています。


曖昧な表現でした
>pはあくまでvoid*型なのでそれ以上データを見ることはできません。

つまり、変数ウインドウ上のpの頭のところに[+]記号が出てこないということです


180:デフォルトの名無しさん
07/09/26 21:08:24
>>178
仮にBaseはpを持っている必要がないとすれば、
BaseにIData* GetData() = 0;のようなメンバ関数を用意して、
個々の派生クラスで、メンバ変数pとpを返すGetDataを定義するという方法が思い付く。
派生クラス毎にpを持てば、HogeDataなど特化した型にできるだろう。

181:デフォルトの名無しさん
07/09/26 21:17:04
void pointer…(ゴクリ

182:デフォルトの名無しさん
07/09/26 21:22:40
>>180
お返事ありがとうございます。

派生クラス毎に持つという案は確かに考えたのですが、
Base <- Hoge <- HogeEx
とやったときに複数ポインタが存在することになってしまいます。
(Baseには無しとしても、Hoge分とHogeEx分)

IData* GetData() =0; の手法ですが、そのGetDataを呼び出す記述がソースに無い限り
いきなりブレイクして変数ウインドウを見ても表示されないのではないでしょうか。

一応今も非virtual なGetDataをそれぞれ持つようにさせ、クイックウォッチの時の記述が統一的になるようにはしています。
(ただ、それでもクイックウォッチ呼び出すのかなり面倒なのですよね…)

183:デフォルトの名無しさん
07/09/26 21:46:50
template <typename T> struct Holder : public IHolder {
Holder() : p(new T) { IHolder::p = p; }
T* p;
};
を作って
typedef Holder<HogeData> Hoge;
typedef Holder<MainData> Main;

みたいに使えばどうか?

見るだけならrelease時はT* p
を持たないバージョン作っといてそれを使うようにすればいいし

184:デフォルトの名無しさん
07/09/26 21:49:48
変数ウインドウで値みなきゃデバッグできないわけじゃないし
それだけのためにごちゃごちゃソースいじるのも頭わるすぎる

185:デフォルトの名無しさん
07/09/26 21:54:44
なるほど、テンプレートですか
実験してみようと思います。

しかし逆に考えると、テンプレート使うくらいしか方法が無いってことなんでしょうかね

私の妄想上の記述ですが
struct Base
{
void *p;
virtual ~Base(){}
};
struct Hoge : public Base
{
union
{
 void *Base::p;
 HogeData* pHogeData;
}
Hoge(){p = new HogeData;}
};

こんなことできないもんでしょうかね?

186:デフォルトの名無しさん
07/09/26 21:55:58
>>184
確かに正論だと思います。
なので「簡単に変数ウインドウで確認するための方法」があるなら知りたいわけです。
とてつもなくソースが難読になってしまうのなら、やらないだろうと思います。

187:デフォルトの名無しさん
07/09/26 22:15:32
もちろんできますお
でもこうすればIHolderがいらない子になってしまう
template <typename T> struct Holder
{
Holder() : derived(new T) {}
union {
IData* base;
T* derived;
};
};
HogeやMainもポインタや参照経由で多態性を持たせるなら
もっと面倒臭くなるし下手すりゃVC6ではコンパイルできなくなるかも

188:デフォルトの名無しさん
07/09/26 22:27:21
MFCのランタイムクラス情報を使っていれば、
自動で派生クラスの内容も表示できたりするけど、
今回はそれは無しだろうしなあ。

189:デフォルトの名無しさん
07/09/26 23:38:07
自分でautoexp.datを書くってのはどうだろう。

190:デフォルトの名無しさん
07/09/26 23:51:54
>>187
定義済みの変数を、unionで「こいつとも共用体ってことで」って後付けできないもんでしょうか

>>188
MFCはなしですね…。携帯電話用なもので

>>189
ぐぐってみましたがこれは面白そうですね。ちょっと調べてみます

191:デフォルトの名無しさん
07/09/27 00:38:43
autoexp.dat を使えばもしかしたらいけそう…。
と思うのですが、ポインタの型変換の書き方がわかりませんね…
Hoge=b=<((HogeData*)p)->b>
では認識してくれないようです。

どなたかautoexp.datについて分かるかたいらっしゃいませんでしょうか
もしくは詳しいページor書籍などを紹介していただけると嬉しいです

192:デフォルトの名無しさん
07/09/28 15:45:55
Visual Studio 2005 Standard Edition を購入しようとしています。
今2003版を持っているので、アップグレード版を買えばいいとは思うのですが、
2003のユーザー登録がしていなといけないとか、
同じパソコンにインストールしないといけないとか、
アップグレード版にはそういった制約があるのでしょうか?
教えて下さいませ

193:デフォルトの名無しさん
07/09/28 16:59:04
ない

194:192
07/09/28 17:14:14
>>193
ありがとうございます。
もし2003を持っていなくても、普通に動くという事?

195:デフォルトの名無しさん
07/09/28 22:34:58
インストール時に2003のディスクチェックくらいあるだろう

196:デフォルトの名無しさん
07/09/28 23:36:41
ディスクチェックもなければアクチもねえぞ

197:デフォルトの名無しさん
07/09/29 00:46:19
#include "gameframe.h"

void GameFrame::doMainLoop(){
ChangeWindowMode(TRUE);
if(DxLib_Init()==-1) return;
SetDrawScreen(DX_SCREEN_BACK);


while(ProcessMessage()==0&& CheckHitKey(KEY_INPUT_ESCAPE)==0){
ClsDrawScreen();
ScreenFlip();
}
DxLib_End();
とソースコードをコンパイルしようとしたら・・・
こんなエラーが出てきましたどうしたらいいでしょう??
↓↓
エラー E2090 型限定子 'GameFrame' がクラス名または名前空間名ではない
エラー E2040 宣言が正しく終了していない


198:デフォルトの名無しさん
07/09/29 01:32:11
エラーコードについて
msdn で調べてみるか
google 先生に聞いてみると良いよ。

199:デフォルトの名無しさん
07/09/29 05:28:42
教えるだけ無駄そうだな
C++勉強したことある?

200:デフォルトの名無しさん
07/09/29 07:24:53
今までVBばっかり使ってたのですが、
最近Visual C++に興味があります
何から始めたらいいでしょうか?

201:200
07/09/29 07:27:18
書き忘れました
VS2005です

202:デフォルトの名無しさん
07/09/29 08:58:17
C++やったことがないとVisual C++は無理

203:デフォルトの名無しさん
07/09/29 09:00:16


204:200
07/09/29 09:06:42
そうですか(><;
どうも

205:デフォルトの名無しさん
07/09/29 17:57:30
coutってなんて読むのでしょうか?

206:デフォルトの名無しさん
07/09/29 18:02:27
シーアウトかな

207:デフォルトの名無しさん
07/09/29 18:43:27
コウティー

208:デフォルトの名無しさん
07/09/29 19:37:55
>>207
無知乙wwwwwwww

209:デフォルトの名無しさん
07/09/29 20:33:05
コンソールアウト

210:デフォルトの名無しさん
07/09/29 22:47:53
コウト

211:デフォルトの名無しさん
07/09/29 23:07:02
の中では

212:デフォルトの名無しさん
07/09/29 23:07:44
兵器


213:デフォルトの名無しさん
07/09/30 06:32:20


214:デフォルトの名無しさん
07/09/30 08:06:32
const int const_cout_count = 0;

215:デフォルトの名無しさん
07/09/30 08:31:56
昔のVCのプロジェクトをビルドしようとしているんですが、
そのプロジェクトではnasmというコマンドを使ってアセンブラファイルをアセンブルしようとしていました。
そしてVC6ではnasmは見つからないらしく、コマンドが見つかりません、ってエラーになります。
nasmはVC6ではなくなってしまったのでしょうか?代替のアセンブラはありますか?


216:デフォルトの名無しさん
07/09/30 08:38:30
昔のVCにnasmついてたっけ?
自分で作ったプログラムかそれ?

217:デフォルトの名無しさん
07/09/30 08:45:18
プログラムはネットで拾ったものです。


218:デフォルトの名無しさん
07/09/30 08:51:23
ググれ。nasmならsourceforge.netで公開されている。

219:デフォルトの名無しさん
07/09/30 09:00:04
ありがとうございます。ググッて来ます

220:デフォルトの名無しさん
07/09/30 09:04:16
おかげさまで今アセンブルできました!!
ありがとうございましたm(_ _)m

221:デフォルトの名無しさん
07/09/30 13:12:49
nasmはintel表記に従っているから好き。
gasは独自表記に拘っているから嫌い。

222:デフォルトの名無しさん
07/09/30 22:17:09
リソースファイルで設定した製品バージョン
VALUE "ProductVersion", "0, 0, 0, 1"
をプログラム中から取得するにはどうすればよいのでしょうか?

223:デフォルトの名無しさん
07/09/30 22:58:03
>>222
GetFileVersionInfo + VerQueryValue

224:デフォルトの名無しさん
07/10/01 06:18:06
なるほど、一旦できた実行ファイルから取得するしかないんですね。
もっと静的にコンパイル時に取得できる物だと思っていました。

225:デフォルトの名無しさん
07/10/01 08:11:55
exeはコンパイルし直さない限り変らないから静的な情報だろ

226:デフォルトの名無しさん
07/10/01 08:16:41
>>225
それはそうなんだけど、コンパイル時に決定できるなら
よかったなぁ、と思って。マクロの中で使いたいから。

227:デフォルトの名無しさん
07/10/01 09:13:26
Resource.hあたりに、"0, 0, 0, 1"を適当にdefineして、
.rcと使いたいマクロ中でそれ使うようにすればいいだろ!!!

とか、言ってみる。

228:デフォルトの名無しさん
07/10/01 12:27:52
>>226
リソースはコンパイル時に確定していない情報なんだから当然、無理。
# リソースが確定するのはリンク時。

229:デフォルトの名無しさん
07/10/01 12:31:17
>>226
マクロの中で使う場合でも定数である必要はないんじゃないの?
取得用関数を1つ別に作って、マクロの中でその関数使えばすむ話だと思うけど

230:デフォルトの名無しさん
07/10/01 16:08:06
>>222
URLリンク(tgws.fromc.jp)

231:デフォルトの名無しさん
07/10/01 21:48:11
Win2k3 x64上で64ビットEXEから
32ビットのみ対応DLLを使いたいと思っております。
しかし、MSDNを見ると、上記は不可能であると知りました。
32ビットのみ対応DLLを64ビット対応にする、という方法以外で、
64ビットEXEから32ビットdllを使用できる方法、プロセス構成として
何が考えられますでしょうか?
なるべくパフォーマンスが落ちないような実装として何がありますでしょうか?
加えて、最も簡単な方法もありましたら教えていただきたいです。



232:デフォルトの名無しさん
07/10/01 21:54:53
32ビットDLLを呼ぶEXEを作って、それと64ビットEXEとでプロセス通信したらどうか。
COMで32ビットアウトプロセスサーバ作ってもいいだろうし。
いずれにせよ32ビットEXEを介すことに変わりはないが。

233:231
07/10/01 21:58:02
>232
ありがとうございます。
プロセス通信というと、Socket通信とかでしょうか?
メモリを共有することはできないんですよね。
もしできたとしてもコーディングが難しいのでしょうかね・・・?

234:デフォルトの名無しさん
07/10/01 22:09:33
ソケットもそうだし、ウィンドウメッセージ、メモリマップドファイル、パイプ、メールスロット、その他色々ある。
用途に合わせて好きなの選べ。

235:231
07/10/01 22:17:54
>>234
ありがとうございます。やはりプロセス間通信しかないですか・・・
dllには大きなデータを一度に渡すのですが、その場合に最も効率いいものはあるのでしょうか?ここからは自分で調べないといけないのかもですね。

236:デフォルトの名無しさん
07/10/01 22:36:27
Win32 and COM Development
- Development Guides
- 64-bit Windows Programming
- Running 32-bit Applications
- Interprocess Communications

速度的には共有メモリだろうけど、一時ファイルを介するのも一つの手かもな。

237:デフォルトの名無しさん
07/10/02 12:24:13
始めまして、質問させていただきます。
Microsoft Visual C++ 6.0で人が作ったアプリケーション拡張開こうとしてるのですが
開き方が分かりません。誰か教えてください。宜しくお願いします。

238:それが誰かは知りませんが
07/10/02 12:26:09
「人」に聞きなさい。

239:デフォルトの名無しさん
07/10/02 12:33:56
落ちてたものなので、人に聞くことも出来ないので、ここに聞くことに
したのですが、誰か教えてもらえませんか?宜しくお願いします。

240:デフォルトの名無しさん
07/10/02 13:50:34
アプリケーション拡張ってDLLのこと?
開くって何したいの?

241:デフォルトの名無しさん
07/10/02 14:03:24
>>240
開き方わかります?知ってたら教えてください

242:デフォルトの名無しさん
07/10/02 14:37:17
VC++ 2005 Express Editionで質問です。

VC++のヘルプをMSDN Express Libraryからmsdn2007年6月版に変更したいのですが
msdnから落として完全インストールでデフォルトのC:\Program Files\MSDNに入れました。
VC++でヘルプを開くとき新しく入れた2007年6月版が開くように設定するにはどうしたらいいですか?



243:デフォルトの名無しさん
07/10/02 15:45:10
>>241
釣り?
DLLは「開く」ものじゃないぞ?

244:デフォルトの名無しさん
07/10/02 16:04:13
そのまま VC++ に取り込んで改造できると思ってんのか

笑っちゃう

245:デフォルトの名無しさん
07/10/02 16:40:05
>240に対して>241の応答は酷すぎる。「言葉が通じない」の実例だ。

246:デフォルトの名無しさん
07/10/02 16:54:43
>>241
DLLを開きたいならCreateFileを使え

247:デフォルトの名無しさん
07/10/02 16:59:14
話をかき混ぜるようなこと書くなw

248:デフォルトの名無しさん
07/10/02 17:09:18
落ちてたものなのに「人」が作ったとなんで判ったんだろう。

249:デフォルトの名無しさん
07/10/02 17:24:52
人に聞けないってここの住人は…(以下略)

250:デフォルトの名無しさん
07/10/02 17:29:51
>>244
なんだ改造できないのか、残念

251:デフォルトの名無しさん
07/10/02 18:03:06
>>248
人が作ったのでなければ何だね。
自動コーディングスクリプトかね。
まさか神が造ったなどと言うつもりではあるまい。

252:デフォルトの名無しさん
07/10/02 18:27:12
落としたつもりは無いんだけど

253:デフォルトの名無しさん
07/10/03 00:14:18
何このカオス

254:デフォルトの名無しさん
07/10/03 21:02:00
URLリンク(www.microsoft.com)
で、プログラムフォルダ以下のファイルを編集するときに、変更を保存できないんですが
どうすればいいのでしょうか?

255:デフォルトの名無しさん
07/10/03 21:31:17
そこらへんのディレクトリ・ファイルは、管理者権限持ったユーザにしか
書き込み系のアクセス権限がないはず。
管理者権限持って出直してこい。

256:デフォルトの名無しさん
07/10/03 22:19:29
管理者権限持っているんだが、どうもおかしいな

257:デフォルトの名無しさん
07/10/03 22:23:16
でもね、昨日の「-1」は、まじでわかっていた
信じて

258:デフォルトの名無しさん
07/10/03 22:56:29
Vista+UAC

259:デフォルトの名無しさん
07/10/04 15:54:21
すみません VC6.0 初心者です。
ATLでNTサービスプログラムを作っています。

デバッグ用にメッセージボックスが出せると便利なのになぁと
思うんですけど、MessageBoxを使うと「ボン」と音がするだけで、
見えるところに出てきません。
(処理はそこで止まるので、出てはいるようです)

やむなく LogEvent 関数でログを吐き、
イベントビューアで見てますが、NTサービスでは
メッセージボックスを出せないものなんでしょうか?

260:デフォルトの名無しさん
07/10/04 16:29:02
>>259
デスクトップとの対話をサービスに許可
というオプションは試した?

261:デフォルトの名無しさん
07/10/04 18:18:07
>>260
対話を許可にしたらできました。
どうもありがとうございました(´・ω・`)

262:グリッドとか、グリッドの間隔とか
07/10/05 14:33:03
Visualstudio 2003 C++で、ダイアログプログラムを作っているのですが
ダイアログを編集しているときにグリッドを表示させているのですが、
標準ではグリッドの表示がされていないので、
書式-ガイドの設定-グリッドをチェック
グリッドの間隔はデフォルトで6になっているのを3にしてOKボタンを押すのですが
VC2003が覚えてくれません。これはやっぱり仕様なのでしょうか?
どこかにデフォルトの設定を変えて通常グリッドON、間隔3にできないものでしょうか?
ご教示ください、よろしくお願いします。

263:デフォルトの名無しさん
07/10/09 22:30:41
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
と、表示されるのですが…どうしたらよいのでしょうか…
文は「試しにこれをコンパイルしてみよう」みたいなのを何度も見直したんで大丈夫なはずなのですが…

264:デフォルトの名無しさん
07/10/09 22:45:28
'#include "stdafx.h"' をソースに追加しましたか?

265:デフォルトの名無しさん
07/10/09 22:53:07
それがイマイチわからなかったので追加しない方法もあったようで
そっちでやったらコンパイルできました…

266:デフォルトの名無しさん
07/10/10 01:50:25
タイトルバーを持つけどドラッグできないウインドって作成できますか?
ウインドを移動させたくないんです。


267:デフォルトの名無しさん
07/10/10 01:54:30
WM_MOVING をのっとって見るとか?

268:デフォルトの名無しさん
07/10/10 01:59:19
>>267
こんばんは。早速試してみましがダメでした。:-)


269:デフォルトの名無しさん
07/10/10 02:22:19
WM_WINDOWPOSCHANGING

270:デフォルトの名無しさん
07/10/10 02:32:24
>>269
ありがとうございます。しかしそのメッセージを処理させないようにしたら
ウインドの初期化処理でシステムから利用されているらしく、ウインドが表示されなくなってしまいました。

ウインドをドラッグしようとすると枠だけが移動するヤツありますよね?
ドラッグを終えたときだけウインドが一瞬で移動するやつです。
あんな風にドラッグ操作だけは受け付けるけど、放したときに結局元の位置に戻っちゃう、
みたいなのでもいいです。

クレクレですみませんがよろしくお願いしま~す



271:デフォルトの名無しさん
07/10/10 02:45:28
>そのメッセージを処理させないようにしたら
どっちも現在の位置を入れるんだよ

272:266
07/10/10 02:56:36
こんばんは。皆さん、遅くまでありがとうございます。

いろいろ試してみたのですが、上手くいかないみたいです。
海外のサイトをあさっていて上手く行く方法を見つけました。

HMENU hMenu = GetSystemMenu(mhWnd, FALSE);
::DeleteMenu(hMenu, SC_MOVE,MF_BYCOMMAND);

でメニューから「移動」を取ってしまう方法のようです。

お騒がせしました。(^0^)/



273:デフォルトの名無しさん
07/10/10 11:22:33
【政治】政府、"お金をつくる"造幣局や印刷局など独立法人20以上を民営化へ-機密性の保持も絡み様々な意見も★


スレリンク(newsplus板)

【民営化】造幣局・印刷局など、独立行政法人20以上を民営化へ:政府方針 [07/10/07]
スレリンク(bizplus板)


政府は6日、現在進めている独立行政法人(独法)の整理合理化に関連し、
101ある独法のうち、予算に占める国からの財政支出の割合(財政依存度)が低い
20法人以上の民営化を目指す方針を固めた。

2007年末に整理合理化計画を策定し、閣議決定する予定だ。
民営化の対象には、造幣局や国立印刷局、日本万国博覧会記念機構などがあがっている。
今後、独法の民営化推進を目指す渡辺行政改革相らの方針に対し、
事業の公共性の高さなどを主張する関係省庁の巻き返しが本格化しそうだ。

貨幣や紙幣を造る造幣局や国立印刷局については、機密性の保持なども絡み、
是非をめぐって様々な意見が出そうだ。

URLリンク(headlines.yahoo.co.jp)

274:デフォルトの名無しさん
07/10/10 11:30:28
>>272
試してみたら本当に動かないな。なんて怪しい仕様なんだ……

275:デフォルトの名無しさん
07/10/10 16:22:12
日付の取得方法を教えて下さい

276:デフォルトの名無しさん
07/10/10 16:59:13
カレンダーを見る

277:デフォルトの名無しさん
07/10/10 18:45:09
本に書いてない?
MSDNにもサンプルコードのってたような気がする

278:デフォルトの名無しさん
07/10/10 20:21:56
VC2005を使っています。
Bitmapクラスを使って、ビットマップデータを、ファイルではなく、指定したメモリに格納したいと思っています。
ファイル保存しかできないでしょうか?
できるのなら、例を教えていただけるとありがたいです。

279:デフォルトの名無しさん
07/10/10 21:03:09
ファイルとして保存する所までできてたらメモリでもいっしょだろ

280:デフォルトの名無しさん
07/10/10 21:07:48
つ System.IO.UnmanagedMemoryStream

281:デフォルトの名無しさん
07/10/10 22:35:15
サンプルコードではなく、実用的なアプリケーションのソースを公開してるとこありませんか?
MFCでもSDKでOK

wwwを検索すると、Viewに”hello world”とTextOutしていかにも、C++/VC++/MFC使えますみたいな
のばっか、そんなの誰でもできるっちゅうねんw

282:デフォルトの名無しさん
07/10/10 22:37:44
OSS

283:デフォルトの名無しさん
07/10/10 22:38:30
探せばいくらでも見つかるはずだけど
馬鹿には見つからないんだな

284:デフォルトの名無しさん
07/10/10 22:41:17
>>281
実用的なアプリケーションのソースくらいお前以外誰でも書けるっちゅうねんw

285:デフォルトの名無しさん
07/10/10 22:43:43
MFC、SDK ぐらいしか検索ワード知らないんだから
そういうサイトしかヒットしないのは当たり前

286:デフォルトの名無しさん
07/10/10 22:44:38
ネットで言語の勉強してたら自然とそういう情報に当たるか見つけ方自ずと分かるっちゅうねんw

287:デフォルトの名無しさん
07/10/10 22:46:21
あらあらあおりと取られちゃったのかしらんw
次元ひくっ

288:デフォルトの名無しさん
07/10/10 22:49:15
質問の次元が高すぎるっちゅうねんw

289:デフォルトの名無しさん
07/10/10 22:49:39
あらあらあおりと取っちゃったのかしらんw
次元ひくっ

290:デフォルトの名無しさん
07/10/10 22:50:46
質問の次元が高すぎるっちゅうねんw

291:デフォルトの名無しさん
07/10/10 22:51:07
>>281
実用的なアプリケーションのソースが理解できないから
お前のレベルに見合ったhello worldしか目に付かないのだっちゅうねんw

292:デフォルトの名無しさん
07/10/10 22:55:08
逆にどういうキーワードで検索してるのか気になるっちゅうねんw

293:デフォルトの名無しさん
07/10/10 22:56:34
しかし、>>281が言ってることも的を射てるよ

webでプログラミング情報を公開してる奴って結構多いが
どれも、同じようなことしか書いていない

彼は恐らく日本語のページしかみてないんじゃないかな?


294:デフォルトの名無しさん
07/10/10 22:59:43
ぜんぜんプログラミングの知識のないやつとかが、
どっかで拾って来たソースのビルドの仕方聞くことが結構あるから
まったく見つけられないやつはかなり特殊

295:デフォルトの名無しさん
07/10/10 23:01:48
どれも、hello worldしか書いていないページを是非紹介して貰いたい

296:デフォルトの名無しさん
07/10/10 23:10:47
Visual Studio 2002 C++で開発しております。

現在、ディスプレイの主電源が入っているか確認するプログラムを
作成しているのですが、主電源の状態を取得する事ができておりません。

SC_MONITORPOWERで情報がとれないかなとも試してみたのですが
主電源情報となると取れないようでした。

お手数ではございますが、ご教授のほど、よろしくお願い致します。

297:デフォルトの名無しさん
07/10/10 23:22:05
>296
そのプログラム考えたやつに聞けば?
できる前提じゃないとそういう細かい要求でないと思う

298:296
07/10/10 23:37:51
>>297
考えたのは自分なので、聞くことはできないです。

その為、主電源情報を取得する方法ご存知の方が
いらっしゃるのではないかと思い、質問させて頂きました。

299:278
07/10/10 23:38:55
>>279 280
ありがとうございます。bitmapクラスのSaveでファイル保存をしていました。
このメソッドはファイル保存しかできないように見えます。保存先をメモリにしたいです。
UnmanagedMemoryStreamをMSDNで見ましたが、どのようにこの問題の解決のために使うのかわかりません。
サンプルを教えていただけないでしょうか?もしくはBitMapクラスでメモリ保存できるAPIはあるのでしょうか?

300:デフォルトの名無しさん
07/10/10 23:51:03
うちのモニタは主電源は入りっぱなしだけど
パソコン立ち上げた時にモニタのスイッチ押さないとモニタ写らない。
パソコン立ち上げた時にモニタが自動で写るようにしてほしいな

301:デフォルトの名無しさん
07/10/10 23:54:38
自分ですればいいじゃん

302:デフォルトの名無しさん
07/10/10 23:59:10
>>299
Stream に保存できるだろ

303:デフォルトの名無しさん
07/10/11 00:14:19
>>299
ぐぐった先頭にあるMSDNのページにサンプルあるんだけどそれではダメなの?
もしかして、サンプルに書いてあるコメントが読めないとか?

304:デフォルトの名無しさん
07/10/11 09:19:32
仕様勉強するにはやっぱり
なんか1冊本を買ってきて最初から読むのがいいですかね

305:デフォルトの名無しさん
07/10/11 09:28:22
人それぞれ

306:デフォルトの名無しさん
07/10/11 17:58:45
>>299
そもそも、そのBitmapはネイティブ、マネージのどっちだ?

ネイティブのgdiplus::Bitmapなら、IStream*を引数に取るSaveを使え。
IStreamは自分で実装してもいいし、CreateStreamOnHGlobalを使ってもいい。

マネージのSystem::Drawing::Bitmapなら、Stream^を引数に取るSaveを使え。
渡すStreamは、System::IOのMemoryStreamでいいだろうが、
場合によってはUnmanagedMemoryStreamが適する場合もあるかもしれない。

307:デフォルトの名無しさん
07/10/11 19:05:33
マルチスレッドを実現するためにスレッド作成をしたいと思ってます。

以下はスレッドを作成するクラスのソースです。
このように、staticをつけないとコンパイルエラーになります。

スレッド関数は、必ずStaticにしなければならないのでしょうか?
Staticを使わずにスレッド生成を実現したいと思っております。
というのも、Static内の関数を全てStaticにしないといけなくなるので
・・・

スレッド生成でStaticを使わない実現方法があったら教えていただきたいです。
実際、みなさんはどのような方法でスレッド生成を実現しているのでしょうか?

class TestThread{
// コンストラクタ、デストラクタは省略
public:void Function()
{
// スレッド作成
Thread^ main= gcnew Thread(gcnew ThreadStart(ThreadProc));
}

private:static void ThreadProc() // staticをつけないとエラー
{// 処理 }
};

308:デフォルトの名無しさん
07/10/11 19:33:23
gcnew ThreadStart(this, &TestThread::ThreadProc)かな。

309:デフォルトの名無しさん
07/10/11 19:41:06
>>308
レス感謝です。しかしコンパイルエラーになりました。
deligate引数が無効と出ました。

310:デフォルトの名無しさん
07/10/11 21:18:49
>>309
ああごめん。>>308の方法は、値クラスか参照クラスにしか使えない。

もし、ネイティブクラスの非静的メンバ関数を別スレッドで実行したければ、
マネージクラスでラップするか、CRTの_beginthreadexを使う必要がある。

311:307
07/10/11 21:54:57
>>310
マネージクラスでラップ(クラスにrefをつけた)ら、
コンパイルが通り、正常に動作しました。

beginthreadexについては調べてみます。
ありがとうございました。


312:デフォルトの名無しさん
07/10/11 23:19:26
マネージドとか、最近妙なモンが出てきやがって。。

313:デフォルトの名無しさん
07/10/11 23:21:23
もう最近でもないような。

314:デフォルトの名無しさん
07/10/11 23:21:37
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..
:::: :::::::::.....:☆彡::::    //[||    」  ||] :: ::::::::::::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..:
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:....
:.... .... ..:.... .... ..... .... .. .:.... .... .. .... . .... . ..... .... .. ..... ............. .. 
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ デテキヤガッテ・・・.
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ...................
..   三  |   三  |   三  |   三 |
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪

315:デフォルトの名無しさん
07/10/11 23:40:59
おまえらあんなC++もどき使うのやめちまいな!

316:デフォルトの名無しさん
07/10/11 23:53:51
誰も使ってないような。

317:デフォルトの名無しさん
07/10/12 00:16:45
C#やVBなんかよりは全然いいがなw

318:デフォルトの名無しさん
07/10/12 09:42:10
リストビューで選択されているすべての項目のインデックスをしらべるにはどうしたらいいんですかね?

なんか
GetFirstなんたらの後に、GetNextなんたらをやってもうまくいかなかったのですが…

319:デフォルトの名無しさん
07/10/12 09:46:09
LVIS_SELECTED

320:デフォルトの名無しさん
07/10/12 09:48:08
>>318
じゃあお前にはムリだ。

321:デフォルトの名無しさん
07/10/12 16:24:12
>>318
CListCtrl::GetFirstSelectedItemPositionのサンプルコードをよく見直せ。
それでも判らないならコードupしる。

322:デフォルトの名無しさん
07/10/12 18:53:49
コンストラクタはオブジェクトの初期化処理を行い
デストラクタはオブジェクトの終了処理を行う
というのは、どういった場面で使われるのですか?
いまいち理解出来ないです

323:デフォルトの名無しさん
07/10/12 19:04:54
コンストラクタは最初に呼ばれて、デストラクタは最後に呼ばれるだけ
利用方法がわからなかったら無理に使わなくてもかまわない

324:デフォルトの名無しさん
07/10/12 19:34:34
>>322
デストラクタは、freeのような使い終わった後に呼ばないといけない解放処理を書く。
例えばstd::auto_ptrが内部に保持しているポインタをdeleteしたり、
ATL::CHandleはCloseHandleしたりなどという具合。

コードがスッキリするし、例外が投げられたときでも確実に資源が解放されるのがいい。

325:デフォルトの名無しさん
07/10/13 09:06:01
>>322
オブジェクトを作るときに
メンバ変数の値を動的に初期化するときとかにコンストラクタを使う
たとえばある時はメンバ変数をAで初期化したいけど
別の時にはBで初期化したいようなとき。
っていうのがまだまだ初心者な俺の理解です。
たとえば

class obj {
  char test;
public:
  obj(char ch) { test = ch; }
};

obj testobj('A');

っていう感じかなぁ
あとは動的にメモリを確保する必要があるときとか。
クラスのこともっと勉強していけばわかってくるよ。

326:デフォルトの名無しさん
07/10/13 09:28:46
コンストラクタ=母
デストラクタ=嫁

327:デフォルトの名無しさん
07/10/14 12:45:49
環境XP professional SP2
Microsoft Visual C++ 2005 Express Edition(MSからダウンロードしてます)
SDKインストールすみ(MSからダウンロードしてます)

cppファイルとdefファイルをビルトしたいのですが
以下のメッセージがでてビルトできません。


------ ビルド開始: プロジェクト: aaaaaa32, 構成: Debug Win32 ------
コンパイルしています...
aaaaaa.cpp
c:\documents and settings\administrator\my documents\visual studio 2005\projects\123ler\aaaaaa.cpp(1) : fatal error C1083: include ファイルを開けません。'windows.h': No such file or directory
ビルドログは "file:\\c:\Documents and Settings\Administrator\My Documents\Visual Studio 2005\Projects\123ler\Debug\BuildLog.htm" に保存されました。
aaaaaa32 - エラー 1、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========

というメッセージがでて ビルドできません

どうも設定の段階でつまずいているようなのですが
また、ここに参考になりそうなコメントをみつけたのですが
どこの設定がまちがえているのかが よくわかりませんでした。
URLリンク(forums.microsoft.com)

どなたかエラーを解決する方法をおしえていただけないでしょうか?
よろしくお願いします。

328:デフォルトの名無しさん
07/10/14 12:59:49
>>327
想像だが、標準ファイル名をダブルクォーテーションで囲んでいるのではないか?
×#include "windows.h"
○#include <windows.h>

329:デフォルトの名無しさん
07/10/14 13:18:33
Expressの場合は何かのファイルを自分で編集しなきゃいけなかったような

330:デフォルトの名無しさん
07/10/14 13:21:03
URLリンク(www.microsoft.com)
とりあえず、手順3は済んだの?

331:デフォルトの名無しさん
07/10/14 22:27:56
327です

328さん、329さん、330さん ご返事ありがとうございます。
手順3というのが よくわからなくて、
(いきなり オプションとかかれても 初心者にはどこにあるかすぐには
 わかりませんでした)(メニューから オプションとかいてくれるといいかも)

いろいろと 試行錯誤して やっと意味がわかりました
Executable ファイル
Include ファイル
Library ファイル
のボタンが 右側上に あるのが やっとわかりました。

あと当方のバージョンでは そこも日本語に翻訳されており(カタカナもあり)
それで 上からそれぞれのパスを設定したら うまくいきました。

フォルダをクリックしパスの本文をダイレクトに入力するんですね(^ ^;)
(アイコンの意味も、私には わかりにくかったです)

この理解のために、Visual C# 2005の本(秀O)も買ったのですが
少しバージョンが違うようですね。(2006年8月第1版)

ここでのつまずきに かなりの時間をついやしました。
ほんとにありがとうございました。(^ ^)

このあと、日付を変更して、別なテスト(実験)をやっていたら
Microsoft Visual C++ 2005 Express Editionがうごかなくなってしまいました
(今朝インストールしなおしたばかりなのに)
(これも承認しないといけないんですね)

332:デフォルトの名無しさん
07/10/14 22:38:37
あほすぎ
C++とC#は別物
オプションなんてたいていツール→オプション(設定)でどのソフトも同じ
Windowsは初めて?
その程度の知識でプログラムを作る側のアプリを触るのはやめて下さい。

333:デフォルトの名無しさん
07/10/14 22:40:33
どうい

334:デフォルトの名無しさん
07/10/14 23:07:08
ずぶの素人に本気になって相手できるお前らがうらやましい。
まるで泣いている赤ん坊に「日本語しゃべれねぇヤツは日本人じゃねぇよ!」
ってマジ切れしてる大人のようであります。

335:デフォルトの名無しさん
07/10/14 23:09:33
やれやれ
どこに本気になっている人がいるんでしょうか?
赤ん坊に自分の見合った事をやりなさいと諭してるだけでしょ。

336:デフォルトの名無しさん
07/10/14 23:46:23
> どこに本気になっている人がいるんでしょうか?

いないなら問題ないです^^

337:デフォルトの名無しさん
07/10/14 23:49:35
VC2005EE+SDKを最初に手に取った赤ん坊には拍手を送りたい。
VC#と間違ってVC落としたのなら別だけど...

338:デフォルトの名無しさん
07/10/15 03:44:06
#と++を見間違えたのだろうか。
それとも本当にばかなんだろうか。

339:デフォルトの名無しさん
07/10/15 06:14:13
初心者のちょっとしたあやまちだろう。
おまえらが、パソコンに初めて触ったときのことをよく
思いだして見ろよ、ハゲ。

340:デフォルトの名無しさん
07/10/15 06:51:30
思い出した!うーんそんな間違いはしなかったなぁ。うん。

341:デフォルトの名無しさん
07/10/15 08:10:33
HOW MANY PAGES の意味が解りませんでした(><)

342:デフォルトの名無しさん
07/10/16 17:28:52
How many files(0-15)?がどうかしたって?

343:デフォルトの名無しさん
07/10/16 17:30:51
VC++はcl.exeとデバッガだけ使うようにしてさ
エディタはemacsとかvim使おうぜ
その辺の初心者の10倍の速度で上達するよ☆(ある意味で)

344:デフォルトの名無しさん
07/10/16 17:38:20
たまに現れるけど何がしたいの

345:デフォルトの名無しさん
07/10/16 18:26:42
Vimと言えば、初心者向けに操作方法を説明しているサイトは多いが、
始めにQuickFixコマンドの説明を含めている所は見たことが無いな。
名前付きバッファなんざ覚える暇があったら、:cwだけでも覚えるべきだ。

346:デフォルトの名無しさん
07/10/16 22:10:04
もぅ…訳がわからん
MFC使うためにオブジェクト指向プログラミングを勉強してるが、
静的メンバ変数とか、メンバイニシャライザだとか、訳がわからなくなってきた、

347:デフォルトの名無しさん
07/10/16 22:13:53
今時MFC使うなんてバカじゃねぇのw

348:デフォルトの名無しさん
07/10/16 22:18:53
>>347
今は何を使うんですか?

349:デフォルトの名無しさん
07/10/16 22:19:30
ナウなヤングに今のトレンドを教えてください。

350:デフォルトの名無しさん
07/10/16 22:24:59
.NET?
だけど俺はあえてATL/WTLを選ぶぜ!!

351:デフォルトの名無しさん
07/10/16 23:02:35
>>346
MFCには魔物が潜んでいる。
ヤツは必ずキミを破滅に導いてくれる。
もはやマイクロ・ソフトさえ見捨てたMFCを、なぜ今更?

352:デフォルトの名無しさん
07/10/16 23:18:53
Googleさんが言うには

vc mfc の検索結果 約 1,950,000 件中 1 - 10 件目 (0.06 秒) 
vc wtl の検索結果 約 225,000 件中 1 - 10 件目 (0.05 秒) 
vc c++/cli の検索結果 約 1,510,000 件中 1 - 10 件目 (0.13 秒) 

C++/CLIが意外と多いのに驚いた。

353:デフォルトの名無しさん
07/10/16 23:23:29
それ、vcとc++とcliで検索がかかってないの?

354:デフォルトの名無しさん
07/10/16 23:26:01
>>353
ぐぐれwww

355:デフォルトの名無しさん
07/10/16 23:29:52
MFCってさ、文字列だはSTLに比べて格段に扱いやすいんだよな。
ただそれだけ。それだけなの。
深みにハマれば人生を棒に振るだけだから、絶対に近づかないほうがいい。
廃人になって捨てられる悲しい人生が待っている。
「MFCやめますか?それとも人間やめますか?」

そもそも 「DLL HELL」 とい言葉はMFCから生まれたもの。
意味はDLL地獄。DLLという単語とHELL=地獄をかけてある。
ようこそMFC地獄へ!


356:デフォルトの名無しさん
07/10/16 23:35:03
std::basic_stringてSTLの問題児のひとつじゃないかw

357:デフォルトの名無しさん
07/10/16 23:37:48
そう。だからだよ、MFCの方が使いやすい。文字列だけはな。
でも、コレに騙されてはイカン!

358:デフォルトの名無しさん
07/10/16 23:50:17
すんごい同意☆
MFCはCStringだけが取り柄w
あとちょっとしたアプリはDialogベースアプリで書けるのがメリットかな。
だから俺はいつもMFCのDialogベース。
皆はなに使ってるの?Win32?

359:デフォルトの名無しさん
07/10/16 23:58:44
うん

360:デフォルトの名無しさん
07/10/17 00:07:34
MFCはAPIのラッパークラスだし何でSTLが比較対象に上がるのか理解に苦しむ。

361:デフォルトの名無しさん
07/10/17 00:51:28
>>360
初心者にはそこが分からない。
間違った方向へ進もうとしている初心者を正しく導くのが、
このスレの住人に課せられた使命。

362:デフォルトの名無しさん
07/10/17 01:22:06
MFCにはCStringがある。だからSTLと比較される。

363:デフォルトの名無しさん
07/10/17 01:44:23
MFCは CString 以外は使うな。人間性を失いたくなければ。

364:デフォルトの名無しさん
07/10/17 14:18:04
ダイアログベースのアプリならMFCが楽でいいよ。
そっから先は無理だけど。
作るもの全てがダイアログベースのアプリになってしまう。
俺がいい例。

365:デフォルトの名無しさん
07/10/17 14:50:39
たまにはドキュメントビューアーキテクチャのことも思い出してあげてください

366:デフォルトの名無しさん
07/10/17 16:23:14
>>342
青春時代を思い出して泣いた。

367:デフォルトの名無しさん
07/10/17 17:49:02
VC6.0でWindowsサービスを作っています。
作ったサービスはXPでは動作するのですが、
2003 Server ではサービスとしての起動ができません。
(正確にはWindows Server 2003 R2 Standard Edition です)

サービスマネージャで「サービスの開始」をクリックすると、
プログレスバーが出てしばらく後
「ローカルコンピュータのxxxx(サービス名)サービスを開始できません。
エラー1053:そのサービスは指定時間内に開始要求または
制御要求に応答しませんでした。」となります。

根本的に、2003 Server 向けのサービスをVC6で作ることはできないのでしょうか。
ご存知の方おしえてください

368:デフォルトの名無しさん
07/10/17 18:04:46
>>365
つーかMFCはそれがメインだと思うんだが、使いこなせない人多いんかな。

369:デフォルトの名無しさん
07/10/17 18:21:47
C++作成支援プログラムって存在しますか?
たとえばHTMLならPOWERPOINTで画像やボタンの配置などが簡単にできますがC++でも同じようなことができる
プログラムってありますでしょうか。

370:デフォルトの名無しさん
07/10/17 18:25:26
スレが違うと思われ

371:デフォルトの名無しさん
07/10/17 18:28:24
Visual C++は、まさにそういう類いのソフトウェア。

ところで、PowerPointはただの釣針だよね?

372:デフォルトの名無しさん
07/10/17 18:41:59
>>371
powerpointじゃなかったpublisherだった。
ありです。

373:デフォルトの名無しさん
07/10/17 18:49:46
>>369
GUIツールキットとかGUIビルダーとかかな・・・
スレッドあるからそこで雰囲気見てみるといいよ。

374:デフォルトの名無しさん
07/10/17 18:53:16
VC++初めて使おうと思ってるんですけどVBのプログラミング言語のところだけC++になったもの、と考えてあってますか?
もしVBのようにGUIが作れるのであれば本格的に勉強しようと思ってるんですが・・・

375:デフォルトの名無しさん
07/10/17 19:05:41
VBと違って簡単なプログラムでも大量のコードが必要

376:デフォルトの名無しさん
07/10/17 19:37:37
待て、Publisherも名前からして違う。
MS OfficeならFrontPageだろ。
まあこれも別製品に後継を譲る立場だが。

377:デフォルトの名無しさん
07/10/17 21:29:08
>>374
Standard以上のVCにはいくつかのライブラリが付いてくるんだけど
.Netを使うならVB.NetのようにGUIを作れる。ただ言語は純粋なC++じゃなく
C++/CLIになる。ライブラリ使わないなら375の言うようなことになる。

C++のライブラリもあるんだけど、必ず変なのが来て暴れるので説明省略。

378:デフォルトの名無しさん
07/10/18 03:05:31
VC++ってもしかしてCopyFile(○○,××,FALSE)に対応してない?
どなたか解決方法教えてください

379:デフォルトの名無しさん
07/10/18 03:36:31
たぶん原因が<windows.h>をインクルードしてないからなんだと思うのですが、#include文を入れると
大量にエラーが増えてしまいます・・・
どうすればいいのでしょうか

380:デフォルトの名無しさん
07/10/18 03:58:37
>どうすればいいのでしょうか
コンパイラが教えてくれるだろ。

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

381:デフォルトの名無しさん
07/10/18 12:38:16
VC2005 Proを使ってます。

クラスライブラリのヘッダにて、abstract sealedの
クラス内にtypedefとtemplateを使った定義をしました。
しかし、そのヘッダ内では使えるものの、そのほかのクラスでは使用
できません。コンパイルエラーになります(定義されていないとのこと)
(staticのメンバ関数などはOK)。
どうしたら、他クラスで使用できるのでしょうか?また、templateや
typedefをクラスライブラリで定義する場合はこの方法しかないのでしょうか?

// typedefを使用したクラス(例)
public ref class TYPES abstract sealed{
public:
typedef short test16;
typedef unsigned short utest16;};
// templateを使用したクラス(例)
public ref class METHODS abstract sealed{
public:
template <typename T1>
static T1 TEMPTEST (const T1& t1)
{return t1;}
// このメンバ関数は他クラスでも使用可能
static void TEST(int num){int i = 3;}
};


382:デフォルトの名無しさん
07/10/18 13:45:36
スレ違い?
クラスライブラリで template、typedef 使うなよ

383:デフォルトの名無しさん
07/10/18 18:56:16
>>381
いつものC++みたいに、ヘッダファイルも一緒に配ればOK。

384:デフォルトの名無しさん
07/10/18 23:02:47
STLとMFCだと、プログラミングの技術に差は出ますかね?

385:デフォルトの名無しさん
07/10/18 23:09:18
使い道が全然違う

386:デフォルトの名無しさん
07/10/18 23:15:55
MFCって次期VSから無くなるんじゃなかったっけ?
もうどうでもいいよ

387:デフォルトの名無しさん
07/10/18 23:28:16
>>386
確かMSDNにMFCに関するQ&Aがあって「MFCはなくなりませんか?」みたいなQに対して、「永久になくなりません。」ってAがあった。
ホントかよっ!と思いつつ読んでいたが、無くなるのか。。


388:デフォルトの名無しさん
07/10/18 23:28:40
今から勉強するならSTLですかね?
参考書籍等が書店に見当たらないのですが、ほとんどがMFCを説明している本でして、

389:デフォルトの名無しさん
07/10/18 23:30:38
>>364
ダイアログベースなら他のツール使えば?
ダイアログベースのアプリなんて使ったこと無い


390:デフォルトの名無しさん
07/10/18 23:34:55
>>388
MFCとSTLは全く別物
どちらもやってもよい

391:デフォルトの名無しさん
07/10/18 23:58:28
>>386-387
URLリンク(blogs.msdn.com)

どうみてもやる気満々なのだが。

392:デフォルトの名無しさん
07/10/18 23:59:39
簡単なGUIアプリケーションを作りたいと思っています。
一応、C,C++は基本的なことは理解しているつもりです。
検索したらMFCや.NET Framework、Win32APIがあったのですが。
違いもいまいちわからないのですが、どれを使ったらいいのでしょうか?
宜しくお願いします。

393:デフォルトの名無しさん
07/10/19 00:00:01
とりあえず2008ではなくならない
むしろ拡張されてる

394:デフォルトの名無しさん
07/10/19 00:03:26
けど、あいかわらずグリッド系は自前で作るしかないのね

395:デフォルトの名無しさん
07/10/19 01:14:27
Visual Basic2005とVisual studio2005って何が違うのか何方か教えてください

396:デフォルトの名無しさん
07/10/19 01:23:32
わらた

397:デフォルトの名無しさん
07/10/19 01:27:45
>>389
いまのアプリケーション開発(Win)ってトレンドってなんだろう?
Win32だとGUIを作るのが大変そうだし。
視覚的にGUIが作れるのってダイアログベースアプリくらいしか思いつかない。
あとはVBかC#。
C#も作ったコントロールやウインドがやたら画面の端に引っ付いたりして気に食うものがなかなか出来ない(と個人的に思う)



398:デフォルトの名無しさん
07/10/19 03:24:51
VC++のフォームを使ってボタンを押すと特定のファイルを移動するプログラムを作りたいんですが、
copyfile の identifier が見つかりませんでした、とビルドエラーがでます。助けてください

399:デフォルトの名無しさん
07/10/19 07:27:53
全ソースupしたら助けてやらないことも無い。

400:デフォルトの名無しさん
07/10/19 07:39:39
WinAPIのCopyFileなら
必要なヘッダ(windows.h)をincludeしてない
CopyFileなのにCopyfileやcopyfileにしてる

401:デフォルトの名無しさん
07/10/19 09:43:51
どなたか>>392お願いします。
スレ違いだったら言ってください。

402:デフォルトの名無しさん
07/10/19 09:53:57
どれでも好きなの使ったらええやん
向き不向きがあるだろ

403:デフォルトの名無しさん
07/10/19 10:59:48
C++/CLIでWindows.Formsがトレンドなんじゃないの?
とC#を使いながら言ってみる。

404:デフォルトの名無しさん
07/10/19 15:19:15
>>389
>ダイアログベースなら他のツール使えば?
ツール???何の?
ツールの話なんて誰がしてたの?

405:デフォルトの名無しさん
07/10/20 00:51:50
ソースファイルはあるのだがどうにもコンパイル出来ない・・。
替わりに俺がやってやるぜ!なんて素敵な方、いませんか?

g++とsqliteのライブラリ・ヘッダがあれば良いらしいのですが。
欲しいバイナリはwin32用です。

406:デフォルトの名無しさん
07/10/20 00:52:43
壱千万で引き受けます。

407:デフォルトの名無しさん
07/10/20 00:55:14
それ・・は・・むり・・。orz

408:デフォルトの名無しさん
07/10/20 03:28:28
おいおい、NTTデータなら800億円で受注する仕事だぜ?安いもんさ。

409:デフォルトの名無しさん
07/10/20 11:01:54
VC++2005EEを使っています。
コマンドラインからclでコンパイルのみを行ってからlinkを使った場合、
CRTやkernel32.libは指定しなくても自動的にリンクされるようですが、
デフォルトでリンクされるライブラリファイルはどこで定義されているのでしょうか?

410:デフォルトの名無しさん
07/10/20 12:54:14
Windows2000でVC++2002でアプリケーションを作成したのですが
"read" になることはできませんでしたのエラーがでても動いているので
そのまま稼動させて大丈夫でしょうか?
readってことは参照しかしてないってことですよね?

411:デフォルトの名無しさん
07/10/20 12:55:59
だめだよ

412:デフォルトの名無しさん
07/10/20 13:00:38
なぜですか?

413:デフォルトの名無しさん
07/10/20 13:12:59
>409
lib

414:デフォルトの名無しさん
07/10/20 13:16:14
>>410
コード晒してくだちゃい><

415:デフォルトの名無しさん
07/10/20 13:19:19
1万7千行ありますが

416:デフォルトの名無しさん
07/10/20 13:26:47
何でその程度で触ってんの?
一人で使うなら問題ない
それが君の力量だから

417:デフォルトの名無しさん
07/10/20 13:38:21
一人では使いませんが一人で作っています

418:409
07/10/20 13:40:40
>>413
それはライブラリファイルがある場所を示してくださっていると解釈してよろしいですか?

ライブラリがある場所ではなく、デフォルトでリンクされるライブラリファイルが
どこでどのように設定されているのかを知りたいのです。
例えばkernel32.libやCRTはデフォルトでリンクするが、
user32.libは指定しないとリンクされない…とか。

corewin_express.vspropsで設定されているライブラリファイルは
コマンドラインでのリンクには影響を与えないことを確認しました。

419:デフォルトの名無しさん
07/10/20 14:17:07
hBitmap=LoadImage(hInstance,MAKEINTRESOURCE("IDB_CHAR"),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);

if (hBitmap == NULL)
{
MessageBox(hWnd,"BitMap Load Error", "エラー",MB_OK);
return 0;
}

これでリソースからビットマップを読んでるつもりなんですが
何故、メッセージが出るんでしょうか?
#include "resource.h" も付けています。

MAKEINTRESOURCE("IDB_CHAR") の部分に
ビットマップのパスを入れても同じです。

420:デフォルトの名無しさん
07/10/20 14:26:50
GetLastError()

421:デフォルトの名無しさん
07/10/20 14:43:49
>>419
MAKEINTRESOURCE(゚⊿゚)イラネ
このマクロは、LPCTSTRにWORD型のIDを突っ込むために使う。

422:デフォルトの名無しさん
07/10/20 20:42:10
>>410
ポインタの使い方間違ってるんじゃないの?

423:デフォルトの名無しさん
07/10/20 23:41:40
「猫でも~」で、C++でもGDI+が使えることを知りました。
さっそく画像表示プログラムつくってみたんですけど、パスに漢字がはいると
表示できません。これはなぜでしょうか?


424:デフォルトの名無しさん
07/10/20 23:57:46
VC++6.0でOutlook2007と携帯W54Tのスケジュールとタスクの同期プログラム作りたいんだけど。
まずは、bluetoothの制御方法から教えてくれ。
サンプル世路


425:デフォルトの名無しさん
07/10/21 00:08:14
そのようなことができる方は初心者とは言いません。




426:デフォルトの名無しさん
07/10/21 00:26:14
初心者とは、初心の心を持っている者のことである。

427:デフォルトの名無しさん
07/10/21 00:34:12
うるせぇ!オレ様は初心者だぞ。おまいら初心者を差別するつもりか?
初心者には知る権利がある。質問する権利がある。違うか?
オレの言ってる事が間違っているなら、筋道立てて理路整然と反論してみろや!

428:デフォルトの名無しさん
07/10/21 01:12:58
俺は小心者ですが何か?

429:398
07/10/21 02:09:50
#include <windows.h>
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace testfile {
public ref class form : public System::Windows::Forms::Form
{
public:
form(void)
{
InitializeComponent();
}

protected:
~form()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private:
System::ComponentModel::Container ^components;

続く

430:デフォルトの名無しさん
07/10/21 02:11:36
#pragma region Windows Form Designer generated code
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();

this->button1->Location = System::Drawing::Point(58, 130);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(163, 74);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &form::button1_Click);

this->AutoScaleDimensions = System::Drawing::SizeF(6, 12);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->button1);
this->Name = L"form";
this->Text = L"form";
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{CopyFile("\\files\\readme.txt","C:\\program files\\testprogram\\readme.txt",FALSE);
}
};
}
長いですけどフォームつかったら自動的にいろいろ追加されてこんなふうになってしまいました。ボタンを押すとファイルを書き換えるだけなんですけど・・・
とりあえずボタン押して

431:398
07/10/21 02:17:02
そしてビルドしたときのエラー
1>------ ビルド開始: プロジェクト: testfile, 構成: Debug Win32 ------
1>コンパイルしています...
1>form.cpp
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(1) : error C2001: newline in constant
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(1) : error C2059: syntax error : 'string'
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(88) : error C2065: 'FALSE' : undeclared identifier
1>c:\documents and settings\○\my documents\visual studio 2008\projects\project1\testfile\testfile\form.h(88) : error C3861: 'CopyFile': identifier not found
1>ビルドログは "file://c:\Documents and Settings\○\My Documents\Visual Studio 2008\Projects\Project1\testfile\testfile\Debug\BuildLog.htm" に保存されました。
1>testfile - エラー 4、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

432:デフォルトの名無しさん
07/10/21 02:39:43
CopyFile で右クリックして「定義へ移動」すると勉強になると思う。

433:デフォルトの名無しさん
07/10/21 09:06:43
CLR-Windowsフォームアプリケーション で新規作成、
ボタン配置してハンドラを同じように書いてみたけど、
文字列がUnicodeでないと文句言われただけで、後は問題無かった。
form.h(1)の謎のエラーが後に影響しているのかもしれんね。
そのエラーだと、ヘッダをインクルードしているソース側に問題がある可能性もあるから、
#include "form.h" より前の部分もチェックした方が良いな。

434:デフォルトの名無しさん
07/10/21 10:03:42
現在,
Visual C++ 6.0 → .netの2005
Windows2000 → WindowsXP SP2
へようやく以降したのですが,分からぬエラーが.

6.0 + 2000 = 問題ない
6.0 + XP = 問題ない
2005+ 2000 = 問題ない
2005+ XP = 問題あり

何が問題か,ですが
テキストファイルを読み込むと終了時にアクセス違反
というエラーがでます.
テキストファイルを読み込まなければエラーは起きません.

何かXPと2005の組み合わせで気をつけなければ
ならないことあるのでしょうか?

435:409
07/10/21 10:21:58
>>409 >>418
どなたかご存知の方がおられましたら、教えてください。

436:デフォルトの名無しさん
07/10/21 12:43:51
>>421
hBitmap=LoadImage(hInstance,"C:\\test.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
なら、その後Bitbltで描けるようですが、
hBitmap=LoadImage(hInstance,MAKEINTRESOURCE("IDB_NULL"),IMAGE_BITMAP,0,0,LR_DEFAULTCOLOR);
これだと駄目です。MAKEINTRESOURCEを取っても駄目です。

パスで指定 → OK
リソースから → 駄目

もう、どうしたらいいか・・・

437:デフォルトの名無しさん
07/10/21 12:48:21
>>436
GetLastError()で見たのかよ低脳
""取ってみ
MAKEINTRESOURCE("IDB_NULL")→MAKEINTRESOURCE(IDB_NULL)


438:デフォルトの名無しさん
07/10/21 12:51:43
>>434
自分の2005+XP SP2では問題は発生しない。
2000->XP SP2 はもちろんクリーンインストールだよな。

>>435
コンパイラの既定CRTライブラリは/MTなので、
出力されたオブジェクトファイルにlibcmt.libのリンク指示が含められている。
で、リンク時にCRTライブラリによってエントリポイントが解決された結果、
それが依存するライブラリもリンクされている。

CRT内部で何をしているか調べるのは正直骨だし、
とりあえず宣言しとけばいいんじゃね?被っても問題無いし。

ちなみに、エントリポイントを自分のコードで解決してCRTを一切リンクしなかった時は
kernel32.libすらリンクされなかったので、あくまで依存関係に従っていると考えて良さそう。

>>436
リソースの識別には、16ビットIDと文字列を対応付ける二つの方法がある。
"IDB_NULL"という文字列を対応付けているなら "IDB_NULL" で良いが、
resource.hのIDB_NULLのID定義を介しているなら、MAKEINTRESOURCE(IDB_NULL)だ。

439:デフォルトの名無しさん
07/10/21 12:58:40
画像はウィンドウクラスでカーソルとアイコンの登録しかやったことないけど
メニューの指定でもいろいろ悩んだなぁ・・・。

とりあえずわかったことは
引数として文字列(のポインタ)が要求されるのに
resource.h でリソース名に定数振られてて
そのせいでうまくいかないっぽいってことはわかった。
画像とかの ID とかを "" で囲んで
resource.h から #define の定義を消すとうまくいってた。

正当なやり方はよくわかってない。

440:デフォルトの名無しさん
07/10/21 13:05:00
よくわかってない奴は黙ってろや
あほが余計悩むだろ

441:デフォルトの名無しさん
07/10/21 13:10:39
>>437,438,439
" を外しても同じです。
エラーなどは出ません。

一応、使ってるのがVC5なんですよ。これって関係あるんかな?


GetLastErrorも調べてみます。

442:デフォルトの名無しさん
07/10/21 13:17:43
たまに、resource.hに使われなくなったIDが残ったりするから、それかもしれないな。
.rcファイルとresource.hを目視で確認してみ。

443:デフォルトの名無しさん
07/10/21 13:21:34
何か理由があってVC5なんて使ってるの?
新しいのに移行する時に余分に時間が掛かるだけだし情報も少ないよ

444:デフォルトの名無しさん
07/10/21 13:27:34
リソースビューでその画像が "IDB_NULL" ってなってるんじゃないの?
"" とって IDB_NULL にしてみたら?

445:デフォルトの名無しさん
07/10/21 13:33:21
>>444
画像名はリソースビューで見ても IDB_NULL で
"" は付いていません。

本当に謎だ・・・

446:デフォルトの名無しさん
07/10/21 13:37:03
>>445
今手元に環境あるの?

447:409
07/10/21 13:57:16
>>438
オブジェクトファイルにコンパイラからのリンク指示が含まれているということなので、
dumpbinを使ってオブジェクトファイルの内容を調べてみたところ、libcmt.libのリンクを
指示するリンカオプションが含まれていました。

また同様に、libcmt.libをdumpbinで調べてみたところ、kernel32.libへのリンクが
指示されていました。


おかげで疑問が解決しました。ありがとうございました。

448:デフォルトの名無しさん
07/10/21 14:59:09
OS:XP Pro sp2で下記URL先のWindows アプリケーションがアクティブにならない状態です。
解決策はあるのでしょうか?
URLリンク(forums.microsoft.com)

449:デフォルトの名無しさん
07/10/21 15:04:10
解決してんじゃん
いろいろやってみろよ
お前には無理だけど

450:434
07/10/21 15:22:29
>>438
クリーンインストールです.

サブPCが2000のままだったのでVC++6.0を入れて
メインPC(XP)の.netの2005とモニタ並べて
まったく同じ処理をやってもメインPCの方だけアクセス違反が….
2005では文字コードをUnicode→マルチバイトへの変更が差分です.

451:デフォルトの名無しさん
07/10/21 15:29:12
同じじゃないじゃん

452:デフォルトの名無しさん
07/10/21 16:36:59
>>446
あります。

一応、LoadImage後に
if (hBitmap == NULL)
{
MessageBox(hWnd,"BitMap Load Error", "エラー",MB_OK);
return 0;
}
で調べてみると メッセージが出ます。

453:デフォルトの名無しさん
07/10/21 16:41:48
あるのに遅すぎんだよ

454:デフォルトの名無しさん
07/10/21 17:56:53
LoadImageで読み込めないフォーマットのビットマップの可能性もあるから、
まずは、FindResourceでリソースを見つけられているかどうか確認した方が良いな。
生成された実行ファイルをIDEで開けばリソースを覗けるはずだから、
IDが正しく対応しているかの確認も。

455:デフォルトの名無しさん
07/10/21 18:00:58
LoadImageで読み込めてるって書いてある

456:434 450
07/10/21 18:06:57
>>451
①windowsXP (.NETの2005)で文字コードをマルチバイト,
②windows2000(.NETの2005)で文字コードをマルチバイト,
同じ条件で①では終了時エラー,②では正常終了です.
まったく同じ条件です.

XPのSP2で何か気をつけるべきことがあるのかと考えていますが,
まだ原因が特定できません.

457:デフォルトの名無しさん
07/10/21 18:12:33
今まで問題のあるコードがたまたま動いていただけなんじゃねぇの。

458:434 450 456
07/10/21 18:22:27
>>457
うーん,その可能性も否定できないんですが
実際に複数台のPCで1日中ずっと処理を走らせて,
3年間,エラーが起きることはなありませんでした.

エラーが起きる部分(ファイル読込)は少なく見積もって
数万回は走っているはずです.
終了時にエラー(アクセス違反)は一度も出ていません.

現在調べている時は余計な部分を削除していき,
ファイル読込部分しか書いていないです.

459:デフォルトの名無しさん
07/10/21 18:33:12
自分は絶対間違ってないという前提なら
ここで質問されても答えようがないから
マイクロソフトに直接聞け

460:デフォルトの名無しさん
07/10/21 18:34:41
短いならコード出すべし。

461:デフォルトの名無しさん
07/10/21 18:36:08
Unicodeなら問題ないの?

462:デフォルトの名無しさん
07/10/21 18:42:48
どうせバッファオーバーフローとかだろ

463:デフォルトの名無しさん
07/10/21 19:14:49
どうしてデバッガで追うとかしないの?

464:自作ブラウザ
07/10/22 17:48:37
VC++ 6.0 で htmlview を基本クラスにして、ブラウザを作成した時には
マウスによるクリック処理をプログラマがコードを追加して実装しなくても、
左ボタン処理等が実装されていますが、これをカスタマイズしたい時には
どうすればよいのでしょうか?

465:デフォルトの名無しさん
07/10/22 17:52:14
>>464
つ[JavaScript]

466:デフォルトの名無しさん
07/10/23 16:00:19
windows フォームアプリケーションを使ってるんですがC++と少し違いを感じました。
messagebox.showをmessagebox::showと書いたり
messagebox以外にもいろんな機能を使いたいんですがなんと入力すればいいのかわかりません。
ファイルを特定フォルダに作成したり、特定なファイルを上書きしたり、別ウィンドウを開いたりしたいんですが
誰か教えてください


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch