09/03/09 21:12:11
>>94
URLリンク(noribeat.s38.xrea.com)
96:デフォルトの名無しさん
09/03/09 22:45:10
>>95
ありがとうございます。
ですがリンク先の指定どおりにActiveXの挿入を行っても、
Microsoft FlexGrid Control, version 6.0が選択肢の中にありません。
97:デフォルトの名無しさん
09/03/09 22:56:19
>>94
そこらへんのVBランタイムを入れるとついてくることが多い。
MSFLXGRD.OCX入りのVB6ランタイムを探すんだ。
あとはこれで。
URLリンク(support.microsoft.com)
98:94
09/03/09 23:10:50
自分のPCを検索して見ましたがMSFLXGRD.OCXは存在しないようです。
あと実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない
(自分ですらめんどくさいのにもっと素人なら嫌気がさしてやめてしまうかもしれない)
のですが、そうなるともう自力でピクチャーボックスに描画するような形で作るしか無くなってしまうのでしょうか?
99:デフォルトの名無しさん
09/03/09 23:40:09
ブラウザのActiveXコントロールと同じだからインストールは楽だよ
100:デフォルトの名無しさん
09/03/10 01:45:05
>実行環境でレジストリへの登録が必要になるような面倒な作業をユーザーに強いたくない
ソフトのインストール時にREGファイルを食わせてやればいいだけ。
それをユーザに強いたら・・・そりゃダメだよな。
ま、Windowsの文字コード表程度の表なら、自前で作っても手間はそんなにかからないがね。
101:デフォルトの名無しさん
09/03/10 17:07:09
VC++2005でMFCアプリに名前空間名に"interface"って使えない?
c2059というコンパイルエラーになる。
/clrオプションは使っていないし、
非MFCアプリやstdafx.hをincludeしないとコンパイル通るし
C++/CLIで予約語になってるeventとか他の単語は
使えるから単なるバグですかね?
102:デフォルトの名無しさん
09/03/10 17:21:37
最近変なやつ多いな
同一人物?
103:デフォルトの名無しさん
09/03/10 17:29:53
>>101
COM関係のヘッダのどれかで、#define interface structと定義されている。
104:デフォルトの名無しさん
09/03/10 19:05:33
#include <stdio.h>
int main(void)
{
printf("Hello!\n");
return 0;
}
と
#include <iostream>
int main()
{
std::cout <<"Hello!" << std::endl;
return 0;
}
見るサイトによって書き方が違うけど結果は似たようなのがでるんですけど
これはどういう違いがあるんですか?
105:デフォルトの名無しさん
09/03/10 19:15:37
C/C++
106:デフォルトの名無しさん
09/03/10 19:26:37
>>105
どっちがCでどっちがC++?
107:デフォルトの名無しさん
09/03/10 19:31:56
ggrks
108:デフォルトの名無しさん
09/03/10 20:45:52
スレを勃てるまでもないC/C++の質問はここで 8
スレリンク(tech板)
109:デフォルトの名無しさん
09/03/12 14:22:28
>>106
上がCで下がC++
110:デフォルトの名無しさん
09/03/12 16:45:27
Visual Studio 2005 Vistaです。
6つのピクチャボックスに表示させた6枚の画像
(横3枚の2段)から1枚を選択(ダブルクリック)して、
選択した画像を左上のピクチャボックスの表示し、
選択した以外の画像は消去する、
といったことはどのようにして実現できますでしょうか。
111:デフォルトの名無しさん
09/03/12 17:33:54
表示と消去ができるならクリックしたタイミングで好きなようにやればいい
112:デフォルトの名無しさん
09/03/12 17:55:36
>>110
・6つのピクチャボックスに SS_NOTIFY スタイルを付加する。
・あとは STN_DBLCLK メッセージが通知されたときに、親ウィンドウに対して
InvalidateRect( NULL) を投げればいい。
それが 「初期の描画なのか」 「ダブルクリック後の描画なのか」 「どれが選択されたのか」
を判断する仕組みは、当然必要だがね。
113:110
09/03/12 18:40:15
>>111 >>112
アドバイスありがとうございます。
なんとかできました。
114:デフォルトの名無しさん
09/03/13 20:10:04
VisualC++.NET(2003)を使ってます。
今まで作ってたソリューションをセカンドマシンでもいじるために
メインマシンの共有フォルダにソリューションのフォルダごとコピー
↓
セカンドマシンにブリーフケース作ってそのフォルダを持ってくる。
という風にしようとしたのですが、メインマシンのソリューションをコピーした段階で
元々正常にビルドできて実行できてたものが正常に動きません。
コピー先ソリューションの動作
①開始ボタンを押すと毎回「プロジェクトの構成が変更されています。ビルドしますか?」のダイアログが出る。
・①でいいえを選ぶと何事も無く動く
・①ではいを選ぶと元々出なかったエラー「ビルドエラーが発生しました。続行しますか?」というダイアログが出る。
・BuildLog.htmを見ると 'CDHtmlDialog' : 定義されていない基本クラスが宣言されています。などを筆頭に
ずらずらとエラーが出ている。
これは元のフォルダでは出ない。
初心者でソリューションの構成ファイルなどのどこかに絶対パスがあるのか、見当も付きません。
プログラム自体は絶対パスを指定するような部分は有りません。
どなたか、解決のヒントでも教えていただけないでしょうか?
また、個人で2PCでプログラム開発する場合VSSのような物(多分有料ソフトですよね?)
を使わずに同期とったりバージョン管理する良い方法があれば教えて頂けないでしょうか?
115:114
09/03/13 20:48:02
もう一度やってみたら上手くいきました。
何故なのか分かりませんが一回目にやったコピーでファイルがおかしくなっていたのかもしれません。
116:791 + 792
09/03/13 22:48:32
エラーUZEEEEEEな状態助けてくださいな。
#include "stdafx.h"
#include <iostream>
int main()
{
int a;
int b;
int r;
cout << "割られる数は?(整数)";
cin >> a; // ここで数値を読み取っている
cout << "割る数は?(整数)";
cin >> b; // ここで数値を読み取っている
r = a % b;
cout << "割った余りは" << r << "だよ" << endl;
}
エラーはrror C2065: 'cout' : 定義されていない識別子です。
こんなのが endlだったりcinだったり6個あった。
ソースおかしい?
117:デフォルトの名無しさん
09/03/13 22:54:19
>>116
名前空間(namespace)について勉強しろ
118:デフォルトの名無しさん
09/03/13 23:05:18
>>116
stdafx.h を開いて
using namespace std;
と書け。
119:デフォルトの名無しさん
09/03/13 23:15:13
>>118
それやっちゃうと名前空間を定義してる意味がなくなるので
あまり人にすすめることではないかと…
120:791 + 792
09/03/14 00:12:02
ますます訳が分からなくなった。
namespaceで何処を囲えば良いのかさっぱり。
どこかで名前が被ってるからnamespace使えってことで合ってるんだよね?
知らない間にエラーが102個に増えた。
何処が駄目で何でnamespaceが必要なのかまだ理解できてない俺・・・
121:デフォルトの名無しさん
09/03/14 00:22:36
URLリンク(homepage2.nifty.com)
stdafx.hなんて捨ててしまえと思わなくもない
122:デフォルトの名無しさん
09/03/14 00:39:30
>>120
要は、std という名前空間をどこで使いたいか、だ。
int main() のなかだけで使いたいなら int main() の中に書けばいい。
int main() の書かれている cpp ファイルの中で使いたいなら、#include <iostream> の下あたりに書く。
いつでもどこでも使いたいなら stdafx.h に書く。(このときの注意点は >>119)
123:デフォルトの名無しさん
09/03/14 05:28:15
バカみたいな質問で申し訳ありません。猫でもで勉強してて今まで、VC++2008でCの勉強をやってたんですが、C++をやり始め、
1>.\ex01.cpp(1) : fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory
というエラーが出ました。これはiostream.hが標準ライブラリにないという事ですよね。
色々、ググってみたんですが、標準ライブラリの宣言で躓くなんてバカな奴はいないのか、
どこでダウンロードするのかどうやって標準ライブラリに追加するのかさっぱりわかりません。
教えていただけると助かります<m(__)m>
124:デフォルトの名無しさん
09/03/14 06:53:08
C++初心者用のスレへ行った方がいい
125:デフォルトの名無しさん
09/03/14 07:21:13
>>123
<iostream.h>は昔の存在。だから最近のVisual C++には入っていない。
<iostream>をインクルードして、coutとかcinとかはstd::cout、std::cinなどのようにstd::を付けろ。
詳しくは最近の入門書を読め。
126:デフォルトの名無しさん
09/03/14 07:57:31
拡張子を.cppにしたときから
インクルードファイルは全て.h抜きを覚悟すべきだな
127:デフォルトの名無しさん
09/03/14 08:24:13
>>123
猫でも…(ryは、難点として、標準ライブラリのインクルードがおかしいってのがある。
あきらめて書籍買え。その方が実りあるよ。
128:791 + 792
09/03/14 10:31:41
int main(){
using namespace std;にしたら下のエラーが出たけど、ググったら解決した。
コンソールアプリケーションでプロジェクトを作らないと下のエラーが出る見たいだから
プロジェクトを作り直してやったらすんなり。
MSVCRTD.lib(crtexew.obj) : error LNK2019: 未解決の外部シンボル _WinMain@16 が関数 ___tmainCRTStartup で参照されました。
C:\Documents and Settings\Nanashi\My Documents\Visual Studio 2008\Projects\null1\Debug\null1.exe : fatal error LNK1120: 外部参照 1 が未解決です。
まだnamespaceの意味プーだけど、>>121が教えてくれたサイトを見たりして
理解できるようにがんばる
>>122もありがとう,助かったよ。
129:デフォルトの名無しさん
09/03/14 10:36:04
デフォルトエントリポイント
コンソールアプリケーション→main
Windowsアプリケーション→WinMain
※マルチバイト文字セットの場合
130:791 + 792
09/03/14 10:58:01
>>129
ありがとう。
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int)
でやってみたけど、デバッグはエラーないけど
デバッグなしで開始しても何も出てこない・・・
これはもう少しC++が分かるようになれば出てくるんだよね?
ちゃんとしたウィンドウとかダイアログが出せるようになるのが楽しみだ
131:デフォルトの名無しさん
09/03/14 11:13:00
>デバッグなしで開始しても何も出てこない・・・
Windowsアプリケーションなんだから、ウィンドウを作らないことには何も出てこない。
132:デフォルトの名無しさん
09/03/14 15:19:49
ある環境をリンク中に、下記エラーが出るようになってしまいました。
>LIBCMTD.lib(dllcrt0.obj) : error LNK2019: 未解決の外部シンボル __imp__GetCurrentThreadId@0 が関数 __CRT_INIT@12 で参照されました。
PlatoformSDKの関数らしいですが、どのライブラリが足りないかご存じの方いませんか?
133:デフォルトの名無しさん
09/03/14 15:48:20
CRT_INITで参照するものが不足するか?
環境の問題だろ
134:デフォルトの名無しさん
09/03/14 18:04:29
>>130
C++ができるかどうかとWindowsプログラミングは全く関係ないぞ。
現に、猫でものWin32編は基本的にCだけでそういうことをやっている。
135:791 + 792
09/03/14 18:38:52
>>131
確かにWindow作らなきゃ何も表示されなくて当たり前だった。
>>134
ごめん、まだC++否プログラミング始めて1日くらいしか過ぎてないんだ。すまない
Windowsプログラミングとは関係ないのか、猫でもにはWindowsSDKとかあったな。
if関数に少しだけ感動した,いろいろ応用が利きそうな関数だ。
136:デフォルトの名無しさん
09/03/14 18:54:15
if関数は初めて聞いた
137:デフォルトの名無しさん
09/03/14 19:01:40
VBAにiif関数があってそれのことかと思た
138:132
09/03/14 19:54:13
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
とパス指定すべきところを、
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib\x64
としてました。。。(笑
こんなんですごい時間かかった(汗
139:123
09/03/14 22:21:55
ありがとうございますm(__)m
明日、本屋行って標準ライブラリ集でも買ってきて、猫で続きをやろうと思います。
140:デフォルトの名無しさん
09/03/16 17:45:39
入力支援がちっとも支援してくれません。
たまに入力候補一覧のリストボックスが出てきたと思っても、
必要なものを探すのにエライ手間がかかります。
どうしたらいいですか。
141:デフォルトの名無しさん
09/03/16 18:49:28
あれはMFCのためにある
142:デフォルトの名無しさん
09/03/17 00:54:01
初歩的な質問ですが、
どこかの設定を無意識に変えてしまったせいなのか
構成の種類をDLLにした場合でも、自動でLIBを作成してくれなくなりました
どこの設定をかえればいいのか教えていただけるとありがたいです。
VC++2008EEを使用しています。
143:デフォルトの名無しさん
09/03/17 01:40:35
自己解決しました
EXPORTを書き忘れてましたorz
144:デフォルトの名無しさん
09/03/18 19:59:37
窓の杜にあるようなソフトもvc++で作れますか?
145:デフォルトの名無しさん
09/03/18 20:46:28
>>144
作れます。初心者を脱出してC++とWinのAPIをめっちゃ勉強すれば。
146:デフォルトの名無しさん
09/03/20 10:49:08
sdkddkver.hを見る限り、_WIN32_WINNTを適当な値に設定して、
その他WINVER等の定義は任せてしまった方が良いのでしょうか。
147:デフォルトの名無しさん
09/03/20 11:07:49
ヘッダファイルの読み込み順序による。
148:デフォルトの名無しさん
09/03/20 11:16:32
ありがとうございます。たしかにそうかもしれませんね。
いつもwindows.hからインクルードしてたので、順番のことは気にも留めてませんでした。
149:デフォルトの名無しさん
09/03/20 12:22:34
始めようと思うんですが、公式ページの「Web インストール (ダウンロード)」をクリックしても
エラーページに飛ばされてダウンロードできません。
同じ症状の方いますか?
Firefoxのエラー文によると
>サイトアドレスは有効なようですが、接続を確立できませんでした。
150:デフォルトの名無しさん
09/03/20 12:36:09
Visual Studio 2008 Part 15
スレリンク(tech板)
151:デフォルトの名無しさん
09/03/20 12:57:54
download.microsoft.comに繋がらないようです。
自分だけ?
152:デフォルトの名無しさん
09/03/20 13:08:15
と今日の日記に書いておこう
153:デフォルトの名無しさん
09/03/22 12:56:07
コメントを関数の前に書くと
その前の関数のグループになってしまいます
コメントがグループの初めになるように任意に修正する方法はないでしょうか
ご存知の方お願いします
154:デフォルトの名無しさん
09/03/24 21:57:11
Microsoft PressのVisual C++.NET実践講座 Vol.1基礎編の本には、
Console::WriteLine(S"Hello World");
のようにダブルクォートで囲った文字列の前にSが付いていて、それについて
何の説明も書いてないけど、このSって何。
155:デフォルトの名無しさん
09/03/24 22:04:42
わかったSystem::String*だ
156:デフォルトの名無しさん
09/03/25 02:18:26
visual cで作られたアプリケーションがあるのですが、
これを改造して自分のほしい機能を付け加えています。
自分で追加した変数やマクロなどとそうではない箇所とで、識別子(関数名、変数名、マクロ名)を明確に分けたいのですが、
新たに追加した部分にルールをつけるだけでなく、
改造元の識別子のすべてに対して、「kaizoumoto_」「KAIZOUMOTO_」のような接頭語をつけたいと考えました。
そのようなことを一括で行うことは可能でしょうか。
改造元から現在の状態までの間の追加は失われてかまいません。(改造元があって、それの識別子を一括で変更したいです。)
というか、Visual Cと全然関係ないですか。すみません。
ご存知でしたら、Helpをお願いします。
157:デフォルトの名無しさん
09/03/25 10:34:11
VC++のエディタウィンドウの行間をひらげることってできますか?
フォントやエディタの設定項目を調べて見ましたが、うまくできませんので、お願いします。
158:デフォルトの名無しさん
09/03/26 12:45:11
>>156
正規表現
159:デフォルトの名無しさん
09/03/26 12:46:58
>>157
ひらげるってw
160:デフォルトの名無しさん
09/03/27 06:41:15
2008 Express Edition使ってて外部エディタで編集してるから
これのエディタは見るだけにしたいんだけど
編集禁止状態に出来ない?
161:デフォルトの名無しさん
09/03/27 09:02:01
>>160
閉じられるって。
162:デフォルトの名無しさん
09/03/27 09:14:25
俺が思うに閉じたら見られないのではなかろうか
163:デフォルトの名無しさん
09/03/28 05:06:11
VS2005, XPでWin32プロジェクトを作成中です。
CreateWindowでウィンドウをつくり、さらにCreateWindowでボタンを追加しました。
マウスによる指定とカーソルキーによって、
メインウィンドウのある領域でカーソルが移動するようになっています。
(WM_LBUTTONDOWN, WM_KEYDOWN)
しかし領域外につくったボタンを押すと、
マウスによるカーソルの移動は受け付けるものの、カーソルキーを押しても反応がありません。
一度ウィンドウを非アクティブにし、再びアクティブに戻すと動作は正常に戻ります。
ボタンはWM_COMMANDで処理を行わずとも、押した時点で動作がおかしくなってしまうようです。
ご教示お願い致します。
164:デフォルトの名無しさん
09/03/28 12:44:29
カメラ目線
165:デフォルトの名無しさん
09/03/28 15:38:35
一応、ソースプログラム出さない?
166:デフォルトの名無しさん
09/03/28 17:19:50
ソースもなにもカーソル戻すだけだろ
167:163
09/03/28 17:57:29
全体を添付した方が望ましいのでしょうか 宜しくお願い致します
case WM_COMMAND:
switch (LOWORD(wParam)){
case Button25: break;
default: return DefWindowProc(hWnd, message, wParam, lParam);
}break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
Rectangle(hdc,xwidth*(xx+1),ywidth*(yy+1),xwidth*(xx+2),ywidth*(yy+2));
EndPaint(hWnd, &ps);
break;
case WM_LBUTTONDOWN:
x = LOWORD(lParam); y = HIWORD(lParam);
if(x>xwidth && x<xwidth*(member+1) && y>ywidth && y<ywidth*(member+1)){
xx = x/xwidth-1; yy = y/ywidth-1;
InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd);
}break;
case WM_KEYDOWN:
switch(wParam){
case VK_RIGHT: if(xx<member-1) xx++; break;
case VK_LEFT: if(xx>0) xx--; break;
case VK_DOWN: if(yy<member-1) yy++; break;
case VK_UP: if(yy>0) yy--; break;
}
InvalidateRect(hWnd, NULL, TRUE); UpdateWindow(hWnd);
break;
168:165
09/03/28 20:13:06
case Button25: を押したら、break; の前にコントロールを戻すために何かするんじゃないか。
何の関数呼べばいいのかわからないけど、ここまでだ。
169:デフォルトの名無しさん
09/03/28 20:49:47
ソース見る必要あったのか?
170:デフォルトの名無しさん
09/03/28 20:59:43
>>163です
SetFocus( hWnd ); でした!
解決致しました。ありがとうございます!
171:デフォルトの名無しさん
09/03/29 13:15:48
1. マネージC++のインターフェイスは、純粋仮想関数だけを持つ抽象クラスみたいなものか。
2. マネージC++のシールクラスは、自分の作った知的財産であるクラスを「お前らなんかに
継承してパクらせてやるわけにはいかん」ためにあるのか。
3. マネージC++の例外の__finnallyブロックは、例外の有無に関係なく実行するということ
だが、そんなのなくても、いずれの場合もcatchブロックの次を普通に実行するみたいで、
どのように違いがあるのかよくわからん。
4. 派生クラスで基底クラスのメンバー関数をオーバーライドできるのは、別に仮想関数でな
くても可なのか。
5. 4が正しいと仮定して言う。派生クラスのアドレスを、基底クラスのポインターに代入して、
そのポインターを使って、派生クラスでオーバーライドされたメンバー関数を呼び出した
ときの扱いはどうなのか。非仮想関数なら、基底クラスのメンバー関数を呼び出して、仮想
関数なら、派生クラスのメンバー関数を呼び出すのではないかと思うが、それで正しいか。
172:デフォルトの名無しさん
09/03/29 13:33:33
誤爆です
173:デフォルトの名無しさん
09/03/29 13:48:12
違う誤爆ではない。
邪魔しないでくれ。
174:デフォルトの名無しさん
09/03/29 13:53:52
あっ、確か__finayllyはreturnされると呼び出し元に戻る前に、そのブロックが
実行するってことか。何かに書いてあったような記憶が。
175:デフォルトの名無しさん
09/03/29 13:57:23
あっ、良く確かめずに書いてすみません
ちゃんと調べてから書き直します
176:デフォルトの名無しさん
09/03/29 14:00:47
>>172 >>175
おい、偽者が何やってるんだ。
177:デフォルトの名無しさん
09/03/29 14:05:07
C++/CLIスレのがよさげ
あと、試してみたほうが早い気が
178:デフォルトの名無しさん
09/03/29 14:05:13
以上すべて自演でした
179:デフォルトの名無しさん
09/03/29 14:07:30
どうも失礼しました
これからは自分で試してから書くことにします
180:デフォルトの名無しさん
09/03/29 14:09:30
>>178 >>179
こら、いい加減にしろ
181:デフォルトの名無しさん
09/03/31 14:54:21
どなたか>>157について、よろしくお願いしますm(_ _)m
182:デフォルトの名無しさん
09/03/31 15:03:19
無理じゃない?
行間の空くフォント探してくるとか
183:デフォルトの名無しさん
09/03/31 19:19:04
できないことはないな
ただ全然興味ないから完全スルー
184:デフォルトの名無しさん
09/03/31 22:01:59
VC++ 2008 EE
0からのゲームプログラミングというサイトでスケルトンプログラムを
ダウンロードしビルドしたのですが、
1>c:\users\○○○\documents\visual studio 2008\projects\samplestg\source\application.cpp(537) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
というエラーが出てしまい実行できません。
Winプロジェクトで空のプロジェクト選択をし、プロジェクトのプロパティで
プリコンパイル済みヘッダーを使用するに設定してもできませんでした。
よろしくお願いします。
185:デフォルトの名無しさん
09/03/31 22:09:29
スケルトンだったら自分で作ったスケルトンとくらべてみればわかるだろ
186:184
09/03/31 22:29:16
私自身はスケルトンプログラムは作っていません。
0からのゲームプログラミングというサイトで、
サイト管理人が作ったスケルトンプログラムをダウンロードし、
ビルドしてくださいとあったので流れに従って進めたところ、
エラーが表示され先へ進めなくなったしまったんです。
187:デフォルトの名無しさん
09/03/31 22:38:30
そこのサイト管理人にビルドできないと言ってやればいいだけ
188:デフォルトの名無しさん
09/03/31 22:39:13
stdafx.cpp→プリコンパイル済みヘッダーを作成する
189:デフォルトの名無しさん
09/03/31 23:29:27
2004年ごろから放棄されてるサイトのようだから
今大幅修正しないと使いものにならなくて投げ出したんだろ
190:デフォルトの名無しさん
09/04/01 09:58:12
「プリコンパイルヘッダーを使用しない」にしてみるという知恵は回らんのかw
191:デフォルトの名無しさん
09/04/01 11:26:05
一行追加すればいいじゃん
192:デフォルトの名無しさん
09/04/01 18:30:28
>>172 >>175 >>178 >>179 は、派遣を解雇されたからって、最低な書き込みするな。
書いた本人のふりして妨害するな。
193:デフォルトの名無しさん
09/04/01 19:05:59
>>192
そんな怒ってんなよ
たかが2chにマジになるな。
だいたい派遣を解雇されたヤツは今頃2chなんてやってらんねぇんじゃねぇのかな?
194:デフォルトの名無しさん
09/04/01 21:49:18
10年ほど前に買った新Visual C++6.0 シニア編ですが
その中のchapter 26コントロールをコードで配置するで
CButton* myBTN = new CButton();
myBTN->Create("実行", BS_PUSHBUTTON | WS_VISIBLE , CRect(10, 10, 100. 40), this, IDC_BUTTON1);
などとありますがnewを使っているのにDestroyWindowを使っている形跡がありません。
CFramewndなどでは勝手にdelete this などとしているようですがCButtonとかは何もする必要はないのでしょうか。
このサンプルプログラムではCDialogを継承したものです。
リソースエディタ以外で手動で作ったコントロールも自分で削除しなくてもいいのでしょか?
195:デフォルトの名無しさん
09/04/01 22:19:00
new したものは delete しなきゃダメ
196:デフォルトの名無しさん
09/04/01 22:32:38
>195
CButtonはCWndの継承ですがディストラクタで勝手に
NCDestroyで勝手にやってはくれないのでしょうか?
私自身もあんまりよく分かっていないのですが。
197:デフォルトの名無しさん
09/04/01 22:36:18
CButtonのデストラクタにブレイクポイント置いて、デバッグ開始したらわかるんじゃね?
198:デフォルトの名無しさん
09/04/01 22:41:05
>>196
CWnd のソース読めばわかることだろ。MFC のソースは HDD の肥やしじゃないぞ。
199:デフォルトの名無しさん
09/04/01 22:46:11
>>197
んなことしなくても、デバッグモードで実行したら、終了時にメモリーリークがあれば表示される。
ちなみに、CWnd::PostNcDestroy() のソースはこうなっている。
void CWnd::PostNcDestroy()
{
// default to nothing
}
200:デフォルトの名無しさん
09/04/01 22:55:01
>newを使っているのにDestroyWindowを使っている形跡がありません
そもそもこのふたつには関連性がないだろうに
201:デフォルトの名無しさん
09/04/01 23:21:50
DestroyWindow
指定されたウィンドウが親ウィンドウやオーナーウィンドウのときは、
その子ウィンドウやオーナー付きウィンドウも自動的に破棄します。
このとき、先に子ウィンドウやオーナー付きウィンドウを破棄してから、
親ウィンドウやオーナーウィンドウを破棄します。
なのでDestroyWindowは不要
ただしクラストやメモリ管理とは別問題
202:デフォルトの名無しさん
09/04/02 00:12:30
>ただしクラストやメモリ管理とは別問題
確かに別問題ですね。
新Visual C++6.0 シニア編にdelete処理が
載っていないのでおかしいと思ってたのですが
それとWindowの破棄とは直接関係ないですね。
どこかでdelete処理されているのではないかと思って
相談したのですが自分でやらないとダメですね。
203:デフォルトの名無しさん
09/04/02 00:48:24
そろそろ、新Visual C++6.0 シニア編を燃やして
本格的にWindowsプログラミングを学んではいかがでしょうか。
204:デフォルトの名無しさん
09/04/02 03:24:54
C++でDTM支援ソフトを作ったことがある人はいませんか?
Dominoみたいなのが作れるようになるまでになりたい…。
出来る限りフリーで…。
205:デフォルトの名無しさん
09/04/02 10:08:38
16bitのころシーケンサ書いたけどな、、、最近はそっち方面やってないな
って聞いてどうすんだw
206:デフォルトの名無しさん
09/04/02 13:04:20
ぶっちゃけCでも何でも余程技術がない限りライブラリを使うことになりますよね
だったら最初からスクリプト言語でいいじゃんって思ったんですが
間違ってます?
207:デフォルトの名無しさん
09/04/02 13:27:08
それでいいと思うならそれでいいだろ。
人に聞くことでもないな。
208:デフォルトの名無しさん
09/04/02 14:35:31
>>206
現実スクリプト言語が流行ってない事を考えれば自ずと答えは導き出せるのでは
209:デフォルトの名無しさん
09/04/02 15:08:24
スクリプトキディってことじゃね?
210:デフォルトの名無しさん
09/04/02 20:20:29
でもスクリプト言語ってはっきり言っているような。
>>206
がスクリプト言語という言葉を理解しているという仮定の下で話すと、
>ライブラリを使うことになり
↓
>スクリプト言語でいいじゃん
ここの論理的な演繹がおかしいと感じるのは俺だけではないはずだ。
211:デフォルトの名無しさん
09/04/02 22:52:45
Console::WriteLine(S"柔道や剣道や空手ではなく、ボクシングをしないとコンパイルできないのか。");
Console::WriteLine(S"スーパーヘビー級: {0}kg以上", __box(91));
Console::WriteLine(S"ヘビー級: {0}-{1}kg", __box(81), __box(91));
Console::WriteLine(S"ライトヘビー級: {0}-{1}kg", __box(75), __box(81));
212:デフォルトの名無しさん
09/04/02 23:03:53
そう言えば、このスレにConsole::WriteLineのソースが無いじゃないか。
何でだ、だれもプログラムしないのか。
213:デフォルトの名無しさん
09/04/02 23:22:59
Console使う人は珍しいと思う
214:デフォルトの名無しさん
09/04/03 10:49:55
オメガチャートをリアルタイムもしくは20分遅れでデータ取得したいのですが、
さっぱりどうしたらいいのかわかりません
カバでもわかるように教えていただけませんか
215:デフォルトの名無しさん
09/04/03 11:11:09
>>214
おまいには無理
誰か親切な人がコンパイル済みのをうpしてくれるのを待て
216:デフォルトの名無しさん
09/04/03 11:27:46
そんな奇特なお方おらんやろ~
217:デフォルトの名無しさん
09/04/03 11:31:05
いやわからんぞ
2ちゃんで一番親切なイケメンがいる板だからな
218:デフォルトの名無しさん
09/04/03 12:50:22
俺の出番が来ましたね。しばらくお待ちを。
219:デフォルトの名無しさん
09/04/03 13:57:46
この板にイケメンなんかいたのか
220:デフォルトの名無しさん
09/04/03 15:24:28
イケてるとはかぎらないじゃない
221:デフォルトの名無しさん
09/04/03 17:05:17
>>218
ありがとうございます親切な方
気長に待ってますのでお願いします
222:デフォルトの名無しさん
09/04/03 22:02:58
.NET Frameworkのサンプルコードは、VB.NETとC#でコード書かれてて、C++が無い。
C#のコードの、ドット演算子をスコープ解決演算子に置き換えたらC++になるのかどうか。
ほかにどう変換すべきか。
223:デフォルトの名無しさん
09/04/04 00:19:38
場合による
224:デフォルトの名無しさん
09/04/04 01:21:37
クラス・構造体にref/valueを付ける。
組込型の変化、long→long longやchar→wchar_t、byte→unsigned charなど。
参照型にハンドルを付ける。ただしusingを自動変数にする。場合によってはできないので、auto_handleを使用する。
unsafeの消失。hoge*はpin_ptr<hoge>に対応するが、interior_ptr<hoge>やhoge*にできる場合もある。
……いろいろあって挙げていったらきりがない。
225:214
09/04/04 10:50:52
何とか自分でできました
ありがとうございました
226:デフォルトの名無しさん
09/04/04 22:50:07
今日はこの本で1冊の学習を終えた。
URLリンク(www.amazon.co.jp)
C++を使えたら、一番ワイドになれるんだろう。
C++標準ライブラリも.Net framewordもMFCもATLも何でも使えるものは使ってワイドになりたい。
227:デフォルトの名無しさん
09/04/05 12:03:49
typedef structで構造体を定義してるんですが、
新しく変数を追加しようとしても追加されなくて困っています。
同じ構造体の他の変数はマウスカーソル合わせるとunnamed~と表示されるのですが
新しく追加した変数はintと表示されています。
どなたか原因を教えてくれないでしょうか?
228:デフォルトの名無しさん
09/04/05 12:37:26
「追加されない」って、IntelliSence に追加されないってだけの話じゃないのか?
229:デフォルトの名無しさん
09/04/05 13:04:04
>>228
説明不足でした。すみません。
実際はエラーは出てないんですが、
候補一覧に出てこないので、不安になって質問しました。
時間置いたら今は出るようになっていました。
この候補一覧に出るようにするにはビルドする以外にも何かする必要があるのでしょうか?
230:デフォルトの名無しさん
09/04/05 13:23:50
>時間置いたら今は出るようになっていました。
通常は、これがすべて。詳細はヘルプの「IntelliSense の使用方法 」を参照すべし。
231:デフォルトの名無しさん
09/04/05 14:07:52
>>230
ありがとうございました。
IntelliSenceの使い方をやっと理解できました
232:デフォルトの名無しさん
09/04/05 16:52:51
ははは
233:デフォルトの名無しさん
09/04/06 14:06:31
エクセルのデータで、1の列が文字列、2~をint型で読み込んで構造体に入れたいんですが、どうしたらいいでしょうか?
234:デフォルトの名無しさん
09/04/06 16:50:08
CSVファイルに、カンマ区切りかタブ区切り形式で先ずテキスト化する。
235:233
09/04/06 19:25:21
エクセルのマクロ使ってという事ですよね。
ありがとうございます。やってみますm(__)m
236:デフォルトの名無しさん
09/04/06 19:27:40
すでにエクセルのデータではなくなっている。^-^;
237:デフォルトの名無しさん
09/04/06 19:44:08
そっち方面ならC++/CLIで.NETのが楽かも
でもそれならC#にしちゃうか
238:デフォルトの名無しさん
09/04/07 03:07:46
体験版のVC++Proを入れた後に
VC++Expressを入れてもMFCは使えるようになりませんか?
239:デフォルトの名無しさん
09/04/07 04:32:49
ヘッダやライブラリが揃っていればコンパイルはいけるんじゃね
240:デフォルトの名無しさん
09/04/07 12:27:47
>>238
ぐぐってみろ。使えるから。
241:デフォルトの名無しさん
09/04/08 12:51:11
>>238
使えるようになるけど、Express上でMFC使ったアプリを
作っても配布してはならない。ライセンスでそうなってる。
MFCは無料じゃなくて有料です。勉強なら許すって感じかな。
242:デフォルトの名無しさん
09/04/08 15:03:31
スタートページのニュースヘッダーみたいなのって出なくできますか?
あれで引っかかるような挙動したりして気持ちが悪い
243:デフォルトの名無しさん
09/04/08 15:09:39
オプションで設定できるのに、何でそれくらい自分でできないの?
244:デフォルトの名無しさん
09/04/08 15:13:46
FAQだな。
ちょっと探せばわかるけど、EEの場合オプションの全表示のチェック入れてなくて
無いと思い込んでる場合も
245:デフォルトの名無しさん
09/04/09 00:33:12
VS2005、MFCで以下の様なプログラムを作っています。
しかし、for文の中の代入がうまく行かず困っています。
例えば、SysTim.wYearには2009が入っているのに、
MyDataのYearには0が入っているという感じです。
何が原因なのでしょうか?
SYSTEMTIMEのメンバがWORDな所為かとも思いましたが、
結局解決策を見つけられずにいます。
struct MY_DATA {
unsigned char Year;
unsigend char Month;
unsigend char Day;
unsigend char Hour;
unsigend char Minute;
unsigend char Second;
unsigend char Data[8];
};
MY_DATA MyData[10];
SYSTEMTIME SysTim;
GetLocalTime(&SysTim);
int i;
for (i = 0; i < 10; i++) {
MyData[i].Year = SysTim.wYear;
・
・
・
}
246:デフォルトの名無しさん
09/04/09 00:49:51
charに入らないから。
wYear
The year. The valid values for this member are 1601 through 30827.
247:デフォルトの名無しさん
09/04/09 01:09:26
>>246
返事ありがとうございます。
1Byteのサイズに2Byte分入れようとしてるから、という事でしょうか?
以下の例で、ちゃんと値が代入できていたので、可能という認識なのですが。
(キャストしなきゃWarningが出るのはおいといて)
あと、私の書き方が悪かったですね・・・Yearだけでなく
年月日時分秒全てがうまく行きませんでした。
char Data1 = 0;
short Data2 = 10;
Data1 = Data2;
248:デフォルトの名無しさん
09/04/09 01:26:18
>>247
不可能。
BYTE byte; // typedef unsigned char BYTE;
SYSTEMTIME SysTim;
GetLocalTime(&SysTim);
byte = (BYTE)SysTim.wYear;
で試してごらん。無理だから。
249:デフォルトの名無しさん
09/04/09 01:46:40
1Byte = 8 Bit = 2 ^ 8 = 256 < 2009;
250:デフォルトの名無しさん
09/04/09 02:08:11
>>248,249
お返事ありがとうございます。
すいません、言いたかったのは代入後の値が0なのは何故かということです。
環境によるのだとは思いますが、普通は下位1byteが入っているはずでは?という認識です。
年以外に関しては、255以下ですし。
>>247に挙げた例で、下位1byteを代入できているので
同じような事をしてるのに、何故うまく行かないのかというところです。
とりあえず、明日もう少し考えてみます。
251:デフォルトの名無しさん
09/04/09 02:13:09
>>245 unsigendだから?綴りが違う。
#include <stdio.h>
#include <time.h>
#include <windows.h>
#include <winbase.h>
int main(void)
{
struct MY_DATA {
unsigned char Year;
unsigned char Month;
unsigned char Day;
unsigned char Hour;
unsigned char Minute;
unsigned char Second;
unsigned char Data[8];
};
MY_DATA MyData[10];
SYSTEMTIME SysTim;
GetLocalTime(&SysTim);
for (int i = 0; i < 10; i++) {
MyData[i].Year = SysTim.wYear;
MyData[i].Month = SysTim.wMonth;
MyData[i].Day = SysTim.wDay;
MyData[i].Hour = SysTim.wHour;
MyData[i].Minute = SysTim.wMinute;
MyData[i].Second = SysTim.wSecond;
}
}
252:デフォルトの名無しさん
09/04/09 07:08:02
VC++2005、.net framework2.0を使っています。
CSVファイルを読み込む ってのをやって見ようと思って、
using namespace Microsoft::VisualBasic::FileIO;
としてみたのですが、
.\tesuto.cpp(7) : error C2039: 'FileIO' : 'Microsoft::VisualBasic' のメンバではありません。
.\tesuto.cpp(7) : error C2871: 'FileIO' : この名前を指定された名前空間は存在しません。
と言われエラーになります。
何が足りなく、いけないのでしょうか?
さっぱりよく分っていないのですが、よろしくおねがいします。
253:デフォルトの名無しさん
09/04/09 09:29:24
Microsoft::VisualBasic::FileIOというのを定義してないか
定義してあっても参照できない
254:デフォルトの名無しさん
09/04/09 10:46:08
>>252
ソリューションエクスプローラーでプロジェクトを右クリックして参照(F)...を選択
Frameworkと参照が選択されている状態で、[新しい参照の追加(N)...]ボタンを押して
.NETタブから、Microsoft.VisualBasicを選択してOKを押す。
XMLなら別の方法も、、、チュートリアルか何かを参考にしてるのか?
255:デフォルトの名無しさん
09/04/09 10:46:58
ってXMLじゃなくてCSVか
256:デフォルトの名無しさん
09/04/09 12:14:57
>>254は2008での話で2005で確認したら[Frameworkと参照]の部分は[参照設定]だった
まあわかるとは思うけど念のため。
257:デフォルトの名無しさん
09/04/09 14:27:35
ははは
258:デフォルトの名無しさん
09/04/09 18:53:57
>>250
はずしてるかもだけど、
ループの中身をYearだけ代入するよにしたらどうなる?
期待してる動作は、下位1Byteだけは代入されるだろうってことよね?
259:258
09/04/09 18:55:20
ごめん、後半は書いてたね
無視してくださいorz
260:252
09/04/09 23:14:16
書かれた通りにやったら、出来た感じです。
どうもありがとうです。
261:デフォルトの名無しさん
09/04/09 23:53:21
MFCでVisualBasicをオーバーライトできます?
262:デフォルトの名無しさん
09/04/09 23:55:07
日本語で言ってくれ
263:デフォルトの名無しさん
09/04/10 00:04:32
だから、MFCでVB7のプログラムをアルゴリズムから設計までそっくりそのままで
上書きして、同じプログラムをつくれるかな?ってことです。
264:デフォルトの名無しさん
09/04/10 00:21:33
VB7って何だ?
265:デフォルトの名無しさん
09/04/10 01:29:40
Visual Basic で作ったプログラムと同じ動作をするものを VisualC++ で作れるか? という問いなら YES。
上書きだとかオーバーライドだとかといった既定の単語を、自分勝手な意味をつけて使っても他人にゃわからんよ。
266:デフォルトの名無しさん
09/04/10 03:04:35
だってプラグインしながらコンバートする感じでつくりたいんです
267:デフォルトの名無しさん
09/04/10 06:26:43
構造体やクラスを作って実際に使おうとすると、インスタンス.と打つとメンバがズラッと出てくるはずですけど表示されなくなってしまいました。原因わかりますか?
インスタンスをマウスオーバーすると構造体はちゃんとポップアップ表示されます。
268:デフォルトの名無しさん
09/04/10 09:41:20
よくあることなので諦めましょう
269:デフォルトの名無しさん
09/04/10 20:50:13
>>267
「.」を打ったり消したりを繰り返してれば復活しない?
後は、一回ビルドしなおすとか、ncbファイル消してみるとか・・・
270:デフォルトの名無しさん
09/04/10 21:41:24
何度かやってると復活するな
文法が間違ってたりすると反応しないから、何度もやって復活しないなら文法ミス
271:デフォルトの名無しさん
09/04/10 21:48:08
テンプレートかインクルードファイルが多すぎると、バグか知らないけど認識してくれないことが多い気がする。
272:デフォルトの名無しさん
09/04/10 21:59:24
2005/2008的には、仕様です。って感じだな。
273:デフォルトの名無しさん
09/04/11 00:49:19
Windows7でたら、パソコン買おうとおもうんだけど、今のWin2000じゃスペック的にも無理があるから・・
Windows7でもVC++6.0ってインストールできるのかな・・いまだに結構使ってるから、入れたいんだ。
274:デフォルトの名無しさん
09/04/11 00:57:22
>273
もうサポートも終わった環境なんて捨てろw
275:デフォルトの名無しさん
09/04/11 01:23:57
>>273
VC++6.0なんて仕様がイミフだからもうヤダ。。。
276:デフォルトの名無しさん
09/04/11 09:31:43
>>273
VMWareで2000動かしてそこにインストールするのがお薦め。
277:デフォルトの名無しさん
09/04/11 11:05:41
次期モデルC++0xはどれだけ対応しているのか期待したい
278:デフォルトの名無しさん
09/04/11 14:30:08
>>275
VC9になったところで仕様イミフだろ。
279:デフォルトの名無しさん
09/04/11 20:22:01
>>277
こういう感じらしい。decltypeが無いのは痛いと思う。
URLリンク(www.codeguru.com)
URLリンク(d.hatena.ne.jp)
280:デフォルトの名無しさん
09/04/13 12:34:48
エディットボックスコントロールや、立地エディットコントロール以外に
ActiveXとかでエディタコンポーネントってありませんか?
281:デフォルトの名無しさん
09/04/13 13:56:59
作れば何でもある
282:デフォルトの名無しさん
09/04/13 14:25:13
エディットボックスというのは初めて聞いた
283:デフォルトの名無しさん
09/04/13 18:39:12
VC++の得意分野って何?みんな何作るの?
GUIアプリならC#で作った方が早いじゃんか。
284:デフォルトの名無しさん
09/04/13 19:29:19
.NET Frameworkなんて死んでも入れないという人のためのアプリを作るためとか。
285:280
09/04/13 19:58:06
>>281
はい、ありがとうございます。この際作ろうと思います。
>>282
?私のVCのツールバーにエディットボックスってあるんですが・・普通はないのかな?
で、自作しようと思いますが、CEditクラスを継承しようと思いますが、
自動インデントやらの独自機能を追加しようとおもいます。
その場合、ActiveXという形式で作成するのか、普通のC++クラスとして作成汁のかどっちがいいんでしょうか?
なにぶんVC++はあまり知らないので、おしえてください。
286:デフォルトの名無しさん
09/04/13 20:53:15
vc++2008のエディタをウィンドウ分割したときに
上側のウィンドウへフォーカスを切り替えたいとき
キーボードでやるにはどうすればいいの?
287:デフォルトの名無しさん
09/04/14 09:03:28
>>286
上側ではないがF6で切り替え
288:デフォルトの名無しさん
09/04/14 10:12:40
>>287
できました!ありがとう。
289:デフォルトの名無しさん
09/04/16 21:57:30
質問です。
VC++.net2003で、VB6.0のTextBoxと思われるもの(spy++によると、"ThunderRT6TextBox")より、
WM_GETTEXTで文字列を取得するアプリを作りました。
ただ、TextBoxの格納上限 > WM_GETTEXT取得上限のようで一定量を超える入力があると
全てを取得することが出来ません。
EM_GETTEXTEXで試したのですが、リッチエディットコントロールではないのか、何も返してきません。
何かいい方法ありませんでしょうか。
(スレあってますよね・・・?)
290:デフォルトの名無しさん
09/04/19 09:01:23
MFCのクラス階層図を網羅したExcelファイルはどこかにないかね。
291:デフォルトの名無しさん
09/04/19 15:32:03
VC++2008EEなのですがビルドしようとすると
general error c1010070: Failed to load and parse the manifest.
と出てきて何もできません。どうすればよいのでしょうか?
292:デフォルトの名無しさん
09/04/19 16:06:38
プロジェクトのプロパティの構成プロパティのマニフェストツールの入力と出力に
変なファイル指定してない?
293:デフォルトの名無しさん
09/04/19 16:19:03
入力リソースマニフェスト→指定なし
出力マニフェスト ファイル→$(TargetPath).manifest
となってます^^;
294:デフォルトの名無しさん
09/04/19 16:23:53
それ消すか、埋め込みマニフェストにしてみては
あと、新規プロジェクトでゼロから作ってもそれ出る?
295:デフォルトの名無しさん
09/04/19 16:27:05
消しても埋め込みマニフェストにしても無理でしたorz
新規で作っても出ます;;
296:デフォルトの名無しさん
09/04/19 16:41:32
むむむ、、、、再インストール・・・かなあ
297:デフォルトの名無しさん
09/04/19 17:43:02
再インストールしても無理でしたorz
298:デフォルトの名無しさん
09/04/19 23:24:59
ためしに、[ツール]-[設定のインポートとエクスポート]から
すべての設定をリセットしてみてはどうか。
299:デフォルトの名無しさん
09/04/21 15:48:11
WIN32アプリケーションで、
マルチディスプレイでプログラムをフルスクリーン表示にしている時に、
セカンダリ画面でクリックなどするとプログラムが最小化してしまいます。
この最小化を抑制する方法があるみたいなのですが、どうすれば可能なのでしょうか。
300:デフォルトの名無しさん
09/04/21 15:49:18
最小化するか?
301:デフォルトの名無しさん
09/04/21 16:00:44
はい、Winキーを押した時の様になります。
302:デフォルトの名無しさん
09/04/21 17:08:08
それはお前の作ったプログラムでしか起きない問題なのか?
要するにお前が作ったプログラムに原因があるのか、
それとも元々OSがそういう仕様なのかぐらいはっきりしろ。
303:デフォルトの名無しさん
09/04/21 17:48:41
元々OSがそういう仕様なのだと思います。
大抵の古いWIN32アプリでフルスクリーン時は大抵そうなってしまってます。
最近はそれに対処しているプログラムがあって、
それをどうやってるのかなと質問させて頂きました。
304:デフォルトの名無しさん
09/04/21 17:55:39
Visual Studio 6.0を使ってC言語+MySQLのアプリを作りたいのですが、
[ツール]→[オプション]で
ライブラリパスにC:\Program Files\MySQL\MySQL Server 5.1\lib\opt
インクルードパスにC:\Program Files\MySQL\MySQL Server 5.1\include
を設定し、
#include "mysql.h"をしてコンパイルするとMySQLのヘッダファイルでエラーが出まくります。
プロジェクトの設定が悪いのでしょうか?
305:デフォルトの名無しさん
09/04/21 18:02:00
どういうエラーよ
306:304
09/04/21 18:06:41
>>305
すみません。
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(243) : error C2061: 構文エラー : 識別子 'SOCKET' がシンタックスエラーを起こしました。
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(280) : error C2059: 構文エラー : '}'
c:\program files\mysql\mysql server 5.1\include\mysql_com.h(394) : error C2143: 構文エラー : ')' が '*' の前に必要です。
等です。
URLリンク(www13.plala.or.jp)
↑ここを参考にしました。
307:304
09/04/21 18:23:26
すいません!自己解決しました。
#include <winsock.h>をしたらエラーが出なくなりました。
ここでwinsockが出てくるとは…。
308:デフォルトの名無しさん
09/04/21 18:49:05
ああ、そういえばmysql.h見てて書こうと思ってて他の作業入ってて書きそびれたわ
mysql.h をinclude するまえにwindows.hをincludeしては、と書こうとしてた。
309:デフォルトの名無しさん
09/04/22 03:23:27
Visual Studio C++ 2008で
#include <boost/random.hpp>
を使いたいんですけどこれはブーストをダウンロードした後どうすればいいのですか?
310:デフォルトの名無しさん
09/04/22 03:31:34
>>309
今ダウンロードしたやつは忘れて、こっちのインストーラ版をダウンロードする。
URLリンク(www.boostpro.com)
最も、VC++ 2008ならSP1当てれば#include <random>で
名前空間std::tr1にほぼ同じものが存在する。
311:デフォルトの名無しさん
09/04/22 03:39:06
>>310
ご親切にありがとうございます。
なるほどー
SP1当ててないのでダウンロードしてみます。
インストール後はもう#include <boost/random.hpp>を使える状態になるのですか?
今環境がないため試せないんです;
312:デフォルトの名無しさん
09/04/22 10:44:38
インクルードディレクトリの設定やったことないのか?
インストーラーがやってくれるならそのままでいいし、ダメなら自分で設定すればいいだけ
313:デフォルトの名無しさん
09/04/25 00:03:11
すみません。一般的に画像を保存する際、.bmp形式より.jpg形式の方が画像サイズが小さくなります。
今度作成しようとおもっているのは、Alt+Prt Scキーにより、クリップボードにコピーされた
アクティブな画面キャプチャを.jpg形式のファイルで保存しようとおもうんですが、
私のアルゴリズム?では、bmp形式のサイズで保存されてしまうのが予想されます。
私のアルゴリズムは以下です。
1.クリップボードの画像データをビットマップオブジェクトにコピーし、ファイルを保存する。
2.ファイル名の拡張子を.jpgに変換する。
以上です。
以前、Alt+Prt Scキーで取得した画面キャプチャ画像をアクセサリのペイントに貼り付けてjpegファイルに変換しても
画像サイズが変わらなかったので、上に書いたアルゴリズムでは同様のことになってしまうと思います。
jpegファイルの軽さで最初からファイルを保存するようにするにはどうしたらいいでしょうか?
画像関係のソフト制作、VC++は不慣れなものですので、すみませんが教えてください。よろしくお願いします。
314:デフォルトの名無しさん
09/04/25 00:11:29
>>313
GDI+
315:デフォルトの名無しさん
09/04/25 00:19:46
Express以外を使っているなら、ATL::CImageもおすすめ。
316:413
09/04/25 00:52:22
>>314さん、>>315さん。
どうもありがとうございます。教えていただいた、
キーワードでググってやってみようと思います。ちなみに
MFCですので。。
コンビニいって、立ち読みしてたので、お礼が遅くなりました。すみません。
317:デフォルトの名無しさん
09/04/25 07:30:44
とりあえずファイルの拡張子変えただけじゃjpgにはならんよ…
318:デフォルトの名無しさん
09/04/25 08:20:10
>>317
俺も最初の頃は
xxx.jpg.bmp
なんてファイルがあったな
319:デフォルトの名無しさん
09/04/25 12:30:50
いい例えが思いつかなくて放置してたんだけど
昼飯食ってたらとたんに思いついた
アナログテレビにペンで 「デジタル」 って書くだけじゃ地デジは映らないよ!
320:デフォルトの名無しさん
09/04/26 10:19:59
ペイントブラシは拡張子変えるだけでファイルフォーマットも変えるからなあw
321:デフォルトの名無しさん
09/04/26 10:21:03
ペイントブラシじゃなくてペイントか
322:デフォルトの名無しさん
09/04/26 13:35:30
いきなりですが、質問させてください。
VC++2008 ExpressEditionで、windowsアプリケーションを作成しようとしています。
CreateWindow関数の引数が多く、横に書いていくと見にくいので、途中で改行をしました。
すると、それ以後、コンマを入力するとエラー音(プンッというような音)が鳴ります。
これはどういった問題が起きているのでしょうか。
分かる方、どなたか教えていただけるとありがたいです。
323:デフォルトの名無しさん
09/04/27 02:18:15
すみません。物凄く素人な質問で恐縮なのですが。
ボタンを沢山配置したときに、リソース上で整列させたいのですが、
元々ダイアログに表示されている、ボタン位置の調整が出来る青い枠は
増やせないのでしょうか……?
リソース上で座標だけ見てボタンの微調整をするのはかなり苦痛です。
宜しくお願いします……!
324:デフォルトの名無しさん
09/04/27 02:36:30
どのリソースエディタかしらないけどコントロールの整列ボタンとかないの?
rcをテキストエディタで開いてみると
DEFPUSHBUTTON "OK", IDOK, 129, 7, 50, 14, BS_DEFPUSHBUTTON
PUSHBUTTON "キャンセル", IDCANCEL, 129, 24, 50, 14, BS_PUSHBUTTON
こんな感じになってるから手入力でやってもたいした労力じゃないかもしれないよ
325:323
09/04/27 02:46:51
>324さま
使用しているのはVisualStudio2008のリソースエディタです。
複数ボタンを選択した後に右クリックして、左揃え上揃えがあるのを確認しました。
早とちりしてすみません(汗)
微調整は324さまの仰られた通り、テキストエディタで編集する事にします。
ありがとうございました。
326:デフォルトの名無しさん
09/04/27 03:01:17
>>325
騙されたと思って、ダイアログエディタのガイドをクリックしてみろ。
327:デフォルトの名無しさん
09/04/27 20:26:44
先日からVC++2008を使い始めましたが、基本的な操作方法が分かりません。
ライブラリを追加するのはどこからやればいいのでしょうか?
2005ではプロジェクト→設定…とやっていたのですが。
プログラム自体初心者なのですが回答お願いします。
328:デフォルトの名無しさん
09/04/27 20:55:09
プロジェクト→設定…とやればいい
329:デフォルトの名無しさん
09/04/27 20:56:30
プロジェクト→プロパティだった
330:デフォルトの名無しさん
09/04/27 21:29:50
>>327
>プログラム自体初心者なのですが回答お願いします。
こういうの要らないだろ。
どうしてこういうの付けてくるヤツって耐えないんだろう。
…でもまあスレタイ的には今回は例外的に問題無いのか。
331:デフォルトの名無しさん
09/04/27 21:42:09
>>327
それくらい2005とろくに変わっていないだろ。
332:デフォルトの名無しさん
09/04/27 21:47:05
図解つきのマニュアルで1ステップずつ解説みないと使えないレベルなんじゃないか?
333:323
09/04/28 01:45:05
>>326さま
位置調整用の青点線増えました。助かりました。ありがとう。
334:327
09/04/28 10:48:06
プロジェクト→プロパティと開いたのですが、その後の項目で何を選べばいいのか分かりません。
2005ではリンクからライブラリの一覧が見れましたが、2008でリンカを選んでもそれらしい項目がありません。
他の項目も見ましたが、どこから追加すればいいのか分かりませんでした。
詳しく教えていただけないでしょうか。
335:デフォルトの名無しさん
09/04/28 10:53:59
詳しくも何もヘルプに書いてあるだろ。探せなきゃ「リンカ入力としての .lib ファイル」でググれ
336:デフォルトの名無しさん
09/04/28 11:02:00
>2005ではリンクからライブラリの一覧
これ、何のこと言ってる?
もしかしてC++/CLIか?
337:デフォルトの名無しさん
09/04/30 17:44:18
VC++用のXML SDKってどこからダウンロードすればいいでしょうか?
338:デフォルトの名無しさん
09/04/30 18:12:08
>>337
URLリンク(www.microsoft.com)
339:デフォルトの名無しさん
09/04/30 18:18:04
>>338
さんくっす
340:デフォルトの名無しさん
09/04/30 23:01:53
>>337
一応、VC付属のSDK・MSDNライブラリにもMSXML関連のものは入っていたはず。
望みのバージョンのものかどうかはともかく。
341:デフォルトの名無しさん
09/05/01 15:15:49
MFCやWin32APIでつかうGDI+について、書かれてる本ってないですか?割とくわしめに書いてある本。。
洋書でもいいです。近くの大本屋4件くらいまわってもなかったもんで・・
もしあれば、Amazonで買おうと思います。
342:デフォルトの名無しさん
09/05/01 15:50:48
またお前か
343:デフォルトの名無しさん
09/05/01 21:04:33
すみません。IEの現在表示してるアドレスを取得する事って可能ですか?
vcだけじゃ無理で、IEのSDKとかつかうんですかね・・
344:343
09/05/01 21:10:14
事故解決しました。ググッたら色々でてきました。うへぇ~。
345:デフォルトの名無しさん
09/05/01 21:14:16
この辺見ればできると思う
URLリンク(www.nitoyon.com)
346:344
09/05/01 21:18:50
>>345
どうもありがとうございます><;そこは詳しく載ってますね><;
私がググって見つけたページよりも実践的なサンプルが載っています。
連休中にタスクバーに常駐するお気に入り管理ツールを作ろうと思いまして・・
ブラウザのお気に入り機能って使いにくいですよね><;
347:デフォルトの名無しさん
09/05/03 06:20:13
StretchDIBitsとStretchBltの違いってなんですか?
メモリ上がなんとかとなってるんですが意味がわかりません
348:デフォルトの名無しさん
09/05/03 08:43:10
>>347
StretchBlt: コピー元がHDC
StretchDIBits: コピー元がBITMAPINFO/void*
349:デフォルトの名無しさん
09/05/03 17:48:53
main()関数のソースファイルが、同じソリューションかつプロジェクト内の他の
ソースファイルにリンクできてないようで、ビルドするとリンクエラーが出ます。
error LNK 2001:外部シンボル ~~~~ は未解決です。
fatal error LINK1120: 外部参照4が未解決です。
のメッセージが出ます。
正しくリンクできるように設定するにはどうするんでしょうか。
Visual Studio .NET 2003 Professional
作成したプロジェクトは Visual C++ プロジェクトの「コンソールアプリケーション(.NET)」です。
350:デフォルトの名無しさん
09/05/03 18:33:04
インクルードしてないとかいう落ちだろ
351:デフォルトの名無しさん
09/05/03 18:45:13
CLRならC++のみだし、、、Cリンケージの問題でもなさそうか?
参照設定してないとかいう落ちとか
352:デフォルトの名無しさん
09/05/03 19:14:17
原因わかった。ファイルは実はリンクできてた。
vectorコンテナを使ってる箇所を直す必要がある。
前に単一のソースに書いてBorland C++ Compilerで正常にコンパイル成功
していたプログラムを拡張しようとしたが、他のファイルで定義したクラスの
変数宣言は問題無いが、
std::vector<class fileman> fman_databox1;
で定義して
fsize1 = fman_databox1[n1].getfsize();
のように、vectorコンテナに添え字演算子で要素を取り出したものから、
メンバー関数を使おうとする箇所があるとエラーが出るということがわかった。
353:デフォルトの名無しさん
09/05/03 19:19:11
fatal error
実はリンクできてた
直す必要がある
分裂症ですか?
354:デフォルトの名無しさん
09/05/03 19:44:27
一度ポインターにアドレスを代入してからメンバー関数を呼ぶように変更しよう
としたけど、そうやってもエラーになった。
IDEはちゃんとリスト選択が出てくるのに。
inlineを取ればリンクできた。
そんなことがあるのか、何でインライン関数にすればエラーになるんだ。
355:デフォルトの名無しさん
09/05/03 20:02:26
インライン関数の展開って、コンパイル時に行われるからじゃないのか?
356:デフォルトの名無しさん
09/05/04 08:31:41
テンプレートクラスで静的メンバ変数を使おうとすると、
>LNK2019: 未解決の外部シンボル
のエラーが出るのですが、どういった風に解決するのが一番でしょうか。
357:デフォルトの名無しさん
09/05/04 08:36:02
テンプレートなのに何で静的なんだよ
358:デフォルトの名無しさん
09/05/04 08:43:27
クラスごとにインスタンス数を数えたいのですが、
CountingObject : BasicCounting< CountingObject >と継承して、
BasicCountingのコンストラクタ、デストラクタでBasicCounting::countの値を増減しようと考えています。
テンプレートクラスで静的メンバ変数というのは、おかしいのですか?
359:デフォルトの名無しさん
09/05/04 08:48:51
そんなくだらない話はC++スレでやれ
360:デフォルトの名無しさん
09/05/04 11:42:04
>>356
クラステンプレートでないクラスの場合と同じで、変数の定義が必要。
class Foo
{
static int Hoge;
};
int Foo::Hoge;
tempate<typename T>
class Bar
{
static int Hoge;
};
template<typename T>
int Bar<T>::Hoge;
なお、クラステンプレートの静的変数は実体化させる必要があるので、
クラステンプレートのメンバ関数などと同様、通常はヘッダに定義を書く。
361:デフォルトの名無しさん
09/05/04 12:56:35
コンパイル時にエラーがあるとVSでエラー箇所教えてくれるしエラーメッセージも出るからアサートって書く必要ないですよね
362:デフォルトの名無しさん
09/05/04 12:59:30
構文エラー等ならコンパイル時にエラーになるが、0 division 等はエラーにならない。
よってアサートは必要。
363:デフォルトの名無しさん
09/05/04 13:11:44
コンパイルエラーが出るうちはデバッグは楽だ。
実行時エラーになるととたんに対処が面倒になる。
364:デフォルトの名無しさん
09/05/04 13:34:07
コンパイルエラーとアサートと同次元で語るやつが理解できない。
365:デフォルトの名無しさん
09/05/04 13:43:28
>>364
まあまあ、ココは初心者スレだからいいじゃないか。
366:デフォルトの名無しさん
09/05/04 19:16:07
実行時エラーと言いたかったんじゃないかなあ
367:デフォルトの名無しさん
09/05/04 20:03:49
それは違くね?
368:デフォルトの名無しさん
09/05/05 08:46:18
そうか?
アサートとコンパイルエラーが同レベルで出てくるなんて
初心者だってありえないだろ
369:デフォルトの名無しさん
09/05/05 08:55:35
>>368
「ありえない」か?確率0%か?
いや、初心者ならそのくらいありえるのではないか?
およそ、初心者に「ありえない」ことは「ありえない」んでは?
370:デフォルトの名無しさん
09/05/05 10:04:21
アサートという言葉を知ってるのにか?
当人に聞いてみなけりゃ分からないけど、
ありえないと言えるくらい見当違いなことだよ
371:デフォルトの名無しさん
09/05/05 10:09:22
たぶん釣りじゃないのかw
372:デフォルトの名無しさん
09/05/05 20:20:07
MFCでなんか面白いもの作りたいんだけど、思いつかない。
サンプルが載ってるページってありますか?自力で作るのもいいんだけど・・お代が無いし。
373:デフォルトの名無しさん
09/05/05 21:02:58
じゃ、タスクマネージャでも作ってみろ
374:デフォルトの名無しさん
09/05/05 22:54:51
>>373
タスクバーに入れる方法がわからないから、却下でござる。
375:デフォルトの名無しさん
09/05/05 23:07:59
C言語始めようかと思って先ほどマイクロソフトのVisual C++ Express Editionってのをダウンロードしました
試しに参考書に載ってる簡単な足し算を表示するプログラムを書き写してみたんですが、
どうやってその書いたプログラムが動くのかが分かりません・・・
376:デフォルトの名無しさん
09/05/05 23:23:29
F6でコンパイル F5で実行、だが・・・多分出てすぐ消ええる。
VCの入門本買って読むべし
377:デフォルトの名無しさん
09/05/05 23:38:49
コンパイルで調べたら↓ヒットしました
URLリンク(msdn.microsoft.com)
手順の通りにやってみましたがやっぱりすぐ消えますね
分かるように勉強してきます ありがとうございました
378:375
09/05/05 23:55:05
[新しいプロジェクト]のとこから色々弄ったら実行出来ました!
二桁の数字が表示されただけでしたが色々作れそうで楽しいっすね
スレ汚し失礼しました
379:デフォルトの名無しさん
09/05/06 00:28:51
以下の2行をmainの最後に入れれば、実行後終了前にリーターンキー入力を待つ
printf("リターン入力で終了\n");
getchar();
380:デフォルトの名無しさん
09/05/06 00:38:50
>>377
プログラムはあなたの思ったようには動かなくても
プログラムはあなたの書いたようには動く
という格言がある。
これから先何度も何度も味わい続ける事になるだろうが、
これを忘れないようにね。
んでオススメは、Windows環境限定で良ければ
#include <conio.h>
でgetch();を使うのが良いと思うよ。いかなるキーでも何か入力すれば終了するようになる。
#include <conio.h>
int main()
{
//処理
getch();
return 0;
}
381:デフォルトの名無しさん
09/05/06 12:09:16
>>377
main()の最後の } にブレイクポイントを置けばいいよ。
382:デフォルトの名無しさん
09/05/06 12:17:10
Ctrl+F5でいいよ
383:デフォルトの名無しさん
09/05/06 16:14:48
VSとかでプログラムを作らないとデバッグって出来ないのですか
コマンドラインでそれ用のオプションつけてコンパイルしてあれこれして
デバッガー使うことは出来ますか?
384:デフォルトの名無しさん
09/05/06 16:28:01
デバッグ自体はコンパイル方法関係ないよ
Cじゃなくてもできるし
385:デフォルトの名無しさん
09/05/06 16:28:12
↑追加で実行ファイル開いたら問題なく出来ました
ごめんなさい
386:デフォルトの名無しさん
09/05/07 00:03:37
文字リテラルと文字列リテラルが分かれていますが、
どう言ったメリットデメリットがあるんでしょうか?
一文字の文字列を""で囲んでも何の問題もないような気がしますが
メモリの使用量が少ないんでしょうか
387:デフォルトの名無しさん
09/05/07 00:13:28
C言語からやり直せw
388:デフォルトの名無しさん
09/05/07 00:20:01
すいません、今日C++始めたばっかりなんです
VBは型ぐらいなら分かるんですがどうしてもふに落ちないもので
389:デフォルトの名無しさん
09/05/07 00:32:58
自分もC始めたばっかりなんだけど
char string[] = "ABCDE";
char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' };
文字列は文字の配列だよって理解でいいの?
390:デフォルトの名無しさん
09/05/07 00:56:44
>文字列は文字の配列
読んで字の如し
391:デフォルトの名無しさん
09/05/07 02:41:38
>>388
VBやったことあるなら、AscとChr$は知っているだろ。
めちゃくちゃ乱暴に言うと文字リテラル'A'は、Asc("A")と同じ。
Ascの戻り値とChr$の引数、VBではLongとかで扱っていただろうが、
Cではcharという独立した型が与えられていると思えばいい。
392:デフォルトの名無しさん
09/05/07 08:22:06
n文字型があれば1文字型は不要ではという質問だと思うが、
文字の比較や判定の基本はバイト単位だな
32bitや64bit単位でできないこともないけど
393:デフォルトの名無しさん
09/05/07 08:38:31
ああunicodeもあるから
文字単位で比較か
394:デフォルトの名無しさん
09/05/07 11:54:01
>>386
文字と文字列の理解が怪しいな。
そもそもポインタとか分かってる?
いきなりC++にいくのは自殺級に難しいと思うからC言語から学んだ方が良いと思うよ。
395:デフォルトの名無しさん
09/05/07 11:57:40
>>389
> 文字列は文字の配列だよって理解でいいの?
いいんじゃない。文字列は文字型変数の配列ね。
あと実際に文字列は扱えないからその先頭アドレスで扱うことになるってことを理解してくれ。
例えば
"ABCDE"=="ABCDE"
がtrueになるかどうかは処理系依存。
左の"ABCDE"と右の"ABCDE"が別に確保されていればアドレスが異なるから
これはfalseだが、コンパイル時にコンパイラが気付いてメモリ節約のために
同一文字列をマージすればtrueとなる。
> char string[] = "ABCDE";
> char chararray[] = { 'A', 'B', 'C', 'D', 'E', '\0' };
これは全く同じになりますよ。
396:デフォルトの名無しさん
09/05/07 13:27:08
で、結局メリットデメリット誰も言えないわけで
397:デフォルトの名無しさん
09/05/07 13:36:05
>>396
は?頭おかしいの?
398:デフォルトの名無しさん
09/05/07 13:44:03
データ型が違うという事実があるだけで、メリットもデメリットもない
メリットは使うときがくれば分かるとしか言いようがないな
使わない人にとっては面倒なだけと言えばデメリットにもなるだろうが、それは何にしてもそうだろう
399:デフォルトの名無しさん
09/05/07 14:10:36
これだからVB厨はコンピュータのこと何もわかってないと
言われるんだよ
Cやったあとはマイコンもやれよ
で電子回路やってFPGAもやれ
そこでやっとプログラマといえる
400:デフォルトの名無しさん
09/05/07 14:34:58
まぁ、いいんじゃないの一つずつ覚えていけば
VBは直感でも何となくできるし、プログラマへの足がかりぐらいにはなってると思うよ
偉そうだったらぶっ飛ばしたなくるけどw
401:デフォルトの名無しさん
09/05/07 14:37:26
>>399
しかたないさ、何てったってvisualかつbasicだもんなw
そりゃしょーがない
402:デフォルトの名無しさん
09/05/07 14:42:49
別にVBでもいいじゃん。
ただし
>>396
> で、結局メリットデメリット誰も言えないわけで
全く見当違いな質問に対して答えないだけで
「言えない」発言をする低能を除く!
403:デフォルトの名無しさん
09/05/07 14:44:30
そろそろソフトウェアとハードウェアを一緒に考えてしまってるプログラマが
えらそうにしている風習を改めないと。
404:デフォルトの名無しさん
09/05/07 15:02:35
一方しかわからないやつに偉そうにされるのはもっと嫌だw
405:デフォルトの名無しさん
09/05/07 21:55:25
同じプロジェクトのソースをいろいろなビルド構成や複数バージョンのVCで
ビルドしているのですが、ビルド構成やVCのバージョンごとに、
リソースのFILEVERSIONやPRODUCTVERSIONの右端の数字を
違う値にしたいと思っています(どういう構成でビルドされたものかを示すため)。
ビルドするたびに手動で書き換えていると絶対に忘れてしまうことがあるので、
ビルド時にこの数字を自動で書き換えたいのですが、
VC6、VC2005、VC2008に共通の方法はありますでしょうか?
406:デフォルトの名無しさん
09/05/07 21:59:44
それぞれの構成で 別々のコンパイラオプション /D "文字列" を定義する。あとはコード内で
#ifdef "文字列"
407:デフォルトの名無しさん
09/05/07 22:06:43
MSC_VER見たいな定数がそれぞれ決まってたような気がするから
プリプロセスでその値を見て文字列を選ぶ
408:デフォルトの名無しさん
09/05/07 22:56:01
数値にインクリメントは使えないのでしょうか
cout<<2++;
で3になると思いましたがエラー出ました
409:デフォルトの名無しさん
09/05/07 23:16:49
>>408
C言語の基礎だぞ。
++は変数に対してのみ使える演算子です。
しかも百歩譲ってインクリメントできたとしても
cout<<2++;
では結局2が出力されるだけ。
その上言いたいことは
>エラー出ました
エラーメッセージを100回読め。
410:デフォルトの名無しさん
09/05/07 23:47:24
マネージ拡張C++する奴はおらんのか。
VB.NETでやるならまだしも、C#みたいな中途半端言語で.NETやってるのか。
C#でやるよりも、C++の標準ライブラリを生かせていいと思わないか。
411:デフォルトの名無しさん
09/05/07 23:50:37
じゃあ、マネージ拡張を勉強するので、本を贈ってください。
412:デフォルトの名無しさん
09/05/07 23:54:54
マネージ拡張C++はある意味中途半端なんよ。
C#かC++のように極端のほうがいい。
C#でどうしてもスピードが足りないときのみか、C++資産使うときだけ。マネC++
413:デフォルトの名無しさん
09/05/08 01:45:13
VC2008EEのデバッガを使ってデバッグ中、
値が見れない(デバッグのウィンドウに表示されない)変数があるんですけど、なぜなんでしょう?
その変数はforの{}内で宣言した変数なんですけど関係ありますかね?
414:デフォルトの名無しさん
09/05/08 02:03:01
停止している場所がforの外なら見れない。中なら見れる。
415:デフォルトの名無しさん
09/05/08 02:34:17
>>414
forの中なのに見れませんでした。
何か別に原因があるのかなぁ・・・。
416:デフォルトの名無しさん
09/05/08 11:43:10
再現するソースを見せろ
417:デフォルトの名無しさん
09/05/08 16:02:15
最適化無効にしてないとか?
418:デフォルトの名無しさん
09/05/09 16:04:31
>>415
ウォッチウィンドウにぶち込め
419:デフォルトの名無しさん
09/05/09 16:05:25
多分みるところ間違ってるのとたまたま表示されてないだけだろ(よくあるよねw)
420:デフォルトの名無しさん
09/05/09 19:36:57
俺はReleaseデバッグの時はよくある
421:413
09/05/09 23:00:59
遅くなりましたがレスありがとうございます。
>>416
全部のせるのは長くなりそうなので・・・。
>>417
最適化は有効のままでした。
>>418
シンボルが見つかりませんってエラーが出ます。
>>419
見たのは自動変数とローカルです。
>>420
Releaseでビルドしたものをデバッグしてました。
Debugでビルドにしたらちゃんと変数が表示されました。
デバッガ使う時はDebugでビルドしないとだめでしたか。
422:デフォルトの名無しさん
09/05/10 00:10:17
>>421
>デバッガ使う時はDebugでビルドしないとだめでしたか
そりゃデバッグモードでしかデバッガは使えないだろw
>>420
ESP乙
423:デフォルトの名無しさん
09/05/10 12:20:11
VC2008 XP
#include <stdio.h>
int factn(int n);
int main()
{
int n,fact;
for (n = 0; n <= 10; n++)
{
fact = factn(n);
printf("d%! = %d\n",n,fact);
}
while ( true )
{
;
}
}
int factn(int n)
{
int i,fact;
fact = 1;
for (i = 1; i <= n; i++)
{
fact = fact * i;
}
return fact;
}
関数を使って0~10までの階乗がしたいんですが
表示がd!=1 d!=2…ってなってしまいます。
どこがおかしいんでしょうか?
424:デフォルトの名無しさん
09/05/10 12:25:43
>>423
d% → %d
425:デフォルトの名無しさん
09/05/10 12:31:49
あああぁぁorz
ありがとうございます
426:デフォルトの名無しさん
09/05/10 12:50:11
nulデータを使うとエラーが出てしまうのですが、変数は絶対に初期化しなければなりませんか?.
VBみたいにnull=0又は0文字の文字列という扱いには出来ないものでしょうか
427:デフォルトの名無しさん
09/05/10 12:56:39
windef.h で NULL = 0 と定義されているが、このことと 「変数は絶対に初期化しなければなりませんか?.」は
直接関係しない。
428:デフォルトの名無しさん
09/05/10 12:57:55
ありがとうございます!!
429:デフォルトの名無しさん
09/05/10 12:58:50
どういうわけか、最近のC関連の説明とか本ってオペランドの説明ばっかな。
オペランドを説明することが解説だと思ってるようだ。だから初心者にとっては
わかりにくいんだよ。コンピュータの基本がわかってない奴が本を書くように
なってるんじゃないのかって感じる。
430:デフォルトの名無しさん
09/05/10 13:01:34
一理あるが、オペラント(あるいはオペレータ)がわからんと、先には進めない。
431:デフォルトの名無しさん
09/05/10 13:04:49
初心者スレなんだからもう少し心を広く持った方が
432:デフォルトの名無しさん
09/05/10 15:14:08
>426
0文字の文字列を作るときはnulで初期化であってる
433:デフォルトの名無しさん
09/05/10 19:35:12
配列のインデックスの最大値を取得するにはどうすればよいでしようか?
ぐぐってもvbばっかり出てきます
434:デフォルトの名無しさん
09/05/10 19:39:08
sizeof()
435:デフォルトの名無しさん
09/05/10 19:47:38
>>433
配列の名前をpenisとするとだな、
sizeof(penis);で取得できる。
436:デフォルトの名無しさん
09/05/10 19:53:48
>>435
penisは動的配列なんだな。
sizeof(penis)が一定値にならないぞ。
437:デフォルトの名無しさん
09/05/10 19:54:15
sizeof(penis) = 0 の場合もある
438:デフォルトの名無しさん
09/05/10 20:02:58
struct penis { int used; } myson;
sizeof myson;
って括弧なしでかけるんだな
最近知った。
439:デフォルトの名無しさん
09/05/10 20:03:43
>>437
いや実際には・・・
・・・もう止めようw
440:デフォルトの名無しさん
09/05/10 20:07:29
どうusedどするのか詳しく
441:デフォルトの名無しさん
09/05/10 20:32:43
>>434>>435
ありがとうございます、合計バイト数は出せました。
あとはデータ型に応じたバイト数で割ればインデックス最大値が出せるのですが、それも分かりません・・
変数penisのデータ型はどうやって調べるんでしょうか
442:デフォルトの名無しさん
09/05/10 20:35:27
sizeof(penis) / sizeof(int);
?
443:デフォルトの名無しさん
09/05/10 20:39:21
>>442
int型は環境によってバイト数が変わると聞いたので・・
LBoundみたいな関数は無いものでしょうか
それとも僕はよほど変なことをしているのでしょうか
444:デフォルトの名無しさん
09/05/10 20:57:21
>>443
環境によって変わるからsizeof(int)してるんだよ
変わらなかったら4とか決めうちでいいじゃん
445:デフォルトの名無しさん
09/05/10 21:02:00
>変数penisのデータ型はどうやって調べるんでしょうか
変数penisを宣言しているのは誰だ?
446:デフォルトの名無しさん
09/05/10 21:03:48
何故、正体不明のデータを扱うのだろう?
447:デフォルトの名無しさん
09/05/10 21:06:04
sizeofとかあとで変更あったときに直しやすくするだけのことで
その辺理解できない馬鹿だったら自分で固定で数決めとけ
448:デフォルトの名無しさん
09/05/10 21:08:38
>>444
成る程!!すいませんでした、気づいてませんでした
449:デフォルトの名無しさん
09/05/10 21:10:28
マンコ
450:デフォルトの名無しさん
09/05/10 23:35:25
デバックしたら自動的に保存されてしまうようですが、オフにすることってできますか
451:デフォルトの名無しさん
09/05/10 23:47:39
何が保存されるんだ?
452:デフォルトの名無しさん
09/05/11 00:01:19
ソースコードだろ?
保存されたファイルを見てコンパイルするから無理じゃね?
VC出身の俺からしたら保存されねぇほうが気持ち悪いけど
他の環境出身者には保存されるのは気持ち悪いもんなのかねw
453:デフォルトの名無しさん
09/05/11 00:06:09
ソースコードです
切ることは出来ないのですか、残念です
ちなみにVB・VBA・HSP出身(というほどやってませんが)です
454:デフォルトの名無しさん
09/05/11 00:13:09
スクリプトじゃないんだからコンパイルしなきゃデバッグできんし、保存しなきゃコンパイルもできまい。
455:デフォルトの名無しさん
09/05/12 00:07:15
土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに
成功した、ハンドル使わない方法でやっとだ。
そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText()
のやりかた教えろや。
456:デフォルトの名無しさん
09/05/12 00:14:48
しごいて調べろっていうわけにはいんかだろうしなあああ
>変数penisのデータ型はどうやって調べるんでしょうか
457:デフォルトの名無しさん
09/05/12 00:16:28
ハンドル使わないSendMessage()とか、SetWindowText()があるのか
458:デフォルトの名無しさん
09/05/12 00:19:22
>>457
それはないでしょう。
ですから、ハンドルの使いかた教えてくれって言ってる意味ととって
くださってもいいです。すみませんです。
459:デフォルトの名無しさん
09/05/12 00:22:46
>>457
おおかたリソーススクリプトや(親のハンドル使うけど)SetDlgItemTextでも使ったんだろう。
460:デフォルトの名無しさん
09/05/12 00:24:28
そのとおりです。これだって本格的には、ハンドルを使うわけでしょ。
それがわからんから・・・↓こうなってるわけでして。
SetDlgItemText(IDC_STATIC1,"testest");
461:デフォルトの名無しさん
09/05/12 00:25:27
TCHAR szText[] = _T("文字列");
SetWindowText( hWnd, szText);
SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
462:デフォルトの名無しさん
09/05/12 00:26:54
あ、忘れていた。つまり、455=458=460です
463:455
09/05/12 00:30:12
>>461
その場合、hWndは、どこで宣言し、どうやって代入してるわけですか?
464:デフォルトの名無しさん
09/05/12 00:51:42
ああ、そこからスタートか。
HWND hWnd = GetDlgItem( hDlg, IDC_STATIC1);
hDlg はわかるよな。ダイアログプロシージャの第一引数だ。
465:455
09/05/12 01:11:47
>>464
その場合のhDlgは、当然にIDC_STATIC1が貼り付けられたダイアログのハンドル
っていうことですね。その場合、以下の意味がよくわかんですね。
>「ダイアログプロシージャ」(これは、・・・・Dlg.cppって言う意味ですか?)
>「第一引数」(これは意味がわからないです)
(例えば、ワークスペース名が"Rocket"として、例でいくと小生の場合はvs6で、
MFC AppWizard でダイアログモードでワークスペースをを作成したんですが。
RockeDlg.cppが以下になってます。このどこで値が決まってますか?
#include "stdafx.h"
#include "Rocket.h"
#include "RocketDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// ダイアログ データ
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard は仮想関数のオーバーライドを生成します
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート
//}}AFX_VIRTUAL
・・・・・もっと下ですか?
466:455
09/05/12 01:16:05
それとも、hDlgは、予約語っつーかシステムからの引数(定数)っていうことですか?
ダイアログ内なら無宣言で、どこでも使える定数。
467:デフォルトの名無しさん
09/05/12 01:17:03
MFCなら先にそう言えよ。
MFCはウィンドウハンドルを意識しないでいいように作られているから、HWND型はあまり使わない。
468:455
09/05/12 01:22:23
>>467
でも、とにかくハンドルを使わないと、別のプロシージャからは、
別イのダイアログに貼り付けられたコントロールは外部参照できない
わけでしょ。↓のどれを使おうが。
SetWindowText( hWnd, szText);
SendMessage( hWnd, WM_SETTEXT, 0, (LPARAM)szText);
469:デフォルトの名無しさん
09/05/12 01:25:17
何をやりたいのかを述べよ。
「別イのダイアログ」なんつうのが今ごろでてくると、何をやりたいのかわからん
470:455
09/05/12 01:27:02
>>467
>ウィンドウハンドルを意識しないでいいように
なら、SetDlgItemText(IDC_STATIC1,"testest");
と同じく、同一ダイアログプロシージャ内なら、SetWindowText()やSendMessage()
も、ハンドル引数(hWnd)は省略していいってことですか?
471:デフォルトの名無しさん
09/05/12 01:31:15
MFCなら CWnd::SendMessage()、CWnd::SetWindowText() を使う。
両者のパラメータにウィンドウハンドルはない。
472:デフォルトの名無しさん
09/05/12 01:35:24
CWnd* pStatic = GetDlgItem( IDC_STATIC1);
pStatic->SetWindowText( _T("文字列"));
473:455
09/05/12 01:36:24
>>469
つまり、別のフォームで、RoketDlg.cppで、設定したり計算したデータを、終了前に
hddに保存する場合、別なフォームから参照して保存したり、RoketDlg.cppで計算を
始める前に、RoketDlg.cppのプログラム計算を開始する前に、hddに保存したファイルから
データを読んで別なダイアログでリストアップして、一覧の中から選んでRoketDlg.cppの
各コントロールのテキスト(キャプション)に値を設定する。それを読みながら計算
させる、とかです。
474:455
09/05/12 01:54:36
>>469
つまり↓を、vcに移植したいわけです。
MV魔改.bmp
URLリンク(freedeai.com)
475:455
09/05/12 01:55:57
vb版は、数日中に軍事板でリリースの予定です。
476:455
09/05/12 02:01:50
日本だって、造る気になったら、ICBMなんか、H2やMVを魔改すればすぐ造れるんだ。
って北の将軍様や工作員に見せて、「だから日本を脅かしたってビタ一文出さない。
日本を恐喝したって金にならない。早く被拉致者を返せ。」って教えるためです。
477:455
09/05/12 02:19:42
>>471
>>472
ありがとうございます。
478:455
09/05/12 02:35:46
>>471
その場合、CWndは、どこで、値が決まってるんですか?
>>471と>>472の連携がわからないです。
↓これは記法ではないっていうことですか?
CWnd::SetWindowText()
つまり、上の記述の意味は、実際の記法は、
「Cwnd:」は、「CWnd* pStatic」の意味で、
「:SetWindowText(_T("文字列"));」は「pStatic->SetWindowText( _T("文字列"));」 である
という意味ですか?
479:455
09/05/12 02:41:06
↓これはあくまでも、同一ダイアログ内での話ですよね?
(IDC_STATIC1は、別なフォームにもあるかもしれないわけで)
CWnd* pStatic = GetDlgItem( IDC_STATIC1);
480:デフォルトの名無しさん
09/05/12 07:18:51
DirectXを使わないでディスプレイの垂直同期?にあわせて描画する方法ってありますか?
481:デフォルトの名無しさん
09/05/12 08:39:40
一度VC2008++で作成したソリューションファイルは、2005では使えませんか?
家にあるのが2005しかないもので困ってます…
482:デフォルトの名無しさん
09/05/12 08:55:59
>>455
あなたはクラスを使ったことがありますか?
483:デフォルトの名無しさん
09/05/12 09:49:30
ソリューションファイルはテキストだから
適当なエディタで開いてバージョンあたり
書き換えれば2005でも開ける
484:455
09/05/12 11:05:05
結局、VC++では、あるプロシージャで使われるオブジェクト(スタティックコントロールにせよ
エディトコントロールにせよ)、そのハンドルの値というのは、その、プロシージャに
行った時(そのプロシージャが実行されたとき)しか取得(代入)できないということですか?
(コンパイル時に、実行ファイルが各「ハンドル」を自動的に管理する変数としてバックグランド
で管理、保有するようにはなってない、と。)
だから、他のプロシージャから、他のプロシージャで定義、生成されたコントロールとかを
外部参照したい場合は、前もって、そのプロシージャに行った(実行された)時点で、
プロシージャ間で共有できる変数(パラメーター用の変数に)代入しておいて
、プロシージャ間でパラメータとして渡せ、と。
結局、ダイアログにせよ、メモリにロード(画面に出)されてなきゃ、その中のコントロールは
参照できっこないわけだから。
画面に出てるとか、とにかくその外部参照される他のプロシージャ部がメモリにロードされてる
うちは、ディスティネーション(アドレス、ポインタ)としての「定数」であって「変数」では
ないのだからパラメータになりうるから、プログラマー自身が渡せと。
485:455
09/05/12 11:07:54
>>482
「クラス」の意味もよくわからないわけで。「クラスとは、変数の次元でのツリー構造の一部」
という概念ですね。自分としては。
486:デフォルトの名無しさん
09/05/12 11:18:37
>484
結局、VC++では?
そんな意味不明なまとめだったら
日記かブログにでも書いとけ
487:デフォルトの名無しさん
09/05/12 11:24:47
もしかしてウインドウのハンドルのことを言ってるのなら
apiだからVC++は関係ない。
488:デフォルトの名無しさん
09/05/12 11:27:09
>>455
そのうちわかるからとりあえず汚くても動くように書いてみな
後で俺ってなんてVB厨だったんだと思うだろうけど仕方ないよ。
489:455
09/05/12 11:41:54
>>486
「まとめ」じゃなくハンドルを意識する場合として出発点の概念(心がまえ)としてですよ。
これだから、・・・
490:455
09/05/12 11:43:34
>>488
いや別にVBなんて、北がミサイル撃ったのでここ一月いじっただけで。
491:デフォルトの名無しさん
09/05/12 11:47:09
うぜー
492:455
09/05/12 11:51:16
Cで、ずいぶんと長いこと今でもやってる女房(独身時代はある大手建設会社のシステムで
「PLワン」とかやってたって言ってます。)女房から、「そういうソフト、どうしても造りたい
っていうならVB6でつくったほうが楽ですよ。私もVC++はよくわからない。」って
言われて造ったんであって・・・
493:デフォルトの名無しさん
09/05/12 11:54:57
VB6でつくったほうが楽だよって言われたのになんでVCで作ってんの?
C++をやってればわかるのにCやってたってすぐにはわからないよ。
494:455
09/05/12 11:56:13
>>487
OSファンクションだからっていっても、ファンクションコールの仕方、記法は、
言語別でしょ。MASMとVC++のファンクシションコールの仕方は同じですか?
495:455
09/05/12 11:58:52
>>493
スタックが怖くなってきたから。
あと、SLEEP使うと、途中停止できないから。
496:デフォルトの名無しさん
09/05/12 11:59:30
そのへんはMFCがラップしてるんだって何度言えばいいんだ
497:デフォルトの名無しさん
09/05/12 12:00:37
>>495
だったら.net使えばー
498:455
09/05/12 12:07:52
>>
NET使うとVBでもスタック拡大できるわけ?
499:455
09/05/12 12:09:33
VB.NETでスタック拡大できるなんて初耳だな。
500:デフォルトの名無しさん
09/05/12 12:09:59
できる
501:455
09/05/12 12:10:17
どうやるの?
502:455
09/05/12 12:13:36
ヘルプ、とかネット検索で、スタック、STACKで、何度やっても、
VBについてSTACKでヒットしたことは一度もないな、
503:455
09/05/12 12:16:47
いま、VBのほうでは、↓つかってるけど、これだってVC++なら記法は違うでしょ。
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Const TOOLTIPS_CLASS = "tooltips_class32"
504:デフォルトの名無しさん
09/05/12 12:16:49
スタックってなんだよ
505:デフォルトの名無しさん
09/05/12 12:20:07
>503
意味的にまったく同じで何も違いがない
506:デフォルトの名無しさん
09/05/12 12:22:34
EditBinで書きかえるかカスタム定数で
507:455
09/05/12 12:30:17
>>505
中身はそうださ。OSが同じなんだから。
だけどプログラミング(言語としての言葉使い)の実践としては違うでしょ?
っていうことです。
意図する中身が同じだって、言語が違えば話かたは違うのと同じことでね。
例えば、日本で「オリーブ」でも、米語じゃ「あらぶ」なわけで。
中身は同じでも米国人に「オリーブ」って言っても通じない。
日本人に「あらぶ」っていうと「オリーブ」じゃなくアラブ(の国)
って言う意味にとられる。(笑
508:デフォルトの名無しさん
09/05/12 12:33:55
まずは入門書なり読めよw
509:455
09/05/12 12:35:21
>>506
それ、VB.NETの何版から?
510:デフォルトの名無しさん
09/05/12 12:36:57
何も違わないという認識があれば言語が変ってもすぐに使いこなせる。
511:455
09/05/12 12:38:38
>>508
VC++の入門書、4冊あるけど、どれにもハンドルの変数の代入の仕方、
を系統的には書いてない。ほとんど説明してない。索引にも載ってない。
512:デフォルトの名無しさん
09/05/12 12:41:33
じゃあVC++の前に生のWindowsプログラミングを入門しろ
513:455
09/05/12 12:47:26
いや、VBでSTACKが拡大できるなら、何も、無理して、こめんどうなVC++でGUIする
必要はない。計算はC(.DLL)でやって、VBに渡せばいいだけで。若干は、DLLから
直接的にVBのLABELのキャプションに書きこむくらいはしなきゃならないだろうけど。
画面いじるのは、VBのほうがぜんぜん楽でしょ。その場合は開発時間はずいぶん短く
なるよ。
ランタイムシステムがどうのこうのって嫌がらなければ・・・、だけど。
514:デフォルトの名無しさん
09/05/12 12:50:00
どんな画面かしらんがダイアログベースならVBもVCも
たいして変わらんけどな
515:455
09/05/12 12:54:13
そういうことか。WINDOWS3.1時代あたりのMS-VCの本を読んでないと、
ハンドルの理解は難しいってこと?
VS4.0の本はマニュアルまで女房は、廃棄しちまったらしい。
516:デフォルトの名無しさん
09/05/12 12:58:31
まあ
URLリンク(www7.plala.or.jp)
とかさらっと読めばわかるっしょ
でC++もわかってればMFCもわかる。
だから>>455が何がわからないのか一般人にはわからない。
517:455
09/05/12 13:04:05
>>516
どこにハンドルの型宣言、値の代入の仕方(オペランド)、その値の効力の
範囲が説明してあるの?
文法(記法)だけなら「解説書」は不要だよ。MSDNでいいわけだから。
518:デフォルトの名無しさん
09/05/12 13:06:12
そんなのヘッダーファイル見ればわかるだろ
519:455
09/05/12 13:07:30
たしかに、VC++の本にはハンドルの説明は系統的にはまったく書いてない。
ハンドルの文法は、ウィンドウができたことによるものだから、その基本は
当時の本を読まないと、ダメかもしれん。
女房も当時はUNIXをやってたから、だからVC++は弱いんだわ。
520:デフォルトの名無しさん
09/05/12 13:07:54
ハンドルの型宣言にこだわる理由がわからん。
MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。
521:455
09/05/12 13:11:38
あいつは、学校ではFORTRANで、会社のシステム部になってからは、
PLIだったし、それ以後はUNIXで育ってるからな。
522:デフォルトの名無しさん
09/05/12 13:13:40
まあUNIXは少ない知識でまわせるからな
523:455
09/05/12 13:15:58
>>520
>ハンドルの型宣言にこだわる理由がわからん。
>MFCはウィンドウハンドルを意識しないと上のほうに書いてあったのに。
何度も言ってるが、値の代入の仕方とか、パラメーターとしての扱いかた
がわかりにくいていうのよ。
「型宣言」といったのは「今の解説書は系統的(網羅的)には説明してない。」
という面で言ってる。
524:デフォルトの名無しさん
09/05/12 13:18:47
だから何がわからないのかわからないの
525:455
09/05/12 13:20:03
>>520
だって、プログラムは、一字間違っても、コンパイルできないわけでね。
初心者の場合は、文法上の必要な各要素について説明が網羅的な説明でない
場合、省略した要素があれば、省略されたとこは理解できない。
理解できない要素はネックとなって、それ以後は先に進まない。
526:デフォルトの名無しさん
09/05/12 13:23:05
偉そうに理解できないと言われてもねw
527:455
09/05/12 13:23:30
>>524
だからまず、>>471と、>>472の関係。
それだけではないが、外はまずこれがわかってから
528:デフォルトの名無しさん
09/05/12 13:23:56
MFCなら値を代入しなくてもいいし、パラメータにウィンドウハンドルは存在しない。
すべては「オブジェクト」単位で管理する。
Aというダイアログのオブジェクトを DlgA、BというダイアログのオブジェクトをDlgBとすれば、
ダイアログBにある IDC_STATIC1 は、DlgB.GetDlgItem( IDC_STATIC1) でアクセスできる。
テキストを変更したいなら、DlgB.GetDlgItem( IDC_STATIC1)->SetWindowText( _T("テキスト")); だ。
DlgAのメンバ変数としてDlgBのポインタを保持しておけば、DlgAからDlgBにはすぐにアクセスできる。
上記の文中にでてくる用語の意味が不明なら、ここで質問する前にC++について勉強しろ。
529:デフォルトの名無しさん
09/05/12 13:24:20
C/C++の入門書でファイルハンドルの使い方でも勉強すれば
一般的なハンドルの概念が理解できると思う。
530:デフォルトの名無しさん
09/05/12 13:28:10
こんなウザいのをよく根気強く相手するなぁ
531:デフォルトの名無しさん
09/05/12 13:34:25
もう女房はいいからwww