★初心者にVisual C++を教えるスレ★ Part33at TECH
★初心者にVisual C++を教えるスレ★ Part33 - 暇つぶし2ch313:デフォルトの名無しさん
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

532:デフォルトの名無しさん
09/05/12 13:37:10
>>530
暇なんだよね。不景気でw

533:455
09/05/12 13:37:46
>>528
だって、>>471は、MFCなんだろ?
()の中であろうが外であろうが、CWnd::って、c++として記法だろうが、
とにくハンドルみたいなもんじゃないの?
ハンドルとは呼ばないかもしれんが。

1,で、とにかく、Cwndの実数はどこでどうやって取得するのか?
2,またそのCWndの使いかた(値が代入された後のCWnd)は、どう使用
すればいいのか。
つまり>>471のような記述の仕方なのかどうか?
単に「Cwnd::*****」(>>471)でいいのか?
ってことだよ。>>472では「CWnd::*****」ではないわけだから。
ま、そりゃc++の記法だろうけどさ。
>>472はc++でなかったら、どう記述する?


534:デフォルトの名無しさん
09/05/12 13:38:40
PL/Iだろ

535:デフォルトの名無しさん
09/05/12 13:39:57
あれ?やっぱりクラスすらわかってないんじゃね?

536:455
09/05/12 13:41:07
>>534
文字として書けばそうらしいな。俺は夫婦の会話用語で言ってただけ。


537:455
09/05/12 13:49:42
>>535
CWndが「クラス」っていうことはわかったよ。だけど
何にせよ、ディスティネーション(例。コントロールの固有アドレスを示すもの。)値
がなきゃ、他のプロシージャからは、目的のコントロールに、exeファイルは到達できない
わけでしょ。
だから、そのハンドル(つまりはオフセット・アドレスポインタ)の値の取得(代入)
の仕方と、使い方を教えろって言ってるんだよ。


538:デフォルトの名無しさん
09/05/12 13:52:44
だからここで質問する前にC++を勉強しろって言ってるんだよ。

539:デフォルトの名無しさん
09/05/12 13:54:42
だめだ。いくらなんでもここでC++教えるのは無理だw

540:455
09/05/12 13:58:00
vc++では、IDはワークスペース(プロジェクト)としてはは固有ではないから、
(別なダイアログのコントロールが、同じ”IDC_STATIC1"というID名を持つことはありうるから)
↓これは、やはりスタティックコントロールを持ってる外部プロシージャ(ダイアログ2)から
↓ダイアログ1のIDC_STATIC1を参照したい場合は意味のない記述でしょ。

CWnd* pStatic = GetDlgItem( IDC_STATIC1); >>472


541:デフォルトの名無しさん
09/05/12 14:00:16
中途半端な知識で抽象的で意味不明な用語ならべて質問するから
本題からどんどん遠ざかってるような気がする。

542:デフォルトの名無しさん
09/05/12 14:02:47
そのGetDlgItemはAPIじゃなくてCWndのメソッドのほうのGetDlgItem

543:455
09/05/12 14:04:27
なんだって?
ますますわかんなくなってきた。

544:デフォルトの名無しさん
09/05/12 14:11:37
ここ無駄な時間をすごさずVB.NETに行ったほうがいいのでは?

545:デフォルトの名無しさん
09/05/12 14:14:55
開発環境
やりたいこと

これだけ書いて質問すればすぐにまともな回答もらえたかもな

546:455
09/05/12 14:15:10
>MFCは・・・パラメータにウィンドウハンドルは存在しない。 >>528
()の中でのハンドルの指定はない、ていうことは、うすうすは、わかったような
気がする。うすうすだけど。
では、外部プロシージャから(例えば、ダイアログ2に貼ってあるBUTTONが押されたとき、
ダイアログ1のスタティックコントロールを参照したい場合。
ダイアログ2にもスタティックコントロールは貼ってあって、両方が同じID名の場合。


547:455
09/05/12 14:17:25
結局、>>478と>>479の質問には誰も答えてないんだよな。


548:デフォルトの名無しさん
09/05/12 14:20:06
その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。
「C++を勉強しろ」というのが回答。

549:455
09/05/12 14:22:32
ハンドルはC++関係ないでしょ

550:デフォルトの名無しさん
09/05/12 14:23:15
外部プロシージャ
ダイアログ1
ダイアログ2

唐突にこんなものが出てきたって誰も関係が理解できない

外人
かばん1
かばん2

これで関係理解できるか?

551:455
09/05/12 14:25:52
↓俺には「外部参照の仕方はわかりません。単一ダイアログの遊びのソフトしか造ったことありませんが、
↓一流プログラマーのように威張りたいです。」ってしか聞こえない。

548 :デフォルトの名無しさん:2009/05/12(火) 14:20:06
その答を書くにはC++のクラスの基本から書かなくちゃいけない。だから答えない。
「C++を勉強しろ」というのが回答。


552:デフォルトの名無しさん
09/05/12 14:27:22
じゃ、何を言ってもムダだな

553:455
09/05/12 14:36:17
「ダイアログ」でなく「ダイアログボックス」って書けってか?

「プロシージャ」という言葉は許すけど、「外部」がつくとわからん、っていうのは
「++」以前、「C」言語の基本がわかってないというか、それ以前、プログラムの基本
がわかってないとしか言いようがないけどな。
「スタックって何?」とかって聞いてる人が先生ぶってるのと同じでさ。

>hDlg はわかるよな。ダイアログプロシージャの第一引数だ。>>464

>504 :デフォルトの名無しさん:2009/05/12(火) 12:16:49
>スタックってなんだよ


554:455
09/05/12 14:38:00
「スタック」「外部参照」の言葉の意味が理解できないのが「C(++)の先生」やってるわけ?


555:デフォルトの名無しさん
09/05/12 14:39:44
GetDlgItem( IDC_STATIC1) は this->GetDlgItem( IDC_STATIC1) と同じ

556:デフォルトの名無しさん
09/05/12 14:41:28
VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら
editbin で /STACKオプションつければいい

557:455
09/05/12 14:44:46
>>555
さんくす


558:デフォルトの名無しさん
09/05/12 14:46:02
>>546
ダイアログ1にスタティックコントロールを公開するメソッドを作る
ダイアログ2からはダイアログ1->そのメソッド()

という形でアクセスする

559:455
09/05/12 14:46:52
↓これは間違いだと思うよ。最近のVB2005とか2008わどうかわからないけどさ。

>VBでもなんでも、てっとり早くスタックサイズ大きくしたいなら
>editbin で /STACKオプションつければいい


560:455
09/05/12 14:48:58
VCは、当初からコンパイル時のオプションとして当初からあったけどね。

561:デフォルトの名無しさん
09/05/12 14:58:06
dumpbin /headersしてみりゃわかる

562:デフォルトの名無しさん
09/05/12 14:58:57
間違いってやってみたのか?
editbin は使ったことあるのか?

563:デフォルトの名無しさん
09/05/12 15:01:41
↓これを間違いだと言われても困るわな

564:563
09/05/12 15:02:38
すまそ、抜けた
URLリンク(msdn.microsoft.com)(VS.80).aspx

565:デフォルトの名無しさん
09/05/12 15:02:50
AからBにアクセスしたい場合に外部じゃ全然説明になってないだろ
AとBが全然関係ないんじゃアクセスしようがない。

566:455
09/05/12 15:03:31
++とハンドルの定義やハンドルの動作は関係ないでしょ。
++は記法だけの問題であって。

VBは、やっぱSTACK拡大できないと思うよ。2008でも、STACKをヘルプのキーワードに入れても
ヒットしない、あるなら、こんな基本的で重要なこと抜くわけないもの。
試しにヘルプでやっても、スタックフレームっていうことは出てくるが、メモリ朗域の拡大ではない¥
スタック怖かったから、2008に期待をかけてダウンロードして調べてみたが、
↓のVB2008のヘルプで、"STACK"でヒットしたのは「実行中」の「検査」の話でね。
↓そもそも実行中にスタックメモリ領域(コード領域も意味する)の大きさ変えれるわけないんだから(笑

スタック フレームの検査のサンプル
このサンプルでは、任意のポイントでの呼び出し履歴の情報を、実行中のプログラムのコード内から取得する方法を説明します。呼び出し履歴を使用すると、現在のプロシージャに至るまでにアプリケーションが実行したプロシージャの順番を確認できます。

567:455
09/05/12 15:07:45
>>563
Cは「当初>>560」からあったけど、マイクロソフトのVBはないって言ってるんだよ。
そのMSDNに書いてあるのは、CとかMASMの話だよ。



568:デフォルトの名無しさん
09/05/12 15:09:06
だから外部という認識だからアクセスできない
馬鹿だよな

569:デフォルトの名無しさん
09/05/12 15:09:55
こいつ人の言ったこと何も聞いてないのな。


570:デフォルトの名無しさん
09/05/12 15:11:58
スタックサイズはリンク時に決定される。
コンパイルは関係ない。
リンク後でもEXEのヘッダー書きかえればサイズは変更できる。
そのためのツールがeditbin

571:デフォルトの名無しさん
09/05/12 15:12:22
あれあれあれだよ
あれってどれだよ

572:455
09/05/12 15:13:14
↓「スタック」も理解できないおまえらは他人にいつも何を言ってるの?

569 :デフォルトの名無しさん:2009/05/12(火) 15:09:55
こいつ人の言ったこと何も聞いてないのな。

568 :デフォルトの名無しさん:2009/05/12(火) 15:09:06
だから外部という認識だからアクセスできない
馬鹿だよな


573:デフォルトの名無しさん
09/05/12 15:13:53
>571
これじゃないのがあれだろ
日本語も知らないのか?

574:デフォルトの名無しさん
09/05/12 15:16:00
良いページ見つけた。
URLリンク(mail2.nara-edu.ac.jp)
ここのダイアログベース読めばいいんじゃね?

575:455
09/05/12 15:16:11
↓とにかく、VBではできない

570 :デフォルトの名無しさん:2009/05/12(火) 15:11:58
スタックサイズはリンク時に決定される。
コンパイルは関係ない。
リンク後でもEXEのヘッダー書きかえればサイズは変更できる。
そのためのツールがeditbin


576:デフォルトの名無しさん
09/05/12 15:20:54
で、結局この人はなにをやりたいの?

577:455
09/05/12 15:23:20
>>568>>569は、異なるダイアログボックス間で、別のダイログボックスにある、同じ名前のIDC_STATIC1を
↓参照できるって言ってるのと同じこと。C++とかなんとかの問題でなくプログラムの基本がわかってないと
↓思うけどね。

GetDlgItem( IDC_STATIC1)

578:455
09/05/12 15:24:53
俺は、同じこと何度も答えてるよ。


579:デフォルトの名無しさん
09/05/12 15:29:51
>>455の最初の質問を読んでみた。
一番の近道はMFCを使わないで
CでWindowsプログラミングをすることだと思った。
多少記述は多くなるけど問題ないと思う。


580:455
09/05/12 15:31:22
↓これはあくまでも、実行中のダイアログプロシージャ内で通用する話であって、
↓別のダイアログプロシージャ(外部プロシージャ、つまり別のダイアログボックス)
↓のコントロ-ルを参照してることではないだろ。この言ってる意味がわからないかねえええ

GetDlgItem( IDC_STATIC1)


581:デフォルトの名無しさん
09/05/12 15:34:04
別のダイログだったらコントロールのIDが同じだって識別可能
使いまわすときにいちいち変えてたら面倒くさくてしょうがない。

582:デフォルトの名無しさん
09/05/12 15:39:32
別のダイアログだろうがやることが同じなら
同じコードで実現できる。
というか同じでやった方がいい。

583:デフォルトの名無しさん
09/05/12 15:40:18
>>580
リソースファイルをテキストエディタで開いてみな

584:455
09/05/12 15:42:27
いくつも同じ名前(ID)のコントロールがある場合、実行ファイルはどうやって特定認識するの。
(通常はデフォルトの動作。つまり、カンレント(実行中)のプロシージャで動作するわけでしょ。)
(じゃ別のダイログプロシージャ(別のダイアログボックス)につくられるコントロ-ルには、
どうやって参照するの?って聞いてるのよ。この質問がわからないのかねえええ)
↓はあくまでも実行中のダイアログプロシージャ(ダイアログボックス)が自分に貼られてる
↓コントロールのアドレスに関する値を渡すという関数でしょ。

GetDlgItem( IDC_STATIC1)


585:デフォルトの名無しさん
09/05/12 15:45:09
だから、>>528の中盤に答が書いてあるだろ。

586:455
09/05/12 15:45:27
>>583
それで?

587:デフォルトの名無しさん
09/05/12 15:51:47
>>584
あー
もう
考え方がCすぎるんだよ

ダイアログにはクラスがひもづくでしょ
ダイアログを表示するには
そのクラスのインスタンスを作って表示するでしょ
ってことはそのインスタンス内のIDC_STATIC1は一つでしょ
だからダイアログのインスタンス->GetDlgItem()になるの!

588:455
09/05/12 15:54:52
528?
そうか。なんだ。すまん。
>>528
んじゃ、DlgBの値は、どこで、どうやって取得するわけ?

実際の記述は、取得したときにDlgBという変数を使ったら、
そのまま
DlgB.GetDlgItem(IDC_STATIC1)→でいいわけ?


589:デフォルトの名無しさん
09/05/12 15:58:33
ダイアログB(DlgB)の実体を生成したときに、ダイアログA(DlgA)のメンバ変数(自分で定義)に値をぶちこむ。

590:デフォルトの名無しさん
09/05/12 16:01:36
やっぱりクラスという用語だけしってて中身を知らない感が
ひしひしと伝わってくる。
Cだけ知ってれば他の言語は全部わかったも同然っていう
感じがする。

591:455
09/05/12 16:04:53
>>589
だから、その手法は、>>484で聞いてたんだよな。俺。

DlgB.を先走って「ハンドル」って言ったのは間違いだったかもしれんが。
でもハンドルみたいなもんだろ。とにかく「固有」(結局はアドレスだから)の数値なんだから。



592:デフォルトの名無しさん
09/05/12 16:09:49
ハンドルで表わされる物がオブジェクト指向でのオブジェクトとなるのは
別に難しい概念じゃないと思うのだが
それに何で関数のヘルプ読まないの?
芋蔓式にそれに必要な物とやり方がわかると思うんだけど

593:デフォルトの名無しさん
09/05/12 16:12:18
TBSの記者みたいなやつだな

594:455
09/05/12 16:14:17
>>592
ヘルプに書いてある?
「コントロールのアドレス(又はポインタ)はダイアログが実行中しか取得できません。」
とかって、どっか書いある?


595:455
09/05/12 16:16:41
訂正
・・・ダイアログが実行中しか取得できません。」
・・・その親ダイアログが実行中(フォーカス中)しか取得できません。」

596:デフォルトの名無しさん
09/05/12 16:21:19
おまえはゆとりかw

597:594
09/05/12 16:21:45
>>592

>>594は取り消し
根本的に質問が間違った。質問の本意は、
「ヘルプには、他のダイアログ(外部プロシージャ)にあるコントロールを
直接参照はできません。」とかって書いてある?

だった。



598:デフォルトの名無しさん
09/05/12 16:27:27
>>597
だからね。そこはC++を勉強してたらそういう疑問は出ないの。
それが当たり前なの。
他のインスタンスの変数を直接参照できないように設計するのは
オブジェクト指向の初歩の初歩なの。

599:594
09/05/12 16:30:08
>ダイアログB(DlgB)の実体を生成したときに、ダイアログA(DlgA)のメンバ変数(自分で定義)に値をぶちこむ。

とにかく、だから、俺は、そのことを>>484で問い正していたんだよ。
そうしたら日記に書けとかなんとかって・・・・



600:デフォルトの名無しさん
09/05/12 16:32:31
ウィンドウハンドルだろうがオブジェクトのインスタンスだろうが、プログラムを実行中にしか取得できないわけだが、
ひょっとしてコード内に固定値でアドレスを書こうとしているのか?

601:デフォルトの名無しさん
09/05/12 16:44:48
「実行中」の用語が間違ったな。
「生成中」、または「フーカスになったとき」だな。
vbだと共有変数にいちいち保存しなくても、プロシージャ(ダイアログやコントロール)の
名前だけで、その「擬似ハンドル」みたいなものは自動的に値は持ってるからね。

例えば、
Form2.Label1
って書けば別に、Form2のほうで共有変数(Public)に代入なんかしてなくてもいいわけで。


602:デフォルトの名無しさん
09/05/12 16:47:34
別に共有変数でなくてもいいんだろ?
当然にパラメータで渡せばいいんだろ?


603:デフォルトの名無しさん
09/05/12 16:48:40
455専用スレかよw
他の人が質問できない雰囲気になるぞ

604:デフォルトの名無しさん
09/05/12 16:49:30
すまん

605:デフォルトの名無しさん
09/05/12 16:51:28
>>601
だからVBは嫌われるんだよ


606:デフォルトの名無しさん
09/05/12 16:53:13
なんだ結局質問の内容は
VBのForm2.Label1をどうやったらいい?
たったこれだけか

607:デフォルトの名無しさん
09/05/12 16:55:03
>>606
!!
やっぱりVB厨じゃんww

608:デフォルトの名無しさん
09/05/12 17:08:29
455専用スレ立てようぜ

609:デフォルトの名無しさん
09/05/12 18:43:17
MFCだったらいちいちGetDlgItemしないで
Form2.Label1みたいにメンバ変数にするのもありだな

610:デフォルトの名無しさん
09/05/12 18:48:57
アクセス頻度が高ければ当然そうする。常識だろ。

611:デフォルトの名無しさん
09/05/12 22:30:11
VisualC++でPro*Cの統合開発環境を整えたいのですが
Oracleにのっているやり方が2002、2003等でのマニュアルなので開発環境の構築に手間取っています
誰かやりかたのわかるかたいますでしょうか?
ぐぐっても出ないので質問しました

612:デフォルトの名無しさん
09/05/12 22:44:06
>>611
わかるけど全部教ええる気にはならん
どこまでできてるんだ?

613:611
09/05/12 22:54:20
とりあえずは 
実行ファイルのパス追加
インクルードの追加はしました

その後の.pcを追加した時に出るなんたら規則の設定からマニュアルと違う風になっており止まっています

614:デフォルトの名無しさん
09/05/12 22:58:06
>>613
すまん。.pcファイルはいつもコマンドプロンプトで
proc hoge.pc
とかやって.cにプリコンパイルしてからVCでコンパイルしてたw
つーわけで、他の人にまかす。

615:611
09/05/12 23:02:40
>>614
わざわざありがとうございます
できないっていうことはないので何とか努力してみます

616:デフォルトの名無しさん
09/05/12 23:57:29
150近くもレス使って>>455から>>606を引き出したおまいらに感動した

617:デフォルトの名無しさん
09/05/13 11:41:41
スタック領域を増やさないといけないロジックってどんなの?
俺はしがない業務系プログラマなのでそんなロジック組んだこと無い。

618:デフォルトの名無しさん
09/05/13 12:04:42
>617
たぶんVBの環境の話だから続きはVBスレでやってくれ

619:デフォルトの名無しさん
09/05/13 15:11:10
すたっっくぅ~~!

620:デフォルトの名無しさん
09/05/14 01:09:21
実際に体験してやったことがある人が「こうすればできる。」って言うことと、
、やったことのないものが「こうすればできるはざずだ。」って権威を傘に
他人に受け売りで言うことを、同じレベルで考える人が多いけどさ、それが、
「未熟」っていうことなんだ。


621:デフォルトの名無しさん
09/05/14 01:40:30
>>616
本人は最初から言ってるわけだから、どの程度のレベルか。
↓「引き出した」んじゃなく「忘れてた」んだろ。スレタイと同時に。

>土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに
>成功した、ハンドル使わない方法でやっとだ。

455 :デフォルトの名無しさん:2009/05/12(火) 00:07:15
土曜から日曜にかけて1日かかって、スタティックコントロールに文字列出すことに
成功した、ハンドル使わない方法でやっとだ。
そこでだ、ものは相談だ。ハンドル使うSendMessage()とか、SetWindowText()
のやりかた教えろや。

622:デフォルトの名無しさん
09/05/14 01:44:33
>>616
おまえの考えなら

★Visual C++を教えるスレ★ Part01

って別のスレを建てるか、又は、次からスレタイを

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

★Visual C++を教えるスレ★ Part34

にするか、どっちかだわな。

623:デフォルトの名無しさん
09/05/14 05:22:23
なんか必死になってるぞw

単なる初心者相手ならいいが、自己防衛の言い訳だけが多い奴の相手は時間の無駄だな。

624:デフォルトの名無しさん
09/05/14 09:07:28
そもそも尿簿の話が出てくるからわからなくなる
組んでるのは誰なんだと
尿簿の経歴はどうでもよくて組んでるやつの経歴を
言えっつーのw

625:デフォルトの名無しさん
09/05/14 14:23:11
にょうぼ、て何?

626:デフォルトの名無しさん
09/05/14 14:25:42
女房の新しい言い方

627:625
09/05/14 14:32:28
嫁かぁ サンク^2

628:デフォルトの名無しさん
09/05/14 23:36:07
女なんてマンコがくせえビッチだろ。

629:デフォルトの名無しさん
09/05/15 13:06:48
童貞乙

630:デフォルトの名無しさん
09/05/15 16:34:40
>>628
お前のつきあった女はみんなマンコがくせえビッチだったのか。
かわいそうすぎるww

631:デフォルトの名無しさん
09/05/17 19:08:36
MFCでの作成していますが、
既存のチェックボックス、ボタン、ラジオボタンを自分の作成したイメージ(画像)に変更したいと思います。
チェックボックスやボタンのイメージを自作して、表示させる方法を教えていただけないでしょうか?


632:デフォルトの名無しさん
09/05/17 19:11:05
「オーナードロー」でググってみ


633:631
09/05/17 19:47:12
>>632
ありがとうございます。調べてみます。
ボタンに関してはCBitmapButtonが使えそうですよね。

634:デフォルトの名無しさん
09/05/19 15:43:36
DOS窓に出力したいんですが、どうすればいいのですか?

635:デフォルトの名無しさん
09/05/19 16:05:03
AllocConsole()

636:デフォルトの名無しさん
09/05/19 21:13:11
ボタンの文字に色を付けるってのが鬼畜級の難易度だコレ

637:デフォルトの名無しさん
09/05/19 21:26:57
オーナードローの初歩だ

638:デフォルトの名無しさん
09/05/19 22:03:40
最後のprintfでa,b,cの入力値を表示したいんですが、思い通りにいきません。
どうしたら表示出来るんでしょうか?

#include <stdio.h>
#include <math.h>

main()
{
float a, b, c, d;

printf("上底の長さを入力して下さい:");
scanf("%f", &a );

printf("下底の長さを入力して下さい:");
scanf("%f", &b );

printf("高さを入力して下さい:");
scanf("%f", &c );

d = ( (a+b)*c/2 );

printf("上底:%d、下底:%d、高さ:%dの台形の面積は、%fです。\n", a, b, c, d );
}

639:デフォルトの名無しさん
09/05/19 22:15:03
printf("上底:%f、下底:%f、高さ:%fの台形の面積は、%fです。\n", a, b, c, d );

640:デフォルトの名無しさん
09/05/19 22:42:38
>>639
ありがとうございます。
すごく簡単な事だったんですね・・・半日掛かりきりだったのにorz

641:デフォルトの名無しさん
09/05/20 00:43:48
お願いします。

VC++2008を使っています。
今、エディタの背景色やフォント色を変更しているのですが
ソリューションエクスプローラの背景色やフォント色を変更する場所が見つかりません。
どこから設定するのでしょうか?

642:デフォルトの名無しさん
09/05/20 21:58:28
VSC++使ってるんですけど、デバッグの時に出力メッセージが出なくなりました
成功、失敗、エラーなど一行も表示されません
ソースをコピーして新しいファイルに貼り付けたら表示されるようになりましたが・・どこを触ってしまったんでしょうか?

643:デフォルトの名無しさん
09/05/20 22:19:50
>成功、失敗、エラー
はビルド時のメッセージ。
ソースに変更がない限り自動的にビルドされないから必ず出る必要はない。

644:デフォルトの名無しさん
09/05/20 22:20:27
文字列と数字の混じってる要素{1,2,3,4,5}があり、
配列[2]の時は1,2
配列[5]の時は1,2,3,4,5
と入りきらない分は単純に切り捨てたいときはどんな風に記述するのがいいでしょうか?



645:デフォルトの名無しさん
09/05/20 22:31:48
>文字列と数字の混じってる要素{1,2,3,4,5}があり、
俺には全部数値に見えるが。

646:デフォルトの名無しさん
09/05/20 22:43:22
>>644
すごい意味不明に見える。
コンパイル時に決定するものとしないものの違いとか分かってます?

647:デフォルトの名無しさん
09/05/21 19:19:32
VC++でstring変数を使って,文字列処理を山のようにしたら。
読込みー>+計算ー>””化 読込みー>+計算ー>””化 読込みー>+計算ー>””化
システムメモリーは、細かい断片化になってしまうのでしょうか?

648:デフォルトの名無しさん
09/05/21 20:56:12
VC++2008ExpressEdition(CLR、Windowsフォームアプリケーション)で
ネット上にあるhtmlファイルを取得して保存とか文字列操作して表示とか
したいのですが、どういうクラスや関数を使ったらいいですか?
イメージ的には2ch専ブラみたいに特定のウェブページを取得して
テキストボックスとかに表示したいです。


649:デフォルトの名無しさん
09/05/21 20:59:07
WinInetとか

650:648
09/05/21 21:35:23
>>649
レスありがとうございます。
wininetについて今ネットで調べてみたのですがこれってwin32APIですよね。
win32APIはプログラミングが面倒だという印象を持っているんですが
C++でもwebページの取得はwininetが常套手段なのでしょうか?
VisualC++で使える便利なクラスみたいのはないのでしょうか?
わがまま言ってスイマセン。

651:デフォルトの名無しさん
09/05/21 21:39:53
>>650
便利なMFCのクラスはあるけど、ExpressEditionじゃ使えない。
それに、Windowsプログラミングの基本はやはりWin32APIだから、それが面倒というなら
VBなりC#なり、C++以外でプログラミングすればよろし。

652:デフォルトの名無しさん
09/05/21 22:39:22
>>648
boost::asioとかでいいんじゃないの?

653:デフォルトの名無しさん
09/05/21 23:39:33
特定のウェブページを取得してテキストボックスとかに表示だったら
特に難しい処理はないだろ
やっつけで用が足りる

654:デフォルトの名無しさん
09/05/22 00:13:42
>>648
WebClientとかSystem.Net名前空間の中あされ。
CLRアプリならC#スレでそれとなく聞くのがお勧め。

655:648
09/05/22 00:55:27
>>650-654
皆さんありがとうございました。
WebClientよさそうですね。あとWebRequestもいけるかな・・・
とりあえずこの辺りから勉強してみる事にします。
とは言っても正直VCもC++も全く解らなくてまず何から
手をつけていいのか混乱している状態です。




656:デフォルトの名無しさん
09/05/23 18:20:39
Microsoft Visual C++ 2008 Express Edition
をインストールしたのですが、
コマンドラインからコンパイルできません。
clと入力しても
'cl' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と言われてしまいます。
どうすればコマンドラインからコンパイル出来るようになるでしょうか?

657:デフォルトの名無しさん
09/05/23 18:24:16
>>656
URLリンク(msdn.microsoft.com)(VS.80).aspx

658:デフォルトの名無しさん
09/05/23 18:25:55
>>656 >>657
2005→2008に読み替え

659:デフォルトの名無しさん
09/05/23 18:31:29
ありがとうございます。
普通のコマンドプロンプトからは出来ないのでしょうか?
g++と同じ感覚で使えると便利だと思っているのですが。

660:デフォルトの名無しさん
09/05/23 18:44:18
パス通せばできるだろ

661:デフォルトの名無しさん
09/05/23 18:58:20
VCVARS32 入ってないのか

662:デフォルトの名無しさん
09/05/23 19:01:11
VCVARS32というバッチファイルでコンパイルするんですか?


663:デフォルトの名無しさん
09/05/23 19:07:23
少しは自分で調べたらどうだ? VCVARS32 でググりゃいくらでもでてくるだろ。

664:デフォルトの名無しさん
09/05/23 19:34:40
もちろん調べたんですが分かりませんでした。
確かにいくらでも出てきましたが
実行しても何もおこりません。

665:デフォルトの名無しさん
09/05/23 20:38:59
VCVARS32を実行したら、そのコマンドプロンプトではそれ以降clが使えるようになるよ・・・

666:デフォルトの名無しさん
09/05/23 20:51:42
・・・もしかしてOSを再起動してないからclが使えないのでしょうか。
今度OSを再起動できるようになったら試してみます。
ありがとうございます。

667:デフォルトの名無しさん
09/05/23 21:12:09
>>665見て俺も実行してみた
が、アクセサリのほうのcmdからはclは使えなんだ

668:デフォルトの名無しさん
09/05/23 21:23:52
>>667
ちゃんとCALLしたのか?

669:デフォルトの名無しさん
09/05/23 21:25:55
>>667
「そのコマンドプロンプトで」って >>665 に書いてあるだろ?
アクセサリのコマンドプロンプトで VCVARS32 を実行しなきゃ、アクセサリのコマンドプロンプトでは使えんよ。

670:デフォルトの名無しさん
09/05/23 21:43:39
初めてやったが問題なく使えた、edlin があるのに驚いた

671:667
09/05/23 22:23:52
あ、出来た

672:666
09/05/23 23:23:52
できました!
ありがとうございました。

673:デフォルトの名無しさん
09/05/24 01:55:55
システムの環境変数に登録しとけば?

てか、VC6の頃は自動で登録してくれたのになぁ

674:デフォルトの名無しさん
09/05/24 10:51:09
現在、Minimalist PSPSDKを導入し、
IDEとして、Visual C++を使用したいんですが、
どうもうまくいかない状況です。。

1>Project : error PRJ0019: ツールはエラー コードを返しました : "メイクファイル プロジェクト動作を実行しています。"

URLリンク(sourceforge.jp)チュートリアル
のやり方で、Makefileも作成しています。それに加え、
インクルードの検索パスに
C:\pspsdk\psp\sdk\include
を設定し、
環境変数のPATHに
C:\pspsdk\bin
としています。

ほかに何か不備があるのでしょうか?

よろしくお願いします。

675:デフォルトの名無しさん
09/05/24 11:06:36
なぜそのwikiで質問しない?
ここはそのサイトと関係ないだろ

676:デフォルトの名無しさん
09/05/24 11:10:21
>>675
頭がパーだからに決まってるだろw

677:デフォルトの名無しさん
09/05/24 12:53:20
>>675

すみませんでした。。
そちらのお世話になってきます。

678:デフォルトの名無しさん
09/05/24 14:20:46
VisualStudio2005でMFCアプリをつくろうとしています。
それでコマンドライン引き数をプログラムに渡したいのですが、
スケルトンのままでビルドしてコマンドラインから、

ttt>hogehoge.exe test1(ret)

と実行すると、test1というファイルをさがしに行ってしまい、
ファイルが見つからないというメッセージを出して終了してしまいます。

普通にコマンドラインを渡すにはどこをいじればいいのでしょうか?


679:デフォルトの名無しさん
09/05/24 14:28:30
CCommandLineInfo::ParseParam();
URLリンク(msdn.microsoft.com)(VS.80).aspx

680:デフォルトの名無しさん
09/05/24 14:57:25
その文章だと本人の思い込みの可能性が強く感じられるから
アドバイスは遠慮する。

681:デフォルトの名無しさん
09/05/24 15:33:15
___arg
アンダーバーのついたargとかいうもんがあった希ガス

682:デフォルトの名無しさん
09/05/24 16:36:13
ヘルプのdocument explorerの文字を大きくするにはどうすればいいのですか?
初心者過ぎる質問ですがよろしくお願いします。

683:デフォルトの名無しさん
09/05/24 16:52:24
「ヘルプに関するヘルプ (Microsoft Document Explorer ヘルプ)」を読め。

684:デフォルトの名無しさん
09/05/24 16:56:49
>>682
表示メニューか右クリックメニュー

685:デフォルトの名無しさん
09/05/24 17:07:54
683の言われたとおりにヘルプからで探したところ、
インターネットオプションで「WEBページのフォントサイズを使用しない」を選択すればよいことがわかりました。
ありがとうございます。

>>684
オンラインのページだと、文字のサイズを変えても、ページ内の文字の大きさが変わりませんでした。

686:デフォルトの名無しさん
09/05/24 23:09:54
>>679
CCommandLineInfoでぐぐったら何とかなりました。Thxです。

>>681
それ以前にまったくアプリが立ち上がらなかったので。

687:デフォルトの名無しさん
09/05/24 23:23:45
アプリか
自分もいつか作ってみたいもんだね

688:デフォルトの名無しさん
09/05/24 23:50:48
>>686
ドキュメント/ビュー アーキテクチャを無理に使う必要はないんだぞ。:-)

689:デフォルトの名無しさん
09/05/25 00:59:35
>>688
ドキュメントビューアーキテクチャって何を作って欲しいのか不明だよね

690:デフォルトの名無しさん
09/05/25 11:16:32
>何を作って欲しいのか不明
それは君の経験不足だと思うが。

691:デフォルトの名無しさん
09/05/25 18:38:21
最近VisualC++を使い始めたのですが、ソフトの特性を理解できていなくて困っているので一つ質問させてください。

main関数を含む単独のcppプログラムを2つ並行して使っているのですが、
それぞれ1つずつのVC++ウィンドウを開いて、それぞれにソリューションを表示してコンパイル(ビルド?デバッグ?)しています。
この2つを1つのウィンドウで開き、タブを切り替えてそれぞれ個別にコンパイルできるような構成にはできないでしょうか?

1つのソリューションに2つのプロジェクトを作って1つずつソースファイルを入れてCtrl+F5を押しても片方のソースだけが実行されてしまって悩んでいます。

692:デフォルトの名無しさん
09/05/25 19:19:32
Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)をインストールしたいんだけど、インストーラーでドライブ直下に展開されちゃう。

どなたか保存場所の指定の仕方わかります?

693:デフォルトの名無しさん
09/05/25 19:26:33
>>691
後者の状況で、ソリューションエクスプローラ上のプロジェクトのアイコンを右クリック、
メニューの中の「スタートアッププロジェクトに設定」を選ぶと、
Ctrl+F5などを押したときに起動するのがそっちになる。
あと、ソリューションのプロパティで両方同時になどといった設定もできる。

頻繁に切り替えることを考えた作りに見えないし、
望みどおりになるのは難しいと思う。
本質的に別のなら、最初みたいに別々のソリューションにするほうがいいと思う。

694:デフォルトの名無しさん
09/05/25 22:16:43
クラスを使ってゲーム作成などをし始めたのですが、作ってるうちにこんがらがってしまいます
配列はとても扱いやすくいので何もかも配列で処理させれば問題なく出来るんですが、
こういう場合はどうすればいいんでしょうか

無理してクラスは使わなくていいんでしょうか?それとも僕はC++に向いてないんでしょうか?

695:デフォルトの名無しさん
09/05/25 22:52:06
>>694
その配列に処理するための関数がくっついていれば便利だと思うことはないかね?

696:デフォルトの名無しさん
09/05/25 22:58:05
>>694
たくさん作ればそのうちわかる

697:694
09/05/25 23:03:34
ありがとうございます!
>>695
説明では何度も読んでいるんですが、どうしても使いこなせないんですよね。多分理解できてないんでしょう・・
計算はmain関数、データは配列に格納って固定概念がいつまでも離れないんです
>>696
ありがとうございます。とりあえずあまり考えずに何か色々作ってみます。
その内なにかひらめくかもしれませんね

698:デフォルトの名無しさん
09/05/25 23:09:24
プログラミングのノウハウ、作り方や設計等、デザインパターンもそう。
本だけの知識で修得できるものじゃない、体で覚える方が大切。

699:デフォルトの名無しさん
09/05/26 02:48:19
判るなぁ、その気持ち
大きいのと小さいのは判るんだけど、それを使って何かやろうとすると
ウゼーと思ってオブジェクト化崩しちゃう
最後まで設計するのが面倒でコーディングに走っちゃうのが
駄目なんだろうな

700:デフォルトの名無しさん
09/05/26 09:26:35
この人はグローバル変数やめるところから始めるべきだ

701:デフォルトの名無しさん
09/05/26 13:04:20
質問です。
開発環境はVisual C++2005です。
静止画を連続表示してGIFアニメのように見せるソフトを考えています。
今、連続画像AとBがあって、同時に再生スタートして、
ずれないように毎画像(毎フレーム)ごとにお互いの同期を取りながら再生させるには、
どのようにすればよいでしょうか?
よろしくお願いします。

702:デフォルトの名無しさん
09/05/26 15:18:17
>>701
すれ違いではあるまいか。
答えは、同期なんかとらなくても、同じスレッドで表示すればいいだけだろ。

703:デフォルトの名無しさん
09/05/26 19:33:33
>>701
ギャハハハw
ダッセーw


以下、>>701の発言を正当化する後付け設定の嵐どぞ↓w

704:デフォルトの名無しさん
09/05/26 19:46:28
  ┌┐         / //
 [二  ] __     〔/ / 
   | |/,ー-、ヽ      / 
  / /  _,,| |     ./      
 レ1 |  / o └、  ∠/    ∧_∧    
   .|__|  ヽ_/^     ,/     ( ´∀`)       ))
      __       /      /つ( ̄`ヽO_ノ⌒ヽ
   [二二_  ]    /     ノ   )        \ ))
       //    {..    (__丿\ヽ ::    ノ:::: )
     / ∠__    ̄フ..      丿        ,:'  ))  
    ∠___  /  /    (( (___,,.;:--''"´``'‐'    
     _   / /  \      
    / o ヽ/  /   /      
    ヽ__ /    \

705:デフォルトの名無しさん
09/05/26 21:59:51
VC++2008 MFCダイアログベースでアプリを作成しているのですが
ダイアログにファイルをドロップした時に、
ダイアログ上に設置されたリストコントロール上にドロップされたのと、
それ以外のダイアログ上の場所にドロップされたのとで別の処理をしたいのですが、
どう判別したらいいのかわかりません。
教えてください。

よろしくお願いします。

706:デフォルトの名無しさん
09/05/26 22:12:35
ダイアログにファイルをドロップした時→ダイアログにWM_DROPFILESがポストされる。
リストコントロールにファイルをドロップした時→リストコントロールにWM_DROPFILESがポストされる。

むろん、ダイアログもリストコントロールも Accept Files を True にしておく。

[別解]
ダイアログだけ Accept Files を True にしておき、ドロップされた時のマウス位置で判別する。

707:デフォルトの名無しさん
09/05/26 22:19:41
最近プログラムの流れをノートに書いてるんですが、
こういう流れの図ってなんていうんでしたっけ?

708:デフォルトの名無しさん
09/05/26 22:21:03
フローチャート

709:デフォルトの名無しさん
09/05/26 22:22:28

   ̄ヽ、   _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     `'ー '´              ,. -- 、
      ○             ,' , '⌒,ノ
       O           .__ i/  ´
        o    ,,.. '"´ ̄ (__)r'ヽ         と
         。 /        ` ´`ヽ        思
           ,'     ,、 ─-     ',       う
           ! 、 ,.i- i ハi,;-ァ!、 i   i      神
           i i i !,-;!、  ':,_rハiノ|   .|     .綺
           レV!. i.ハ_r! 、  "" i |.   |     で
            i.八"    _   ノ |.  |      あ
            l.|ゝ.>,,、__,,.. イノ レハ  |      っ
            レ| l  | ,.イ-ーニノト.ー 、i |     た
             .| l ,.ヘ、ニ_ノノ  `ヽ!
              | / //不\ヽ    `ヽ


710:デフォルトの名無しさん
09/05/26 22:34:16
>706
回答ありがとうございます。

>ダイアログにファイルをドロップした時→ダイアログにWM_DROPFILESがポストされる。
こちらはOKですが、
>リストコントロールにファイルをドロップした時→リストコントロールにWM_DROPFILESがポストされる。
こちらの場合の処理手順がわからないのでマウス位置判別の方法で試してみます。

どうもありがとうございました。


711:デフォルトの名無しさん
09/05/26 22:50:52
>こちらの場合の処理手順がわからない
CListCtrl の派生クラスを作成して当該リストコントロールに結びつけ、
その派生クラスでWM_DROPFILESメッセージを処理する。

712:710
09/05/26 23:13:35
>711
試行錯誤しながら試したらうまくいきました。
ありがとうございました。

713:デフォルトの名無しさん
09/05/27 23:39:01
デバッグ中にステップインでプログラムを進めているのですが、いつの間にか終わってしまいます
「何かキーを入力してください」の画面も出ません
ウォッチ式のところも文字がグレーになってしまいます
ループのところでハマっているかとも思いましたが、そういうわけでもありませんでした
これはどういう状態なのでしょうか?

714:デフォルトの名無しさん
09/05/28 10:22:58
出力ウィンドウには何か出てない?

715:デフォルトの名無しさん
09/05/28 12:26:06
リリースビルドだったら許さん

716:デフォルトの名無しさん
09/05/28 12:35:47
アクセスバイオレーションで続行して飛んでるとか
オブジェクト残ってて実は終わってないとか

717:デフォルトの名無しさん
09/05/28 17:26:40
猫でもわかるプログラミングさんのサイトを使っていたんですが、
WindowsSDKのプログラムを打ちこんだのですがVisual C++ 2008 EEではビルド出来なくて困っています
Visual C++ 2008 EEのアプリケーション開発入門用のサイトで
お勧めなのはありませんか?

718:デフォルトの名無しさん
09/05/28 18:19:08
ビルドできないってどんな理由で?
ユニコード文字セットのせいじゃないの?

719:デフォルトの名無しさん
09/05/28 18:32:09
URLリンク(www.kumei.ne.jp)のコードをそのままコピペして使いました
そしてビルドしたところ以下のようなエラーメッセージが出ました

sample01.cpp(38) : error C2664: 'CreateWindowExW' : 2 番目の引数を 'char [25]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)
1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。

この他に二つエラーが出ましたが、
そちらは型変更のキャストを入れています

720:717
09/05/28 18:38:56
すみません、>>719>>718の返答ですorz

721:デフォルトの名無しさん
09/05/28 18:42:55
>>719
まさに>>718
マルチバイトとUNICODEが混在してる。
プロジェクトのプロパティと使用してる文字セットを見直して。

722:デフォルトの名無しさん
09/05/28 18:57:36
>>721
助かりました
Unicodeからマルチバイトに変更したら問題なく通りました
半日悩んでたので、ようやくすっきり出来ましたw

723:デフォルトの名無しさん
09/05/29 02:03:34
mfcの求人がないお(;ω;)

mFCこそしきょくの現代プログラミングだとおもうんだお(^ω^)


724:デフォルトの名無しさん
09/05/29 02:17:42
>>723
あー、わかる
ホント仕事ないよなぁ・・・
っていうか別にこれに限らずプログラム組む仕事ならちょっとなれれば
なんでもできるからどこへでもまわしてくれって思うけどね

725:デフォルトの名無しさん
09/05/29 08:04:27
MFCの求人がないお
というレスに対してのレスとしてそれは正しいのか?

仕事がないおじゃなくてMFCの求人がないおだぞ
的外れにもほどがあるお

726:デフォルトの名無しさん
09/05/29 08:17:32
Webじゃ作れない業務に強くなるしか無いんじゃない?
ムスレの話題じゃないなw

727:デフォルトの名無しさん
09/05/29 16:36:55
ここで質問すべきなのか分かりませんが。

8FFFFFFFU と 1U では

_BitScanForwardした結果を返すスピードは
変わらないのでしょうか?

上位のほうにあろうと下位のほうにあろうと関係ないのでしょうか。


728:デフォルトの名無しさん
09/05/29 16:52:55
自分で試しても違いがわからなかったら変わらないと言える。

729:デフォルトの名無しさん
09/05/29 16:53:31
>>727
URLリンク(homepage1.nifty.com)
のページによると_BitScanForwardはアセンブラレベルでは
bsfの1命令に落ちるみたいなので、変わらないんじゃないの

確実な答えがしりたいなら人に聞くんじゃなくて、Intelのサイトとかで
対象CPUの命令のスペックを調べること

730:デフォルトの名無しさん
09/05/29 19:51:56
今、学校の課題をやっているところなのですが、
「関数 'erfc' は定義されていません。」と出てしまいました。
erfc()はmath.hのエラー関数の関数で、
ぐぐったところ、標準ライブラリ(拡張)と出てきました。
どうすればいいでしょうか。お願いします。

731:デフォルトの名無しさん
09/05/29 20:20:17
なんだ、まだ解決してないのか
先生に聞いてみな

732:デフォルトの名無しさん
09/05/29 20:44:58
>>725
ないのはしょうがねぇじゃんw
でもそれ以外不可ってのが俺的にネックだなぁ・・・
って感じでレス書いてる内に俺の都合レスになったw

733:デフォルトの名無しさん
09/05/29 20:58:57
>729
1命令で収まりそうですね。
ビットを探すためにループ処理はしていませんね。
ありがとうございました。


734:デフォルトの名無しさん
09/05/29 22:38:59
>>724
畑違いだとめっちゃしんどいぞ。

735:デフォルトの名無しさん
09/05/29 22:40:12
>>734
っていっても俺はじめゲーPGだしw

736:デフォルトの名無しさん
09/05/30 17:33:07
関数を作ると、

関数に 2 個の引数を指定できません。

と出るんですが、どうすればいいでしょうか



737:デフォルトの名無しさん
09/05/30 18:00:51
関数プロトタイプを見直せ。

738:デフォルトの名無しさん
09/05/30 18:01:23
それは作ったほうじゃなくて呼び出したほうのエラー
具体的にどうやったのか?

739:デフォルトの名無しさん
09/05/30 18:49:23
>>737,>>738
分かりました、ありがとうございます
いままで関数のほうばかり見て、
関数プロトタイプの括弧の中を記述し忘れていました

740:デフォルトの名無しさん
09/05/30 20:01:17
さっきVisual C++ 2008 Express Edition をインスコしたとこで、とりあえず簡単なプログラム実行させようとしたんだけど、

include ファイルを開けません。'iostream.h': No such file or directory
って出てコンパイル通らんという状態なんだが

Cygnusでは実行できたからソースコードが悪いわけではないと思うんだが・・・
それとも新規プロジェクトはWin32コンソールアプリケーションじゃあ駄目だったのか?

741:デフォルトの名無しさん
09/05/30 20:13:08
インクルードパスに追加すればいいだけでは?

742:740
09/05/30 20:16:25
#include <iostream.h>は#include <iostream>にしたらエラー吐かなくなった。 
なんか新しい書式だと.hを付けないから古いほうだとエラーになるとかなんとか…?
でも俺らの参照する文献(ネット上も含めて)には旧バージョンもまだまだあるだろ…迷惑な

でも#include <iomanip.h>のほうはエラー吐き続けるんだが・・・

743:デフォルトの名無しさん
09/05/30 20:32:56
#include <iomanip>


744:デフォルトの名無しさん
09/05/30 20:48:24
すみません。書籍スレと迷ったんですが、こっちで聞かせてください。

大分、MFCにもなれ、自作アプリを3個くらい手の込んだのを作りました。ある程度のアプリなら
ネットやら書籍で検索しながら作れるような気はしてます。
書籍もオークションやらブックオフで色々あさって技術評論社とかAsCIIのを
12冊くらい持ってます。で、色々お勧め本をみるとハーバートシルトのMFC6.0という分厚いやつがお勧めらしいですが
本屋でぱっと見た限りほとんど知ってる事だと感じました。実際読んでないんでわかりませんが、
それでも含蓄あるから買ったほうがいいとか
そういうことありますか?

745:デフォルトの名無しさん
09/05/30 21:00:59
人それぞれだと思うよ。
もっとも、趣味範囲でのプログラミングなら、参考書に載っていない部分を、工夫しながら作っていくのが面白いのだけどな。

746:デフォルトの名無しさん
09/05/30 21:13:51
他に持ってる本で用が足りてれば買ってもしょうがないだろうけど
そんなの全部内容比較しなきゃ誰にもわからんだろ

747:デフォルトの名無しさん
09/05/31 01:45:45
プログラミングに限らず大抵の分野について初心者用の本ばかりなんじゃないの。
中級向けの本なんて作るの大変なうえに売れないし、作る人いないんじゃないかな。
雑誌でちょっとずつ高度な話を連載して書籍化ってパターンがあるけど雑誌が売れなくて消えてく時代だし。

748:デフォルトの名無しさん
09/06/03 00:07:40
すいません。教えてください。
#include <string>
#include <iostream>
using namespace std;

class User
{
private:

public:
User()
{
cout << "デフォコン" << endl;
}
};

int main()
{
User x;
User y();
return 0;
}

User y();でデフォルトコンストラクタが呼ばれないのは何でですか?

749:デフォルトの名無しさん
09/06/03 00:16:32
>>748
User型の戻り値を持つ関数yのプロトタイプ宣言とみなされてるとか


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