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

このエントリーをはてなブックマークに追加
1ぬるぽ
1 : ◆Manna2uCLg :2005/04/15(金) 13:33:14
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

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

  ∧_∧
 ( ´∀`) < ぬるぽ

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

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

過去スレ、関連スレなどは>>2-3
2ぬるぽ:2005/05/16(月) 11:20:08
3ぬるぽ:2005/05/16(月) 11:20:27
【関連スレ】
■MFC相談室 mfc13d.dll■
http://pc8.2ch.net/test/read.cgi/tech/1110179996/l50
Win32API質問箱 Build31
http://pc8.2ch.net/test/read.cgi/tech/1114762194/l50
鬱だ氏のう DirectX (Part 15)
http://pc5.2ch.net/test/read.cgi/tech/1096649788/l50
C言語なら俺に聞け! Part 106
http://pc8.2ch.net/test/read.cgi/tech/1113102515/l50
C++相談室 part40
http://pc8.2ch.net/test/read.cgi/tech/1113408957/l50
C/C++の宿題を片付けます 43代目
http://pc8.2ch.net/test/read.cgi/tech/1115794784/l50
【初心者歓迎】C/C++室 Ver.17【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1115958601/l50

【関連サイト】
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
MSDN ライブラリ
http://www.microsoft.com/japan/msdn/library/
Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
Google
http://www.google.co.jp/
4ぬるぽ:2005/05/16(月) 11:20:47
5ぬるぽ:2005/05/16(月) 11:21:16
急速にスレの質が低下してまいりました
6デフォルトの名無しさん:2005/05/16(月) 11:28:28
1000!
7デフォルトの名無しさん:2005/05/16(月) 11:30:13
今だ!2ゲットォォォォ!!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     ∩ ∩
   〜| ∪ |         (´´
   ヘノ  ノ       (´⌒(´
  ((つ ノ⊃≡≡≡(´⌒;;;≡≡≡
   ̄ ̄ ̄(´⌒(´⌒;;
   ズズズズズ
8前スレ994:2005/05/16(月) 11:38:47
>1
乙です

>ダブルクリックで移動
まぁそれで十分といわれればそうなんですが
できればいいなぁと言う願望があったわけで
できないならそれでもいいんですがね

ついでに前スレ1000get
9デフォルトの名無しさん:2005/05/16(月) 12:39:34
atof() の動作原理が知りたかったのでソースを呼んでみたんですが、
実体の _fltin() が見つかりません。
わかる人いますか?
10デフォルトの名無しさん:2005/05/16(月) 13:08:13
conv.lib に入っているね
これのソースは、、、
11デフォルトの名無しさん:2005/05/16(月) 13:13:20
アセンブラがわかるのなら混合モードで見れるね。
129:2005/05/16(月) 13:19:40
アセ見るしかないですか

ありがとうございました
13デフォルトの名無しさん:2005/05/16(月) 13:35:32
>>前スレ990さん
> VC++を学びたいのですが、どこから手を突けたらよろしいでしょうか?
> 体系的に学べて良質なWebサイトがありましたら誘ってください

無料で見れるWebには過大な期待は禁物です。

コンピュータ関連の本が充実した本屋さんで立ち読みして、
自分の気に入る本を探したほうが、
多少のお金がかかりますが、結果的にはよいことになると思う。

・・・とはいっても、
いまだかつて、これを1冊読めばOK、という本を見たことがないですし、
無料で見れるWeb未満の内容の本や罠たっぷりの本もあると思う。
14デフォルトの名無しさん:2005/05/16(月) 14:48:53
nmakeの使い方を教えてください
15デフォルトの名無しさん:2005/05/16(月) 14:56:52
16デフォルトの名無しさん:2005/05/16(月) 15:20:42
VC(7.1)で作成したプロジャクトで、削除可能な中間ファイルは

***.ncb
Debugフォルダ
Releaseフォルダ

以外にありますか?
というのは、なるべくコンパクトにして持ち歩きたいのです
17デフォルトの名無しさん:2005/05/16(月) 15:34:54
経験でわかる
18デフォルトの名無しさん:2005/05/16(月) 15:41:16
>>16
プロジャクトなる物が何かは知らんが、
*.suo, *.aps辺りも消して医院ジャマイカ?
19デフォルトの名無しさん:2005/05/16(月) 16:07:42
自分で作ったやつ以外は消しても復元可能
20デフォルトの名無しさん:2005/05/16(月) 18:27:54
.net2002ってnmake使えないのですか?
せっかくバッチで6.0で一括コンパイルできたのに。
不便だ〜。
21デフォルトの名無しさん:2005/05/16(月) 18:45:34
配布可能なdllの一覧が載ってるURLってご存じでしょうか?
MSDNのどっかにあった気がするんですが・・・
ブックマークされている方ががおりましたら、教えて下さいませんか?
m(_ _)m
22デフォルトの名無しさん:2005/05/16(月) 19:00:11
> スレッド 0xC8 終了、終了コード 0 (0x0)。

この頃、「(0x0)」が顔文字に見えて仕方がない。
23デフォルトの名無しさん:2005/05/16(月) 19:03:31
(0w0)
24デフォルトの名無しさん:2005/05/16(月) 19:05:39
#include<stdio.h>
void plus(int *,int *,int *);
void main(void)
{
int i,j,ianswer;
i=2;
j=3;
plus(&i,&j,&ianswer);
printf("\ni=%d j=%d answer=%d\n",i,j,ianswer);
}
void plus(int *x,int *y,int *ians)
{
*ians=*x + *y;
}
これがグローバル関数宣言らしいんですけど、ローカル関数宣言
にするには、どーしたらいいんですか?
25デフォルトの名無しさん:2005/05/16(月) 19:08:59
どのへんがグローバルなのか激しく謎だ・・・
26デフォルトの名無しさん:2005/05/16(月) 19:14:11
>>21
ヒント:再配布はredistribution、略してredist
27デフォルトの名無しさん:2005/05/16(月) 19:14:27
staticをつけるとかそういうことでしょう。
28デフォルトの名無しさん:2005/05/16(月) 19:16:12
再頒布可能なファイルの一覧見たら
初めて見るファイルが一杯あった。
ビットマップとか結構使えそう
29デフォルトの名無しさん:2005/05/16(月) 19:23:11
>>24
2段目の
void plus(int *,int *,int *);
がグローバル関数宣言だそーです。
30デフォルトの名無しさん:2005/05/16(月) 19:25:04
新スレ立ったと思ったら
またスレ違いか
いい加減にしてほしいな
31デフォルトの名無しさん:2005/05/16(月) 19:27:00
親切のつもりなら適切なスレ教えてやれよ
32デフォルトの名無しさん:2005/05/16(月) 19:28:17
>>24
マルチじゃねーか
3321:2005/05/16(月) 19:44:21
>>26
ありがとうです!
灯台元暗しでした
34デフォルトの名無しさん:2005/05/17(火) 00:25:30
static void plus(int *,int *,int *);
にしたいって意味か?
35デフォルトの名無しさん:2005/05/17(火) 08:04:15
ドライブ名をすべて列挙するにはどうしたらよいのでしょうか?
36デフォルトの名無しさん:2005/05/17(火) 08:10:27
char drives[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
37デフォルトの名無しさん:2005/05/17(火) 09:40:19
>>36
で、それから?
38デフォルトの名無しさん:2005/05/17(火) 09:51:30
標準C/C++で可能な範囲はスレ違い
ここはあくまでVC++
39デフォルトの名無しさん:2005/05/17(火) 09:55:48
>>35
↓のスレに行くと幸せになれる

Win32API質問箱 Build31
http://pc8.2ch.net/test/read.cgi/tech/1114762194/
40デフォルトの名無しさん:2005/05/17(火) 09:55:57
>>39
ドライブ名の列挙はここでいいんでない?
41デフォルトの名無しさん:2005/05/17(火) 10:03:27
つかググれば一発な質問を何故するんだろうな?
42デフォルトの名無しさん:2005/05/17(火) 23:02:44
>>40
MFCを使うならここでもいいけど・・・。

単にWin32APIの質問に見えたからさ。
43デフォルトの名無しさん:2005/05/18(水) 14:53:19
スタンバイから復帰させる方法を教えてください
44デフォルトの名無しさん:2005/05/18(水) 15:38:27
すれ違い
45デフォルトの名無しさん:2005/05/18(水) 16:33:36
Win32アプリケーションでDos窓開いてそこにエラーメッセージ出力するのはどうすればいいのでしょうか?
46デフォルトの名無しさん:2005/05/18(水) 16:39:35
プロセス間通信
47デフォルトの名無しさん:2005/05/18(水) 17:48:50
>>45
こうすればstd::cerrもstderrも使える。
int _tmain()
{
  STARTUOINFO si;
  GetStartupInfo(&si);
  return _tWinMain(GetModuleHandle(0), 0, PathGetArgs(GetCommandLine()),
    StartupInfo.dwFlags & STARTF_USESHOWWINDOW ? StartupInfo.wShowWindow : SW_SHOWDEFAULT);
}
48デフォルトの名無しさん:2005/05/18(水) 18:57:19
>>46-47
リンカの設定でサブシステム:コンソールをつけて
WinMainの前に47氏のコードを貼り付けることで
見事にドス窓に出力することができました。
どうもありがとうございました。
49デフォルトの名無しさん:2005/05/18(水) 20:33:46
>>47
便乗質問。
SYBSYSTEM:CONSOLEしたらこんなん出ましたけどどしたらいいですか?
LIBC.lib(crt0.obj) : error LNK2019: 未解決の外部シンボル _main が関数 _mainCRTStartup で参照されました。
50デフォルトの名無しさん:2005/05/18(水) 21:31:33
初心者スレで珍しい質問されても困るなあ
変態はよそへ行ってほしい
51デフォルトの名無しさん:2005/05/18(水) 22:27:53
ポインタに new で確保した配列へのポインタを入れて
デバッガで中身を見ようとすると最初の1変数分しか表示されないのですが、
全部一度に見る方法はないでしょうか?
今のところ一時的に
int array[1024];
memcpy(array, pointer, sizeof(array));
というコードを入れて array を見ているのですが、いちいち
これを書くのも面倒なので、もっといい方法があったら教えてください。
5251:2005/05/18(水) 22:29:04
書き忘れました、VC6.0です。
53デフォルトの名無しさん:2005/05/18(水) 22:54:27
メモリビューア使え
54デフォルトの名無しさん:2005/05/18(水) 22:54:39
>>51
それ多分仕様
DOSの頃のデバッガもそうだったし
やるんならメモリ直接覗く位かね
55デフォルトの名無しさん:2005/05/18(水) 23:53:43
メモリウィンドウを出して、変数をドラッグ&ドロップ
あとは配列にキャストする手も・・・
56デフォルトの名無しさん:2005/05/19(木) 01:56:13
>>51
ウォッチに
pointer,1000
と書く
57デフォルトの名無しさん:2005/05/19(木) 08:54:24
>>49
プロトタイプ宣言しろ。
あとMFCアプリでも使えるぞ。
58デフォルトの名無しさん:2005/05/19(木) 09:37:51
マウスのボタンの数を取得するにはどうしたらよいのでしょうか?
59デフォルトの名無しさん:2005/05/19(木) 09:56:42
GetSystemMetrics(SM_CMOUSEBUTTONS);
60デフォルトの名無しさん:2005/05/19(木) 18:33:04
キーボードのボタンの数を取得するにはどうしたらよいのでしょうか?
61デフォルトの名無しさん:2005/05/19(木) 18:42:52
サーバー、クライアントプログラムを作る時
ひとつのソリューションの中にサーバープロジェクトと
クライアントプロジェクトを作成でよろしいのでしょうか?

これで正解のときサーバーのほうをスタートアップにして
VCから実行させれば自動的にクライアントの方も起動するための設定は
どのようにすればいいのでしょうか?
62デフォルトの名無しさん:2005/05/19(木) 18:49:38
分割ウィンドウで、親ウィンドウをマウスなんかでサイズ変更したとき、分割比率を保持したまま
ウィンドウのサイズが変更できるようにしたいのですが、どうしたらいいのでしょう?

ヘルプにはCSplitterWndクラスにオーバーライド可能な関数で使えそうなのが示されていますが、
VCのクラスを作るダイアログでMFCの基本クラスを探してもこれがありません。
63デフォルトの名無しさん:2005/05/19(木) 18:50:33
ここMFCスレなの?
6461:2005/05/19(木) 18:50:50
まるちスタートアッププロジェクトなるものを発見しました。
すれ汚し失礼いたしました。
65デフォルトの名無しさん:2005/05/19(木) 19:45:34
DOSコマンドの tree をやった時のようなごとく、
コンピューターに存在する全てのパスを得たいのですが、どうすれば
よろしいのですか?
66デフォルトの名無しさん:2005/05/19(木) 19:49:48
>>62
MFC以外もいいけど、何でもありじゃない。
普通のVCの入門書の範囲内ならOK
67デフォルトの名無しさん:2005/05/19(木) 19:52:59
>>65
shなんたら
68デフォルトの名無しさん:2005/05/20(金) 02:22:54
>>13
プログラミング言語C++ 第3版 は罠ですか?7800円もするんですけど。
69デフォルトの名無しさん:2005/05/20(金) 02:25:17
すいません、

int main() { }

int t_main() {}

int main(int argv, char* argc) { }

なんででしょうか?エントリポイントの名前違うし・・・引数取ったり取らなかったり。。。
70デフォルトの名無しさん:2005/05/20(金) 03:46:29
>>56
やっぱり方法があったんですね。ありがとうございます。
71デフォルトの名無しさん:2005/05/20(金) 08:36:15
C++はスレ違い
ここはVC++
72デフォルトの名無しさん:2005/05/20(金) 09:12:53
>>69
そういうことが気になるなら
自分でソース見るかビルドして比較してみろよ

つか「引数取ったり取らなかったり。。。 」なんて問題外
73デフォルトの名無しさん:2005/05/20(金) 10:35:09
>>72
初心者スレですよ
74デフォルトの名無しさん:2005/05/20(金) 10:54:27
C/C++初心者が来る所じゃないけど
75デフォルトの名無しさん:2005/05/20(金) 13:44:35
初心者です。
よろしくお願いします。
76デフォルトの名無しさん:2005/05/20(金) 13:51:32
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__∧∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>75
77デフォルトの名無しさん:2005/05/20(金) 13:55:10
VC2003を使っています。
date.txt(数値が1行ずつ書き込まれたファイル)をtest.cに読み込ませる?にはどうしたらいいのでしょうか?

UNIXのリダイレクションにあたる行為です。
78デフォルトの名無しさん:2005/05/20(金) 14:17:07
date.txtをtest.cにリネームすりゃいいんじゃないの?
やり方はいろいろあるけど、そういう仕様ならたぶんそれが一番効率的
79デフォルトの名無しさん:2005/05/20(金) 15:28:50
UNIXとかわらんよ
80デフォルトの名無しさん:2005/05/20(金) 15:41:54
cat date.txt > test.c
こういうこと?
81デフォルトの名無しさん:2005/05/20(金) 17:15:33
最近C言語を学び始めたド素人です。
知り合いに「C言語やるならツール買った方がいいよ」と進められ、
開発ツールなるものを調べたのですがよく分かりません。
Visual C++はC++だけでなく、C言語にも対応しているのでしょうか?
教えてください。宜しくお願いします。
82デフォルトの名無しさん:2005/05/20(金) 17:17:27
対応してるよ。
今なら Visual Studio 2005 Beta2 が無料で使えるらしい
8382:2005/05/20(金) 17:18:20
らしいから、それで試してみたらよい
84デフォルトの名無しさん:2005/05/20(金) 17:23:42
【無料】Visual Studio 2005 Express【Beta】
http://pc8.2ch.net/test/read.cgi/tech/1091543344/l50
8581:2005/05/20(金) 17:47:35
>>82
ありがとうございます。
早速イジってみます。
86デフォルトの名無しさん:2005/05/20(金) 18:02:19
>>69
_tmainはtchar.hの中でこう書かれている。
#ifdef _UNICODE
#define _tmain wmain
#else
#define _tmain main
#endif
wmainはargv(お前がargcと書き間違えている方)がwchar_t* []になっていて、
_TCHARと組み合わせてUnicodeを使うかどうかを切り替えられるようになっている。
87デフォルトの名無しさん:2005/05/20(金) 19:30:31
VS6を使ってます。
自分のイメージでは、プログラム全体の動作速度というかキビキビ度は
SDK > MFC > VB6
なんですが、この認識であってますでしょうか?
もちろん、内部の仕様や規模によってケースバイケースでしょうが、
このあたりの比較についてコメント頂きたいです。よろしくお願いしますです。
88デフォルトの名無しさん:2005/05/20(金) 19:33:39
大差ねーからどれでも好きなの使っとけマジレス
89英語XP環境では全く起動できません。:2005/05/20(金) 19:39:11
日本語XP環境では問題なく起動できるのですが、
(.dllファイルと.exeファイルがフォルダーにおいてあります。)
.exeファイルをダブルクリックして起動させるだけですが、
英語XP環境では全く起動しません。
原因対策等をご教授いただけないでしょうか?
90デフォルトの名無しさん:2005/05/20(金) 19:42:12
英語のリソースもつける
91デフォルトの名無しさん:2005/05/20(金) 19:50:43
>>87
速度が関係するのは、たいていGUIに関係ない部分で
内部処理はどうにでもできるわけだし
92デフォルトの名無しさん:2005/05/20(金) 19:54:34
ゲームプログラマ目指してる超初心者なんだけどゲーム作るために必要なツールっていくら?
93デフォルトの名無しさん:2005/05/20(金) 19:55:54
>>92
タダ(学習能力とモチベーションが高い場合)〜数千万(コンシューマ)
94英語XP環境では全く起動できません。:2005/05/20(金) 19:57:23
>90
ご連絡ありがとうございます。
英語のリソースは日本語のリソースを英語に書き換えて
保存しただけです。
95デフォルトの名無しさん:2005/05/20(金) 19:58:40
>>93
それは企業とかで採用してるやつですよね。それじゃあ個人で作品作ったりする場合はC言語等がオススメと聞いたんですが
個人で使えるレベルのC言語ツールはいくらでしょうか?
9687:2005/05/20(金) 19:59:13
素早いレスありがとうございます。
>>88
ありゃ、そんなもんですか。我慢してSDK使う必要もないんですね。。。

>>91
なるほどです。見てくれと実際の処理で適材適所というわけですね。
97デフォルトの名無しさん:2005/05/20(金) 20:40:14
>>95
タダ〜数万(好みによる)
98デフォルトの名無しさん:2005/05/20(金) 20:44:49
>>95
学習能力とモチベーションに、個人か否かは関係ない。
個人でも財布の中身はピンキリだ。

安くしたいならgccとかBC++とかVC++2005 Express βとか好きにする・・・
#BC++ってまだタダで配ってたっけ?

>>87
SDK >= MFC >= VB6
越えられない壁はあるが、個人の能力次第で大差なくなる。
99デフォルトの名無しさん:2005/05/21(土) 02:34:39
クラステンプレートを作成したのですが、テンプレートという物は
ヘッダファイルとソースファイルに分けたらダメポなんですか?
VC6でビルド時に散々外部参照が未解決というエラーが出まくってたんですが、
全てヘッダファイルに纏めたら嘘のようにエラー表示が無くなりました。
100デフォルトの名無しさん:2005/05/21(土) 02:56:18
>>94
日本語として英文を書いてたりしないか?
101デフォルトの名無しさん:2005/05/21(土) 02:57:40
>>99
分けてもいいよ。

ATLは一部分がDLLになったりしてるよ。
102デフォルトの名無しさん:2005/05/21(土) 03:20:15
タスクマネージャで見てみるとメモリ使用量がどんどん増えるけど
crtdbgで調べてみてもメモリリークは発生してない

これってほっといても平気?
103デフォルトの名無しさん:2005/05/21(土) 05:14:25
VC++ でデバッガにアタッチした状態で、変数にマウスもってくと
評価結果をツールチップ表示してくれる機能があるけど、
これって表示内容というか評価内容を定義できないのかな?
どなたか知ってる人教えてください。
104デフォルトの名無しさん:2005/05/21(土) 08:45:48
>>94
プロジェクトの設定でリソースの言語タイプの指定が有るの、知ってるか?
105デフォルトの名無しさん:2005/05/21(土) 08:52:25
>>102
それが正常な動作だと思うなら、ほっといても問題ない。
106102:2005/05/21(土) 21:50:38
DeleteObjectで増えなくなった
107デフォルトの名無しさん:2005/05/22(日) 02:02:12
Visual C++ 6.0でコンパイルをするとリンク中と表示されたままで
進まないことが以上に多いんですけど、
これってどうしようもないんですか?教えてください。
108デフォルトの名無しさん:2005/05/22(日) 02:08:06
昔あったな、それ
どうやって直したんだったか・・
109デフォルトの名無しさん:2005/05/22(日) 02:24:18
>>99
言語仕様として、テンプレートの定義はすべてテンプレートクラスか
ネームスペースのスコープ内でないといけない。
110デフォルトの名無しさん:2005/05/22(日) 02:26:09
>>107
VC6.0サービスパックをインストールしてみたら?
111デフォルトの名無しさん:2005/05/22(日) 03:08:26
108はVCそのものを直したのか… M$の中の人?(w
112デフォルトの名無しさん:2005/05/22(日) 03:09:06
>>111
それだ。
VC++そのものをバージョンアップした(2003に)
113デフォルトの名無しさん:2005/05/22(日) 03:25:44
>>107
僕もたまになるけど、僕の場合は、「最小化→元に戻す」を行うと起動しだす。
114デフォルトの名無しさん:2005/05/22(日) 06:51:44
レジストリのサブキー一覧を取得する方法を教えてください。
115デフォルトの名無しさん:2005/05/22(日) 09:07:33
>>114
RegEnumKeyEx
116デフォルトの名無しさん:2005/05/22(日) 12:45:52
DirectXの質問スレで答えが得れなかったのでこちらで
VC++.NET2003でDirectX9.0cAprilでDirectPlay8を利用した
クライアントサーバ型チャットプログラムを作っています
通信相手が接続したらDPN_MSGIDメッセージを
別ソースへ記述してあるメッセージハンドラが受け取って
.NETWindowsフォームアプリケーションである
Form1のリッチテキストボックスコントロールのrichtxtに
"接続しました"系のメッセージを表示するにはどうすればよいでしょうか?

switch(dwMessageType)
{
  case DPN_MSGID_CREATE_PLAYER
  ここをお願いします
  return DPN_OK;
}
117デフォルトの名無しさん:2005/05/22(日) 12:47:46
.NETはこのスレでいいのか?
118デフォルトの名無しさん:2005/05/22(日) 13:14:32
C#.NetスレはあるがC++.netスレは無いからな
あえて言えば.NET Frameworkスれか?
119デフォルトの名無しさん:2005/05/22(日) 13:16:41
120116:2005/05/22(日) 13:22:39
どのスレで質問すれば教えてくれるんでしょうか・・・
関数からForm1のオブジェクトを操作するだけなのに
すでに1週間近く悩んでいますが
121デフォルトの名無しさん:2005/05/22(日) 13:30:01
>>120
Form::ActiveFormかなぁ。

しかし問題の本質を理解して適切に質問する能力も必要。
今回の場合DirectXはぜんぜん関係なさそうだし、switch文一つだけ提示されても答えようがない。
122デフォルトの名無しさん:2005/05/22(日) 13:44:38
近頃VisualStudio.NET買ったんですが、
開発画面が壮大すぎて分かりません。
コードも最初から山ほどあるし、意味不明です。
何か良い勉強方法はありませんでしょうか。

入門書は
新VisualC++.NET入門
猫でも分かるWindowsプログラミング

両方糞本で全く分からなくて

スタンダードVisualC++という本を今読んでるところです。
こちらも挫折しそうです
123デフォルトの名無しさん:2005/05/22(日) 13:46:22
猫を糞本と断ずるお前が糞だ
124122:2005/05/22(日) 13:48:24
すみません書き間違えました

猫は関係ないです。WinAPIはわかっています

MFCの壮大な画面が分からないんです
125デフォルトの名無しさん:2005/05/22(日) 13:49:36
>>122
お前の言っていることが意味不明。
まず何がしたいか書け。
それだけの情報だと、C言語を勉強したことがないならC++の前にC言語を勉強しろとしか言えん。
126116:2005/05/22(日) 13:50:30
VB6ならForm1からForm2へ命令を出すのは
Form2.Text1.Text="接続"という風に安直ですが
C++ではそうは行きませんか・・・
127122:2005/05/22(日) 13:50:51
C/C++とWinAPIは理解してます すみません

MFCで色々アプリを作りたいんですが、プロジェクトを作成したら
最初から色んなコードがあって、頭が混乱してる状況です

そういう細かいところまで解説したページや本は無いのかな、、、と
128デフォルトの名無しさん:2005/05/22(日) 13:52:29
129デフォルトの名無しさん:2005/05/22(日) 13:52:51
>>122
お前は向いてない。やめとけ。
130122:2005/05/22(日) 13:54:13
>>128
そこも見ましたがなんか・・もっと細かいのないですか
131デフォルトの名無しさん:2005/05/22(日) 13:58:04
経験者だろうが始めはHello Worldからやるもんだけどな
いきなり難しいことやるのはアホ
132デフォルトの名無しさん:2005/05/22(日) 13:59:10
>126

それって単純にグローバル変数とかそーゆー話?
133122:2005/05/22(日) 13:59:21
MFCプロジェクトでHelloWorldしようとしてるのですが・・それさえも
134デフォルトの名無しさん:2005/05/22(日) 13:59:33
>>130
まずダイアログアプリケーションから作るのがいい。

プログラムを開始すると、
CXxxApp のコンストラクタが一番最初に、
次に CXxxApp::InitInstance が呼ばれる
その中でダイアログを表示しているコードがある。

CXxxDlg のコンストラクタが呼ばれる、
CXxxDlg の OnInitDialog が呼ばれる。

ここまではわかれば後は速いかな。
メッセージマップとかはすぐに理解できるものではないかも。

だけど、仕事じゃないなら、慣れてきたら MFC を離れて WTL 使ったほうが幸せかもよ。
135122:2005/05/22(日) 14:01:13
>>134
ありがとうございます了解しました
136116:2005/05/22(日) 14:07:05
そうかもしれません よろしくお願いします
137デフォルトの名無しさん:2005/05/22(日) 14:15:36
>>116
まずC#言語の勉強をしろ
138デフォルトの名無しさん:2005/05/22(日) 14:20:27
stlはスレッドセーフですか?
139116:2005/05/22(日) 14:31:44
了解しました ありがとうございました
140デフォルトの名無しさん:2005/05/22(日) 15:27:38
現在IEで開いているページのアドレスの取得方法を教えてください
141デフォルトの名無しさん:2005/05/22(日) 15:43:16
>>140
スレ違いだが、今回だけだぞ。
メニュー
-「表示(V)」
-「ツール バー」
-「アドレス バー」
これでアドレスが判る様になる。
142デフォルトの名無しさん:2005/05/22(日) 15:49:49
>>141
もう少し詳しく教えてください。関数はどれですか?
143デフォルトの名無しさん:2005/05/22(日) 16:01:54
ハァ?
普通に表示されてるだろ?
おまえの目は節穴か?
















アドレスバーに
144デフォルトの名無しさん:2005/05/22(日) 16:04:20
>>143
子ね
145デフォルトの名無しさん:2005/05/22(日) 16:04:21
スクリーンショットを取りパターンマッチングでアドレスバーの場所を特定、
テキスト領域を切り出して画像認識
146デフォルトの名無しさん:2005/05/22(日) 16:16:01
>>140
IEのツールバーを自作する。
自作ツールバーから、それが属するIEにアクセスする。
147デフォルトの名無しさん:2005/05/22(日) 16:21:47
既存のファイルからビットマップを取り込もうとして
リソースの追加>Bitmap>インポート>ファイルを開く、
としていったのですが、 うまくいきません。
どのようにすればいいでしょうか。
コンパイラは.NET2003です。
148デフォルトの名無しさん:2005/05/22(日) 16:23:22
コンパイラは関係ないと思われ
149デフォルトの名無しさん:2005/05/22(日) 16:25:55
>>147
そのビットマップをメモ帳で開いてみろ。
150147:2005/05/22(日) 16:30:58
>>149
開きました。
151デフォルトの名無しさん:2005/05/22(日) 16:35:21
>>150
どう書かれてる? それでも原因分からない?
152147:2005/05/22(日) 16:40:27
先頭にBMって書いてる以外
むちゃくちゃな文字が並んでるだけ
何ですが。
153デフォルトの名無しさん:2005/05/22(日) 16:52:37
メッセージボックスの開き方を教えてください
154デフォルトの名無しさん:2005/05/22(日) 17:01:51
>>153
まず、箱にリボンがかかっている場合はリボンを解きます。
155デフォルトの名無しさん:2005/05/22(日) 17:40:53
>>152
リソースへ取り込むのか?
うまくいかないってのはどううまくいかないんだ?
156147:2005/05/22(日) 18:02:32
>>153
リソースとして取り込むんです。
新規作成ならビットマップフォルダが作成されるのですが、
インポートだとビットマップフォルダが作成されないんです。
157147:2005/05/22(日) 18:04:16
>>153×
>>155
間違えました。
158デフォルトの名無しさん:2005/05/22(日) 18:10:54
>>153
MessageBox()を呼ぶ。
159デフォルトの名無しさん:2005/05/22(日) 18:27:04
>>147
ビットマップのある場所が問題なのかも
たしか、フルパスで全角文字があると、インポート出来なかった様な・・・
インポートしたいビットマップファイルをルートに置いて
再チャレンジ
160147:2005/05/22(日) 18:33:41
>>159
できました。
ありがとうございました。
161デフォルトの名無しさん:2005/05/22(日) 19:04:35
マイクロソフトのC++に対する独自拡張に、
任意のクラスの継承を禁止する機能ってありますか?

Javaのsuperに相当するものはあるようですが、
finalに相当するものが見つからないのです。

162デフォルトの名無しさん:2005/05/22(日) 19:32:15
>>161
C++ではデストラクタをvirtualにしていないことでこのクラスを継承するなと言う意思表示しかできないと思う。
163デフォルトの名無しさん:2005/05/22(日) 20:01:03
>>122
MFCプロジェクトでHello worldはこうやれ。
MFCプロジェクトを作ったら、CWinAppの派生クラスにInitInstance()と
いう関数がある。その関数の先頭に
AfxMessageBox("Hello! World!");
という一行を書いてビルドして実行。
164デフォルトの名無しさん:2005/05/22(日) 21:40:08
viみたいなコマンドで動くソフトを作っている者です。
「j」をカーソルキーの下に対応させることはできました。
このような一文字のコマンドは簡単にできるのですが、
行削除の「dd」のような二文字のコマンドの場合はどうすればよいのでしょうか。
dの入力を記憶しておく変数を用意して、dが既に入力されていれば、
ddであるみたいなことは思いついたんですが、
「5dd」なんかの何パターンもあるやつができないです。

BOOL CxxxxDlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg->message == WM_KEYDOWN ){

switch( pMsg->wParam )
case 'J':

break;

見たいな感じにやってるんですが
もっと賢いやり方は無いでしょうか?
165デフォルトの名無しさん:2005/05/22(日) 21:44:15
コマンドとして完結してるかチェックだけして
してなければ次のも追加
完結して初めてコマンド実行
166デフォルトの名無しさん:2005/05/22(日) 21:49:29
>>164
Visual C++以前に状態遷移図について勉強してみよう。
167164:2005/05/22(日) 22:05:33
>>165
>>166
ありがとうございます
n=0
@
key[n]に入力されたキーを入れる
コマンドとして完結しているか
もしコマンドなら実行・key[]を初期化
違えば、n++する。key[]があふれたら初期化して@に戻る

こんな流れでいいのかな
少し分からないところは
コマンドとして完結しているかを調べるところです、
成立しているしているコマンドを配列に入れておき
key[]と比較して同じならコマンドであるということは分かりますが、
数字が含まれるコマンドはどうしたらいいのでしょうか?
168デフォルトの名無しさん:2005/05/22(日) 22:07:48
SDKでBitmapをBitBltで描画しています。
Bitmapを左にスクロールさせたいのですが、
何か良い方法ないでしょうか?
ワーク用のビットマップを用意して、そちらにコピーして
また戻す、ってので一応できるのですが、
なんか無駄なので。。。

Google等でスクロールAPIを探したのですが、
見つけられませんでした。
169デフォルトの名無しさん:2005/05/22(日) 22:12:06
>>167
パターンマッチングとか
170デフォルトの名無しさん:2005/05/22(日) 22:14:01
このスレおもしろいね
171デフォルトの名無しさん:2005/05/22(日) 22:19:58
>>167
viはオープンソースだし、勉強したければソース見ろよ
つかアルゴリズムとかの話なら言語と関係ないし
ここでやるな
172168:2005/05/22(日) 22:22:40
Win32API質問箱スレの方が適切っぽいので移動します。
すみませんでした。
173164:2005/05/22(日) 22:28:49
>>171
ソース見て出直してきます!!
174161:2005/05/23(月) 01:11:15
>>162
デストラクタをvirtualにしていないクラスを継承してしまう事故を防ぎたいのです。
175デフォルトの名無しさん:2005/05/23(月) 03:54:05
日本語対応のコンパイラのくせして、
なんで変数名に漢字が使えないんだ!!
176デフォルトの名無しさん:2005/05/23(月) 06:54:47
>>174
こういうのはどうよ?

コンストラクタをprivateにしてインスタンスの作成には静的メンバのCreate()を呼ばねばならない。
Create()ではnewしたポインタを返す。ポインタは各自スマートポインタの類に入れてもらう。

コンストラクタがprivateなので継承しても基底クラスのコンストラクタを呼べないから実質不可能になる。
177デフォルトの名無しさん:2005/05/23(月) 07:11:55
最近どっかのスレで同じ話題が出てたな。継承不可クラス。
friendと仮想基本クラスを使ったやつで。
178デフォルトの名無しさん:2005/05/23(月) 07:13:07
179デフォルトの名無しさん:2005/05/23(月) 08:21:28
スレと全然関係ない
180デフォルトの名無しさん:2005/05/23(月) 09:29:37
質問です。 
VC++にx86-64のコンパイラを含んだPSDKを入れて組んだコード内の構造体のサイズはどのようになるのでしょうか? 
今までどおり4の倍数なのでしょうか? 
181デフォルトの名無しさん:2005/05/23(月) 10:55:55
>>180
ここ初心者スレですよ
特殊な環境の話は想定外です
182デフォルトの名無しさん:2005/05/23(月) 11:04:14
上級者スレはどこですか?
183デフォルトの名無しさん:2005/05/23(月) 11:47:53
pragma一覧はどこで見られますか?
184デフォルトの名無しさん:2005/05/23(月) 11:53:07
上級者ならこんな所来ないし
185デフォルトの名無しさん:2005/05/23(月) 11:56:04
>>182
お前は自称上級者か?w
186デフォルトの名無しさん:2005/05/23(月) 13:39:23
VC.netでドラッグ&ドロップでツールバーのボタンとかメニューの位置変わってしまいますが
これ固定する方法ありませんか?
187デフォルトの名無しさん:2005/05/23(月) 13:56:18
ReBarのことだろうか?
188デフォルトの名無しさん:2005/05/23(月) 14:19:43
はい。ReBarのことのようです。
自分が使いやすいようにバーの位置カスタマイズしても、
間違えてドロップしてしまうとまた位置直さないといけないので固定したいのですが・・・。

あとEUCやらJISやらの文字コードの選択も見当たりません・・・。
Linuxで作られたソースのコメントが文字化けってる・・・。

アフォな質問ばっかりですみませんがご存知の方お願いします。
189デフォルトの名無しさん:2005/05/23(月) 15:54:28
>>140
OLE使うのだ
190161:2005/05/23(月) 22:36:38
>>176-178
ありがとう。

やっぱりC++の範囲内でトリッキーなことをするのか。
天下のマイクロソフトなんだから批判を気にせず拡張していてほしかったよ。

>>183
MSDNライブラリ

pragma comment
を検索して、それらしき解説のページを表示した状態で「同期」すりゃいい。
191デフォルトの名無しさん:2005/05/23(月) 23:03:13
>>190
いくらなんでも継承不可なんてそんなの取り入れたらもはやC++とは言えない。
そんなに継承不可にこだわるんだったらC++使うな。
192デフォルトの名無しさん:2005/05/24(火) 11:48:13
継承必須にはできるけどな
193デフォルトの名無しさん:2005/05/24(火) 14:06:19
gccやbccのM_PIに当たるものを教えてください
194デフォルトの名無しさん:2005/05/24(火) 14:16:56
>>193
M_PI

自分でmath.h見ればいいじゃん。
M_PIを使うには
#define _USE_MATH_DEFINES
#include <math.h>
とするみたいよ
195Failed to create empty document.:2005/05/24(火) 19:00:38
VC++で制作したアプリを起動しようとすると
Failed to create empty document.
というアラートがでます。
原因、対処方法をご教授いただけないでしょうか。
196デフォルトの名無しさん:2005/05/24(火) 19:06:10
debugモードではどうなの?
DLLがおかしいと出るみたいよ、それ
197デフォルトの名無しさん:2005/05/24(火) 19:08:41
Failed to create empty document
でぐぐったらなんか出てくるぞ
198Failed to create empty document.:2005/05/24(火) 19:28:12
XPの日本語OSなら出ませんが、英語OSででます。
199デフォルトの名無しさん:2005/05/24(火) 20:09:42
>>191
継承しても正しく動作するようにコーディングしないとC++とは言えないの?

デストラクタを仮想関数にしないことができることと矛盾してない?
200デフォルトの名無しさん:2005/05/24(火) 20:34:13
継承しても正しく動作するようにすることと、継承不可は別問題だろ
201デフォルトの名無しさん:2005/05/24(火) 20:41:49
ヘッダに継承しないでね♥
と書く
202デフォルトの名無しさん:2005/05/24(火) 20:42:38
>>198
日本語リソースのDLL(コモンダイアログ等)を要求してるのでは
203デフォルトの名無しさん:2005/05/24(火) 20:59:39
普通はVC++.NETって3ヶ月くらい勉強すれば
仕事もてるくらいになるんでしょうか?
3ヶ月で成果出さないとやばいみたいな事言われたんだけど
教育とかないしテキストも最初に2冊買ってもらったけど
部分部分の作り方が簡単に書いてある奴だけなんで
なかなか厳しい…
204デフォルトの名無しさん:2005/05/24(火) 21:12:12
だらだらやるよりも3か月なら3か月と決めてみっちりやった方が身に付く。
205デフォルトの名無しさん:2005/05/24(火) 21:56:34
>>199
そうじゃなくて継承不可のクラスを作れるという仕組みをコンパイラが搭載したら
それはもはやC++コンパイラと呼べなくなると言ったんだ。いくらなんでもC++から離れすぎると思う。

プログラマが継承しない(してほしくない)クラスを作るのは全然問題ない。好き勝手にしろ。
206デフォルトの名無しさん:2005/05/24(火) 22:08:17
それよりスレ違いをなんとかしてほしい
207デフォルトの名無しさん:2005/05/24(火) 23:34:35
おまいの現在の実力とVCで何をやるのか次第だな
極端な話、コンソールプログラムでhello worldも出せないのにWordのようなのを作ろうとしたら
3ヶ月が3年でも無理だろ。

何が言いたいかと言うとおまいはどのくらいのやり手で、どんなことをやるのかをはっきりしろってこった
208デフォルトの名無しさん:2005/05/25(水) 02:55:02
Winアプリケーションで作成したプロジェクトを
コンソールにすることは可能ですか?
209208:2005/05/25(水) 02:56:02
プロジェクトのオプションなどで変更可能かということです
210デフォルトの名無しさん:2005/05/25(水) 05:27:05
>>208
簡単な方法は無いのでソースの中で AllocConsole()
211デフォルトの名無しさん:2005/05/25(水) 07:44:21
>>209
プロジェクトのオプションなどで変更可能。
212デフォルトの名無しさん:2005/05/25(水) 07:47:15
>>209
或いはプロジェクトを新規に作ってソースを移動。
213デフォルトの名無しさん:2005/05/25(水) 07:52:29
>>47のような手もある。
214デフォルトの名無しさん:2005/05/25(水) 12:28:59
コンボボックスを「ドロップダウン リスト」形式で使用しています。
通常のエディットボックスの部分(一番上)は小さく、
ドロップリストの表示だけ、大きくしたいのですが、
オーナードローで上手くできないでしょうか?

┌───┐
├───┴──┐
│        . │
│        . │
└──────┘
 ※イメージ
215デフォルトの名無しさん:2005/05/25(水) 12:37:21
VC++6.0にVisualStudioSP6をあてました。VC++のどこを見れば、ちゃんとsp6になっているか
どうか確認できるのでしょうか?
216デフォルトの名無しさん:2005/05/25(水) 12:42:04
>>215
日付け
217デフォルトの名無しさん:2005/05/25(水) 18:45:13
別のウィンドウに文字列を出力する関数を
どこかで見たんですが、何でしょう?
Outputなんとか、みたいな名前でした。
vsprintfで可変個引数使ったサンプルだったと思います。
(ユーザ関数で作成したもの)
MessageBoxでデバッグ出力してましたが、そちらの方が便利かと
思い質問しました。
MSDNでOutputStringというのが有りましたが、違うようです。
218デフォルトの名無しさん:2005/05/25(水) 18:51:48
>>214
SetDroppedWidth
219デフォルトの名無しさん:2005/05/25(水) 19:32:13
>>217
OutputDebugString?
220デフォルトの名無しさん:2005/05/25(水) 19:38:21
メイクとコンパイルの違いってなんでしょう
221デフォルトの名無しさん:2005/05/25(水) 20:01:50
VCの場合は
NMAKE.EXEでメイク
CL.EXEがコンパイラ
222デフォルトの名無しさん:2005/05/25(水) 20:11:12
>>220
ついでにメイクとビルドの違いも勉強しよう。
223デフォルトの名無しさん:2005/05/25(水) 20:18:58
本読みながらBCCで勉強してるけど
コンパイラ以外は乗ってないな・・この本だめぽ
ググって調べてみますわ。
224デフォルトの名無しさん:2005/05/25(水) 20:20:09
>>222
コソーリ俺にも教えて
225デフォルトの名無しさん:2005/05/25(水) 20:23:11
あれ、BCCにはメイクしかないのかな?
メイク=ビルド?

大学でC使ったときはビルドってあった気がする。
環境環境によって違うって事かな
226デフォルトの名無しさん:2005/05/25(水) 20:25:44
ビルド=コンパイル+リンク
らしいです。機械語にして実行ファイルを作る作業ってことなのかな。
最初から調べればよかったか・・・w
227Failed to create empty document.:2005/05/25(水) 20:47:19
>>202
ご連絡ありがとうございます。

>日本語リソースのDLL(コモンダイアログ等)を要求してるのでは

MFC71.dll  
msvcp71.dll
msvcr71.dll
を.EXEファイルと同階層のおいてますが、
日本OSなら問題無く起動でき、英語OSだとアラーとがでて
起動できません。
英語OSでも問題無く起動させる対処法はあるのでしょうか?
228デフォルトの名無しさん:2005/05/25(水) 21:05:38
Visual C++
C
C++

↑三種類あるの?
 どれが一番簡単?>「
229デフォルトの名無しさん:2005/05/25(水) 21:17:00
このスレはVisual C++専用
230デフォルトの名無しさん:2005/05/25(水) 21:22:35
メイクはそもそもUNIX用語
231デフォルトの名無しさん:2005/05/25(水) 21:34:35
>>227
英語用のプロジェクト作って比べて見ればわかるだろ
MSのサンプルは英語版なんだし、動かないわけないが
232214:2005/05/25(水) 21:36:35
>>218
ありがとうございました。
おかげで、かなりいい感じのができそうです。
233デフォルトの名無しさん:2005/05/25(水) 21:39:19
>>232
いいってことよ。完成したら公開してくれよな。
234デフォルトの名無しさん:2005/05/25(水) 22:14:06
こんばんは、今microsoft visual stadioを、
インストールしたのですが、これでは、visual c++ をつかうことは、
できないのでしょうか。
235デフォルトの名無しさん:2005/05/25(水) 22:16:36
できないと思った根拠は?
236デフォルトの名無しさん:2005/05/25(水) 22:28:13
>>235さんへ
>>できないと思った根拠は?
visual c++の起動ファイルがないのです。
237デフォルトの名無しさん:2005/05/25(水) 22:30:32
スタートメニューからVisual Studio.NETを起動して、
ファイル→新規作成→プロジェクト→Visual C++プロジェクト
238デフォルトの名無しさん:2005/05/25(水) 22:38:25
>>234
visual studio買ってくるといいよ
239デフォルトの名無しさん:2005/05/25(水) 22:39:38
>>236
本1冊買ったらどう?安いのでいいからさ。
240デフォルトの名無しさん:2005/05/25(水) 22:41:40
オスカー美女軍団とたけし軍団だけはガチ
241デフォルトの名無しさん:2005/05/25(水) 22:50:25
皆様いろいろありがとうございますが、
もうひとつ教えてください
microsoftでダウンロードしたのは、
visual c++ 2005 express edition beta 2でした、
これは、visual c++ のことでは、ないのでしょか。
242デフォルトの名無しさん:2005/05/25(水) 22:52:59
>>241
次期visual c++評価版
243デフォルトの名無しさん:2005/05/25(水) 22:58:10
>>241の暇つぶしスレ
244デフォルトの名無しさん:2005/05/25(水) 23:00:36
>>219
ビンゴ。thanks
245デフォルトの名無しさん:2005/05/25(水) 23:23:43
>>241です。
やっとわかりました。
visual c++購入で検索すると、ソフトがでてきました。
いろいろとありがとうございました。
246デフォルトの名無しさん:2005/05/26(木) 00:53:51
ダイアログベースアプリでセカンダリスレッドからAfxGetMainWndを呼び出してメインウインドをとってたんだけど
VC6ではちゃんととれるんですけど、そのままVC7にコンバートしてビルドしたらNULLが返ります。
なぜでしょうか?VC7になってdllかなんかが変わって本来の仕様(?)になったのかな?
247デフォルトの名無しさん:2005/05/26(木) 00:57:00
>>246
どっちが本来の動作か知らないけど、
7の方のAfxGetMainWndのコードを見る限りじゃ、
現在のスレッドのメインウィンドウを取ってくるみたいだから、
別スレッド作ったらその時点ではNULLになってるだろうね。
248デフォルトの名無しさん:2005/05/26(木) 01:43:40
サンクス。
ってことはどうやらMSDNの記述どおりになったんだね。
メインスレッドからハンドルとってグローバルに保持する方向で修正します。
249デフォルトの名無しさん:2005/05/26(木) 09:43:40
>>217
TRACE()使ったら
250Failed to create empty document.::2005/05/26(木) 12:38:01
>231
英語用のプロジェクトってどうやってつくるのですか?
すいません。初心者なもので・・
あと、この.EXEですが、基は日本語版用で、表記を英語に変えて
VisualC++.NETで保存しただけです。
日本語版のXPではこれだけの作業で、問題無く、英語表記で
起動してます。
251デフォルトの名無しさん:2005/05/26(木) 12:50:41
>>250
リソースの言語が日本語になってない?
252デフォルトの名無しさん:2005/05/26(木) 12:51:32
>>250
それ、リリースビルドした?
253デフォルトの名無しさん:2005/05/26(木) 13:52:50
英語のみでよければ関係ないし、初心者レベル超えてるけど、複数言語扱うための方法
http://forums.belution.com/ja/vc/000/126/92s.shtml
254デフォルトの名無しさん:2005/05/26(木) 13:56:09
>>250
そのプロジェクトのプロファイルを開いて、
リソースの欄のカルチャを見てくれ。
255デフォルトの名無しさん:2005/05/26(木) 13:57:30
プロファイルじゃないや、プロパティ
256Failed to create empty document.::2005/05/26(木) 18:00:55
ご連絡ありがとうございます。251〜255
リソースはプロパティで全て英語(米国)にしてあります。
ファイルは
MFC71.dll  
msvcp71.dll
msvcr71.dll
ABC.exe
ファイルが同階層に4つあるだけなので、
リソースを英語表記に変更して保存しかできてないです。
257デフォルトの名無しさん:2005/05/26(木) 18:44:07
最初から英語で作って動かなきゃ
日本語で作ったやつを英語に変更するのはもっと無理
258Failed to create empty document.::2005/05/26(木) 18:53:06
>257
最初は日本で作って英語にプロパティで変更しました。
259デフォルトの名無しさん:2005/05/26(木) 18:56:10
>>258
あのさ、その.rcファイルをテキストエディタで開いて
じっくり見てみなさいな
そんでJAPANの文字や、932とか0411の数字検索してみて
260259:2005/05/26(木) 18:57:09
最初から英語で作るんで無ければ、
変更するんじゃなくて、英語リソースを追加するほうが
間違いが無くていいと思う
261デフォルトの名無しさん:2005/05/26(木) 19:03:30
なんでもいいから最初から英語で作ってみろって
それすらできないのか?
アホ?
262デフォルトの名無しさん:2005/05/26(木) 22:17:47
FormatMessageのサンプルで、
エラーコードをメッセージにするものがありますが、
そこで得た文字列をTRACEで出力すると文字化けを起こしてしまいます。
MessageBoxでの出力は正常にできているし、
ブレークポイントで変数の内容を見ても文字化けしてません。
TRACEでの出力時にだけ文字化けをおこします。
どうすればいいんでしょう。

WinXP SP2 VCnet2003 で、Unicode 文字セットを使用しています。
263デフォルトの名無しさん:2005/05/26(木) 22:22:38
TRACEに渡すときはMBCSにしておく必要がある。
264262:2005/05/26(木) 22:52:10
>>263
無事に解決できました。ありがとうございまた。
265デフォルトの名無しさん:2005/05/27(金) 00:34:50
GetAsyncKeyStateでキー取得しているのですが、
ウィンドウがアクティブでない時も取得してしまうので、
アクティブがどうかチェックする方法が知りたいです。
266デフォルトの名無しさん:2005/05/27(金) 00:44:25
>>265
WM_KEYDOWNとWM_KEYUPでやった方がいいんじゃない?
267デフォルトの名無しさん:2005/05/27(金) 00:46:54
>>265
自分がアクティブウィンドウかどうかの判定?
268265:2005/05/27(金) 01:25:55
逆に言えば、アプリがバックグラウンドかどうかが知りたいんです。
269デフォルトの名無しさん:2005/05/27(金) 01:30:14
WM_KEYDOWN ならアクティブなときしか来ないんじゃない?
270デフォルトの名無しさん:2005/05/27(金) 04:28:56
Win2k、VC6、MFCな環境でCOMを使おうとしています。
メインスレッドに以下のような関数を作り、やりたいことができることを確認しました。
CoInitialize(NULL);
/* 処理 */
CoUninitialize();

次に、AfxBeginThreadでワーカスレッド作って上記コードを埋めこんだのですが、
最初の1回だけ無事動きまして、2回目以降はruntime errorでプロセスが死にました。
「マルチスレッドだからダメなのか!」と思い、いかにもそれっぽいので
CoInitialize(NULL) を CoInitializeEx(NULL, COINIT_MULTITHREADED) にしましたが、同様の症状です。

戻り値も S_OK なので、これは根本的な理解に欠けてるためだと思い、ちょっと調べてみたところ
アパートメントという言葉に遭遇し、あやふやなCOMの理解と併せて相当しんどそうと感じました。
そこで、虫の良いお願いで申し訳ないのですが、どう書けばとりあえず動くか御教示願えますでしょうか?
動かしたいのは勿論ですが、むしろ理解のための足掛り・お手本を頂きたいなという状況なのです。

長文ですみません。どうぞよろしくお願いします。
271デフォルトの名無しさん:2005/05/27(金) 05:10:57
スクリーンセーバーを起動する方法を教えてください
272デフォルトの名無しさん:2005/05/27(金) 07:33:41
>>271
スクリーンセーバはEXEファイルと全く同じで拡張子だけが違う。
だからsystem()やShellExecute()がそのまま使える。
273デフォルトの名無しさん:2005/05/27(金) 07:42:25
ShellExecute(NULL,"open","スクリーンセーバのファイル名",NULL,NULL,SW_SHOWNORMAL);
274デフォルトの名無しさん:2005/05/27(金) 09:30:37
GetForegroundWindow() か GetActiveWindow()で
持ってきたハンドルと自分のm_hWndを比べるのはどうか
275デフォルトの名無しさん:2005/05/27(金) 12:51:38
デバッガで、ある変数の値が変わった時、
ブレークする方法ってありませんか?
ブレークする場所を指定せずに。
276デフォルトの名無しさん:2005/05/27(金) 13:05:43
フォルダ内のexeを検索して、そのexeが起動中かどうかを判断するにはどうすればよいですかね?
起動中かどうかの判断する方法です
277デフォルトの名無しさん:2005/05/27(金) 13:47:34
>>275
デバッグメニューのブレークポイントの作成の
データタブの条件
278デフォルトの名無しさん:2005/05/27(金) 16:06:48
>>276
先に全プロセスのハンドルを入手してそこからGetModuleFilename()でパスを得ておき、
それと検索して見つけたEXEのパスを比較すればいいんじゃない?
279デフォルトの名無しさん:2005/05/27(金) 16:20:23
>>270
COMをちゃんと勉強したほうがいい。

適当にやって適当に動いていると、後でトンデモナイ目にあう。
280デフォルトの名無しさん:2005/05/27(金) 16:45:19
<<277
thanks
281デフォルトの名無しさん:2005/05/27(金) 22:54:34
vs2005β使ってます。

midiファイルを演奏させるためにmciコマンドを以下のとおり入れたのですが、openでエラーになってしまいます

rtncode=mciSendString( "open d:\town.mid type sequencer alias music" , NULL, 0, NULL );

ここで、rtncodeにエラー259(ドライバは指定されたコマンド パラメータを認識できません。)が返送されてきます。
d;\にはmidファイルも置いてあり、WMPで正常再生できたファイルであることは確認しています。
 ※open sequence のみ指定時はエラー0でした。

すみませんが何が悪いのか分かったら教えていただけますでしょうか。
282デフォルトの名無しさん:2005/05/27(金) 23:01:14
>>281
\tって何か知ってる?
283デフォルトの名無しさん:2005/05/27(金) 23:17:26
>>282
あっと、そういうことか
d:\\town.mid

いま、やってみたら音が出ました。
3日も悩んだのに〜 orz
284デフォルトの名無しさん:2005/05/27(金) 23:17:58
ありがとうございました。
285デフォルトの名無しさん:2005/05/28(土) 07:06:43
まぁ、よくやる失敗だよ
もっと別の文字だったら、コンパイル時にエスケープシーケンスじゃねぇよって言われて気付けたんだろうけどな
286281:2005/05/28(土) 08:00:54
皆さんいろいろアドバイスありがとうございます。

また教えてください。
rtncode=mciSendString( "open d:\\test.mp3 type MPEGVideo alias music" , NULL, 0, NULL );

このrtncodeが エラー263(指定されたデバイスが開かれていないか、または MCI で認識されません。)に
なってしまいます。
で、 ttp://hp.vector.co.jp/authors/VA011973/prg_mci.htm のページに登録デバイス表示があったので
試してみたところ
AVIvideo CDAudio Sequencer WaveAudio
の4つが出てきたのですが肝心のMPEGVideoが出てきませんでした

質問1 エラーの原因は登録デバイスに名前が無いのが原因でしょうか
質問2 MPEGVideoを指定できるようにするために必要なLIBはあるのでしょうか?

一晩格闘して全然分かりませんでした。どなたか教えていただけますでしょうか。
 VS2005 β2 使用です。
287デフォルトの名無しさん:2005/05/28(土) 08:11:42
mci mp3 でぐぐったら何かでてくるぞ
288281:2005/05/28(土) 23:02:07
>>287
ありがとうございます。
一日がんばってみたけどだめだったとです。 orz
また明日がんばってみます。
289デフォルトの名無しさん:2005/05/29(日) 00:42:37
.netの使い方を誰か教えて下さい

猫でもわかるwindowsプログラミングの巻末の資料を頼りにやってるんですけど
そんだけでやってる人いる??
290デフォルトの名無しさん:2005/05/29(日) 00:58:10
宇宙仮面
291デフォルトの名無しさん:2005/05/29(日) 01:08:51
C#なんかやりたくない!
292デフォルトの名無しさん:2005/05/29(日) 01:19:17
>>289
1レスじゃ教えられないな。
293デフォルトの名無しさん:2005/05/29(日) 01:28:06
.NetのC++とC#ってほとんど一緒じゃないか?
.NetでUnmanagedなら今までのVCと一緒だし
294デフォルトの名無しさん:2005/05/29(日) 01:29:50
managedとunmanagedを混ぜると、やりとりが面倒だけどな。
295デフォルトの名無しさん:2005/05/29(日) 01:53:34
混ぜられるんだ!?
知らなかった・・・
296デフォルトの名無しさん:2005/05/29(日) 01:59:01
>>293
ありがとうございます
¢(。。)いつか二人用の将棋が完成したら、共に指しませう
297デフォルトの名無しさん:2005/05/29(日) 02:02:27
従来のVisual C++と互換性があって.NETも使える欲張りな言語だから複雑。

ボックス化
アンマネージ→マネージ

ボックス化解除
マネージ→アンマネージ
298デフォルトの名無しさん:2005/05/29(日) 15:00:07
混ぜずにCOMを使ったほうがいいと思う。
299デフォルトの名無しさん:2005/05/29(日) 21:49:14
コンパイルエラーが

: error C2143: 構文エラー : ';' が '*' の前にありません。
: error C2501: 'CClashApp::CMainWindow' : 識別名を宣言するのに、型が指定されていません。
: error C2501: 'CClashApp::m_pWnd' : 識別名を宣言するのに、型が指定されていません。



class CClashApp : public CWinApp
{
public:
CMainWindow* m_pWnd;    //すべて、この行のエラー
CClashApp();
public:
virtual BOOL InitInstance();

DECLARE_MESSAGE_MAP()
};

これ、何が原因なんでしょうか?
300デフォルトの名無しさん:2005/05/29(日) 21:52:10
そこの行までにCMainWindowの定義がないから。
301300:2005/05/29(日) 21:52:54
ポインタだから最低宣言だけあればいいか
302デフォルトの名無しさん:2005/05/29(日) 22:10:56
ありがとうございます。

class CMainWindow;

これを宣言したらエラーは消えました。
303デフォルトの名無しさん:2005/05/29(日) 22:22:57
宣言も無いのに型として指定することなどできん
こんなことくらい常識だろう?
304デフォルトの名無しさん:2005/05/29(日) 22:34:31
>>297
えぇ??
Managed C++は使ったことないが、boxing/unboxingは値型と参照型の変換だろ?
Managed-Unmanaged間の変換はマーシャリングじゃないのかと。
305デフォルトの名無しさん:2005/05/30(月) 01:31:37
えーすいませn

プリプロセッサに _UNICODE を渡すように
プロジェクトの設定をいじったのですが、
TCHAR -> char
MessageBox -> MessageBoxA
TEXT("ほげ") -> "ほげ" (Lプリペンドなし)
になっているようなのですが
どうすれば直りますか?

いじってるのは、
Programming Windows (petzol)
2章に載ってるサンプルコード "SCRNSIZE.C"です。

onegaisimasu
306デフォルトの名無しさん:2005/05/30(月) 01:48:35
#ifdef _UNICODE

#ifndef _TCHAR_DEFINED
#if !__STDC__
typedef wchar_t TCHAR;
#endif
#define _TCHAR_DEFINED
#endif

#else /* ndef _UNICODE */

#ifdef _MBCS

#ifndef _TCHAR_DEFINED
#if !__STDC__
typedef char TCHAR;
#endif
#define _TCHAR_DEFINED
#endif

#endif /* _MBCS */

#endif /* _UNICODE */
307デフォルトの名無しさん:2005/05/30(月) 02:24:25
_UNICODE と UNICODE 定義すれば
API も W になった…気がした。
308305:2005/05/30(月) 02:40:40
...ですが
winnt.hで定義されているらしい
UNICODEというのも渡したら、直ります田おさわがせすます田
309270:2005/05/30(月) 08:53:24
>>279
お返事遅れて申し訳ありません。
やはり腰を据えて勉強するべきでよね・・・了解です。
(ブ厚い)本買ってやってみます。御指導ありがとうございました。
310300:2005/05/30(月) 09:17:20
APIの方はUNICODEで、CRTの方は_UNICODEだっけか?
311デフォルトの名無しさん:2005/05/30(月) 09:39:13
WINMMAPI BOOL WINAPI PlaySoundA( IN LPCSTR pszSound, IN HMODULE hmod, IN DWORD fdwSound);
WINMMAPI BOOL WINAPI PlaySoundW( IN LPCWSTR pszSound, IN HMODULE hmod, IN DWORD fdwSound);
#ifdef UNICODE
#define PlaySound PlaySoundW
#else
#define PlaySound PlaySoundA
#endif // !UNICODE
312デフォルトの名無しさん:2005/05/30(月) 16:20:47
モーダレスダイアログを作ってそれにコピー中のファイル名を表示させているのですが
作業中に中止させたいと思っています
モーダレスダイアログに中止ボタン作成してボタンをクリックしてコピーを中止させるには
どうすればいいでしょうか
313デフォルトの名無しさん:2005/05/30(月) 16:24:07
中止ボタンが押されたらコピーを中止する。
314312:2005/05/30(月) 16:38:51
あぅ、そうなのですが
コピーをどうすればとめられるのかなぁと思いまして
関数を作ってその中でコピーさせているので
コピーさせる関数を止めるにはどうすればいいのでしょうか
315デフォルトの名無しさん:2005/05/30(月) 16:40:56
returnすればいい
316デフォルトの名無しさん:2005/05/30(月) 16:43:16
exit(0);したら止まるぜ。
317デフォルトの名無しさん:2005/05/30(月) 16:43:24
>>314
・中止ボタンのハンドラでフラグを立てる。
・コピー処理が一段落したらそのフラグを見て勃っていたら中止する。
318デフォルトの名無しさん:2005/05/30(月) 17:29:39
一度勃ったら中止なんて出来ません!
319デフォルトの名無しさん:2005/05/30(月) 17:34:40
質問だけでなくギャグのラベルも低すぎるスレだ。
320デフォルトの名無しさん:2005/05/30(月) 18:47:08
ReadFileExとか使って非同期で処理
初心者スレはWindowsのプログラム作ったことないやつが
いっぱいいそうだな
321デフォルトの名無しさん:2005/05/30(月) 18:50:17
>>320
大丈夫、>320のような勘違い厨も多いから。
322デフォルトの名無しさん:2005/05/30(月) 18:56:45
中断処理っていうと印刷でまず出たもんだがなぁ
323デフォルトの名無しさん:2005/05/30(月) 20:07:32
VC6で検索するときに、"開いているドキュメントをすべて検索"にチェックを入れると
ときどきMSDEV.EXEのエラーでVCごと落っこちてくれるんだけど、何か決定的な理由あるんでしょうか?
324デフォルトの名無しさん:2005/05/30(月) 21:36:46
MFCやCRTのソースとかサブフォルダまで検索かけてるけど
落ちたことないな
325デフォルトの名無しさん:2005/05/30(月) 21:56:41
俺も無いな
>>323固有の問題じゃねーの?
メモリーにエラーがあるとか

実際、自分とこでエラーなんて一切出ないプログラムを、
OSは同じだけどマシンの違う他人のPCに持ってったら突然エラー出るとかあるし
326デフォルトの名無しさん:2005/05/30(月) 22:27:11
CV6はよく落ちるよ
327デフォルトの名無しさん:2005/05/30(月) 23:52:45
CV6って??
328デフォルトの名無しさん:2005/05/31(火) 01:52:26
「VC++ .NET Standard Version 2003」の購入に関する相談です。

これには最適化機能が無いと聞いたのですが、総合的にどの位の差が出るものですか?
用途は主に、自分用の小規模、中規模のWindowsアプリケーション作成、
たまに使い捨てのコンソールアプリケーションを作る程度のものです。
329デフォルトの名無しさん:2005/05/31(火) 02:58:54
なつかしい…。
CV = Code View
MS C version 4あたりに付いてたな。
330デフォルトの名無しさん:2005/05/31(火) 03:03:38
NEC PC-9801CV21かー。懐かしいな。
331デフォルトの名無しさん:2005/05/31(火) 10:17:45
>>328
問題ない
はっきりいってその程度だと比べても気がつかない
332デフォルトの名無しさん:2005/05/31(火) 12:53:52
>>331
便乗質問です。気が付くくらい差が出るのってどんな領域からでしょうか?
333デフォルトの名無しさん:2005/05/31(火) 13:03:47
流体解析とかじゃね?
334デフォルトの名無しさん:2005/05/31(火) 13:31:11
数値計算とか計算量がやたら多い領域。
最適化で命令数を減らすと効果が出る。
335デフォルトの名無しさん:2005/05/31(火) 13:52:26
便乗で、「VC++ .NET Standard Version 2003」で開発したものは商用に使えますか?
336デフォルトの名無しさん:2005/05/31(火) 14:51:30
>>333
>>334
ありがとうございます。踏面そのような分野に手を出す見込みが無いので安心できました。
337デフォルトの名無しさん:2005/05/31(火) 14:55:35
MSDN アカデミックアライアンスで提供されるソフトウェアは、非商業、非営利の教育・研究目的にのみ利用できます。実稼動用システム開発用に利用することはできません。また商用ソフト開発用には利用できません。
338デフォルトの名無しさん:2005/05/31(火) 17:56:46
Stdってアカデミックライセンスなの?
339デフォルトの名無しさん:2005/05/31(火) 18:44:08
>>324-325
メモリーエラー・・・あるかもしれない。
たまーにアドレス0x〜をReadに出来ないとかそんなメッセージも出ますしorz
340デフォルトの名無しさん:2005/05/31(火) 19:03:02
>>335
それぐらい調べてわからないような馬鹿なら
買っても使いこなせない
341デフォルトの名無しさん:2005/06/01(水) 14:20:01
>>339
それはただのバグ。君のコードのね
342デフォルトの名無しさん:2005/06/01(水) 22:29:52
for(int i=0;i<m_Array.GetSize();i++){}
こんなループを使っていてふとMFCライブラリリファレンスを見てみると

>CArray::GetSize
>配列のサイズを返します。
>INT_PTR GetSize( ) const;
と書いてありました。
配列のサイズを返すのになぜポインタが使われているのでしょうか。
それから上のループでm_Array.GetSize()を整数扱いしているのに
警告が出なかったこともわかりません。
343デフォルトの名無しさん:2005/06/01(水) 22:39:07
>>342
ヘッダでのINT_PTRの定義を探してみよう。
PTRが何か分かるかな?
344デフォルトの名無しさん:2005/06/01(水) 22:41:15
本来なら定義を見なくてもわかる名前をつけるべきだとは思うけどね。
INT_PTRじゃ誰だってINT*だと思うだろう。
345デフォルトの名無しさん:2005/06/01(水) 22:55:30
>>342 一度ははまる罠だな。
http://www.microsoft.com/japan/msdn/library/ja/jpdnw2ksrv/htm/AppSpecServ11.asp

Fixed-precision 型
DWORD32 32 ビット符号なし整数
DWORD64 64 ビット符号なし整数
INT32 32 ビット符号付き整数
INT64 64 ビット符号付き整数

Pointer Precision 型
DWORD_PTR pointer precision 用符号なし long 型
INT_PTR pointer precision 用符号付き整数型

Specific Pointer-Precision 型
346デフォルトの名無しさん:2005/06/01(水) 23:35:41
>343-345
ありがとうございます。大勘違いしていました。
MSDNにもちゃんと書いてあったのにお恥ずかしいです。
347デフォルトの名無しさん:2005/06/02(木) 11:55:11
チェックボタンをユーザーに変更できないようにするにはどうすればよかですか
348デフォルトの名無しさん:2005/06/02(木) 12:04:29
マウスメッセージ捨てちゃえ
349デフォルトの名無しさん:2005/06/02(木) 12:26:59
タブがきいてる
350デフォルトの名無しさん:2005/06/02(木) 15:28:13
>>349
つ耳栓
351デフォルトの名無しさん:2005/06/02(木) 15:32:19
(∩゚д゚)
352デフォルトの名無しさん:2005/06/02(木) 16:37:39
>>347
グレーになっていじれなくするのでよければ、
チェックボックスのウィンドウをDisableすればいい。

MFCのCWnd::EnableWindow(FALSE)とか、
WS_DISABLEDとか。
353デフォルトの名無しさん:2005/06/02(木) 16:52:08
クリックされたら強制的に元に戻すとか
354デフォルトの名無しさん:2005/06/02(木) 20:51:36
VC++で1msの精度のタイマを実現できるでしょうか?
355デフォルトの名無しさん:2005/06/02(木) 21:06:26
>>347
果たして、ユーザーの触れないチェックボックスなど存在意義があるのだろうか
356デフォルトの名無しさん:2005/06/02(木) 21:10:11
結局、他にCPUを奪っていくタスクがあれば、
精度なんてあって無いようなものなんだよ。
 割り込みをうけるデバイスドライバを開発するなら話は別だけど。
357デフォルトの名無しさん:2005/06/02(木) 21:16:09
>>355
現在の状態を表すだけとか
358デフォルトの名無しさん:2005/06/02(木) 22:48:43
>>356
マルチメディアタイマでも駄目なんですかね?
359デフォルトの名無しさん:2005/06/02(木) 22:53:20
あれは割り込みだからかなり細かくいけるけど、
完全ではないよね

って割り込みだったのはWin16までだっけ?
360デフォルトの名無しさん:2005/06/02(木) 23:25:34
成る程ですね・・・・そうなると1msの精度ではなく1ms以下という
条件ならどうでしょうか?
というかそもそもどのくらいの精度まで保証してくれてるんだろう・・・。
361デフォルトの名無しさん:2005/06/03(金) 00:16:45
while(1){
GetLocalTime(&t);
if(i != t.wMilliseconds){
Func();
}
i = t.wMilliseconds;
}
362352:2005/06/03(金) 04:45:44
>>348-355
初心者が回答するなよ。

普通にWindowsのアプリを使っていたら、見かけるだろが。
363デフォルトの名無しさん:2005/06/03(金) 05:42:30
随分自虐的ですねw
364デフォルトの名無しさん:2005/06/03(金) 18:07:56
>>360
だから358の言っているマルチメディアタイマ(timeGetTime)じゃだめなのか?
最大1msの精度を持っている。
365デフォルトの名無しさん:2005/06/03(金) 18:19:54
DebugかReleaseかでアプリの動作が変わってしまうことの原因が
変数の初期化だとしたら、その理屈を教えてください。
DebugとReleaseで何が違うのでしょうか。
366デフォルトの名無しさん:2005/06/03(金) 18:31:14
Debugは、初期化してない変数をすべて
0xCDのバイト列に初期化するから
367デフォルトの名無しさん:2005/06/03(金) 18:37:40
>>366ではないが>>366のつづき。

初期化していない変数を参照して何かするプログラムを書くと動作が変わる。
つまり、初期化や代入していない変数を参照してはいけない。
368デフォルトの名無しさん:2005/06/03(金) 21:46:12
>>365
Debugビルドは通常最適化が無効になっている。
Releaseビルドは最適化が有効になっている。

バグのあるコードを書いたりすると、最適化の結果動作が変わることもある。
たとえばループ内で行っていた演算がループの外に移動したりとかな。
369デフォルトの名無しさん:2005/06/04(土) 01:08:16
#ifdef _DEBUG
を知らないんだったら、調べとけ
370デフォルトの名無しさん:2005/06/04(土) 15:21:13
>>365
class A {
 bool flag;
 A() {...} //flagの初期化を忘れてた
 f() { if(flag) .....;}
};

てケースでハマったことあり。
なぜかリリースビルドだと正常に動かない!
371デフォルトの名無しさん:2005/06/04(土) 19:01:16
VisualC++6.0sp6からVisualStudio.NETのVC7に移行しようと考えています。

互換性についての問題はあまり聞かないのですが、
殆どそのまま移行できると考えてよいのでしょうか?
また、互換性についての問題がまとまっているサイトなどありましたら教えていただけないでしょうか。
372デフォルトの名無しさん:2005/06/04(土) 19:11:08
>>371
VC++.NETではMFCベースのアプリケーションを
作る事も出来る。MFCベースのネィティブ
アプリケーション作るなら、ほぼそのままの
コードで動く。
373デフォルトの名無しさん:2005/06/04(土) 19:11:45
なんの互換性かわからんが、VC6で書いたソースがまんまコンパイルできるか
というハナシなら大丈夫のはず
374デフォルトの名無しさん:2005/06/04(土) 19:17:05
初心者なら移行も何も新規インストールでお願いします。
過去のことはきれいさっぱり忘れよう。
375デフォルトの名無しさん:2005/06/04(土) 19:28:52
>>373
VC6で開発してきたアプリケーションをそのままVC7でコンパイルしても
(コンパイラのバグなどで)細かな挙動の違いは出てくると思うのですが、
今まで見つかっているものはどんなものがが知りたいと思っています。

http://www.microsoft.com/japan/msdn/library/ja/vccore/html/_core_port_to_the_standard_c.2b2b_.library.asp
は一応見てみましたが、ここに書いてあるのは
あくまでMSが開発時に意図して変更したものしか記載されていないと思いますので。
376デフォルトの名無しさん:2005/06/04(土) 19:31:04
>>375
MSに相談してくれ
ここは初心者スレ
377デフォルトの名無しさん:2005/06/04(土) 19:32:00
>VC6で開発してきたアプリケーションをそのままVC7でコンパイルしても

初心者なのか?
378デフォルトの名無しさん:2005/06/04(土) 19:53:55
>>377
VC7は…

というか、この板の中で他に適切なスレが無いように思うのですが。
379デフォルトの名無しさん:2005/06/04(土) 21:07:34
.NET2002ならとりあえずサービスパック1を入れておけ。
MFCしか知らないが、MFC限定で言うと、仕様が変わったものがあるから
VC++6.0用のコードをそのままVC++7.0でコンパイルすると警告が出ることがある。
たとえば、ファイルサイズを取得するCFileFind::GetLength()は
以前はUINTを返したけど今は64ビットのU整数を返すから32ビット値だと
思っているとなんで警告が出るか悩むだろう。まあ、移行でソースが間違っていないのに
コンパイルで警告やエラーが出たらその内容をその度にMSDNなどで確認することを
薦める。その内すぐに分かるようになるよ。
380デフォルトの名無しさん:2005/06/04(土) 22:11:00
こんばんわ

Dialogリソースに、リッチエディットを貼り付けた途端、そのダイアログがエラーで表示されなくなりました。
どうしてなのでしょうか?
何かDialogを表示する前にリッチエディットに対してする前処理があるのでしょうか?
381デフォルトの名無しさん:2005/06/04(土) 22:32:42
>>380
AfxInitRichEdit();を事前に呼び出す必要があります。
382デフォルトの名無しさん:2005/06/05(日) 00:06:08
下のように、仮想関数テーブルを持っているhogesub オブジェクトの
ポインタを保持するhoge1オブジェクトへのポインタを保持するvectorに、
hoge1オブジェクトポインタをpush_backするだけで、hogesubの仮想関数テーブルが
破壊されるんですが、何が悪いのか判る人いませんか?

class hogebase {
 virtual void somefunc();
};
class hogesub : public hogebase
{
 virtual void somefunc();
...
};

class hoge1 {
 hogebase* hoge_ptr;
 void someInit() { hoge_ptr = new hogesub; }
 ...
}

void main() {
vector< hoge1* > vec;
 hoge1* ptr = new hoge1;
 vec.push_back( ptr );
}
383デフォルトの名無しさん:2005/06/05(日) 00:09:36
hogesubの仮想関数テーブルが破壊される
と思った根拠は何?
384デフォルトの名無しさん:2005/06/05(日) 00:34:07
>>382
破壊されてないに一票。
385デフォルトの名無しさん:2005/06/05(日) 00:40:45
>>383
デバッガでトレースしていると、push_back中にeaxレジスタにhoge_ptrの仮想関数テーブルのアドレスを入れて、そこにecx(thisポインタ)を入れてます。
386デフォルトの名無しさん:2005/06/05(日) 00:41:23
>>383
デバッガでトレースしていると、push_back中にeaxレジスタにhoge_ptrの仮想関数テーブルのアドレスを入れて、そこにecx(thisポインタ)を入れてます。
387デフォルトの名無しさん:2005/06/05(日) 00:43:27
すまん、重複してしまった。

>>384
VC++ですので、vtableが見れるので破壊されるタイミングまで一目瞭然です。
388デフォルトの名無しさん:2005/06/05(日) 01:24:15
言ってることがよくわからないけど push_back が呼ばれるときに 渡されるのは hoge1 のアドレスだけじゃないのかね?
389デフォルトの名無しさん:2005/06/05(日) 03:47:21
hogesub関係ねーじゃん

つうかhoge1のコンストラクタで何かしてんの?
390デフォルトの名無しさん:2005/06/05(日) 12:51:10
VCはダイアログなどのデザインのコツがわかりません。
VBのようなWYSIWYG的なデザインできませんよね?
391デフォルトの名無しさん:2005/06/05(日) 13:22:34
>>390
.net 2003ならできる。
392デフォルトの名無しさん:2005/06/05(日) 13:25:36
2003じゃなくても出来るけどね。
393デフォルトの名無しさん:2005/06/05(日) 13:56:21
394デフォルトの名無しさん:2005/06/05(日) 15:44:12
こんばんわ

質問ですが、
たとえば、
CString string;

string.とカンマまで入れると、ポップメニューが表示されてメンバ一覧が見れますが、
時々、そのポップアップメニューが表示されない時があります。
これはバグなのでしょうか?

使用しているのはVC++6です。
395394:2005/06/05(日) 15:45:16
追記ですが、
前後のソースコードに文法上の問題はありません。
コンパイルが通る状態で、string.と入れても、ポップアップメニューが表示されないのです。
396デフォルトの名無しさん:2005/06/05(日) 15:51:19
コードに不備があると出ないよ
その前にセミコロンがない行があるとか・・・etc
397デフォルトの名無しさん:2005/06/05(日) 16:10:29
*.ncb ファイルを削除すると良いかもしれない。

ただ、ヒントがどうしても表示されない場合ってのもあるっぽ。
VC7でも出てくれない事あるし…
398390:2005/06/05(日) 16:14:58
>>393
これってVCですよね?
でもここからコントロールごとの背景色・文字色・
文字の大きさなどはソース記述していかなきゃだめですよね?
他の開発環境のようにプロパティウィンドウへの記述だけで
できたらなぁ って思ったんです。
399デフォルトの名無しさん:2005/06/05(日) 16:35:21
ヘタレは他の開発環境つかってろ
400デフォルトの名無しさん:2005/06/05(日) 18:41:32
>>394
とりあえず、カンマじゃなくてドットな
カンマ打ってもメンバ一覧表示されないのはあたりまえ。

>>398
VBはそもそも、そういうAPIやら使ったコードで指定していかないといけない部分を
全部ランタイム側でラッピングしてユーザーが意識しないでいいようにしてるんだ。
逆にそういう風に隠してるからC/C++でやるのに比べて自由度が低くなる。
401デフォルトの名無しさん:2005/06/05(日) 18:48:51
>>398
ここに書いてある程度のことは全部できたと思うが・・・
いまなら、Visual C++ 2005 Express Edition Beta 2 日本語版が無料で試せるので
ここでごちゃごちゃ聞くより、Beta版試してみたら?

http://www.microsoft.com/japan/msdn/vstudio/2005/express/visualc/
402390:2005/06/05(日) 19:23:24
レスありがとうございます。
早速試してみます。
C++ Builderも。
403デフォルトの名無しさん:2005/06/05(日) 20:14:37
VC6.0が作るファイル
aps リソースをすばやくロード
opt ワークスペースのウィンドウ レイアウトとか
じゃあncbはなんですか?
Microsoft C/C++ program database 2.00と先端に書かれてます。
404デフォルトの名無しさん:2005/06/05(日) 21:53:06
調べりゃわかることをいちいち聞くやつ答えるやつ
405デフォルトの名無しさん:2005/06/05(日) 23:38:56
>>403
プログラムのコンパイルを早くする裏方さんとだけ知っておけば問題ないよ。



…個人情報が含まれている可能性がある
削除しても問題なし、他の人に渡す時にはむしろ削除した方がいいという事も言ってみるテスト。
406デフォルトの名無しさん:2005/06/06(月) 00:04:24
>>375
MFCなら、MFCのバイナリ互換がなくなった、ということに注意してね。

VC4.2〜VC6.0までは、ライブラリ側とそれを使う側の間で、
違うバージョンのMFCのオブジェクトを受け渡ししても大丈夫だったけど、
MFC7.0以降はそれが禁止されています。不可解なエラーとなるので注意。
ライブラリも含めてコンパイルし直してくださいね。

>>403
クラスビューのキャッシュみたいなもの。
コードを解析した結果が入っているよ。
407デフォルトの名無しさん:2005/06/06(月) 00:10:24
dllとそれを使用するヘッダーだけのファイルを自分のプログラムで使用したいのですが
libファイルの作成方法を教えてください。
implib でbcc32でのコンパイラでは使えるlibが出来たのですが vc では使えずに困っています、よろしくお願いします。
408デフォルトの名無しさん:2005/06/06(月) 01:18:12
一般的なライブラリなら新規作成ウィザードでライブラリプロジェクトのスケルトンを
作ったらそこにお好きなファイルを追加してビルドして下さい。
dllの作成も同様です。dllのプロジェクトを作成してビルドすれば
そのdll用のlibとdllが出来ます。
409デフォルトの名無しさん:2005/06/06(月) 03:56:01
>>407
つまり、
ヘッダーファイルしか提供されていない他人が作ったDLLのインポートライブラリをVC++用に生成したい。
ってことね。>>408さん、早合点でしたね。

VC++には、Borlandのimplib相当のツールはついていません。
フリーウェアでありますので、探してみてください。
410デフォルトの名無しさん:2005/06/06(月) 07:46:53
ふと思ったんだけどBccのimpdefはVCでも使えないかな。
411デフォルトの名無しさん:2005/06/06(月) 10:41:31
早合点とかじゃなくて、質問者の情報が少なすぎるんだろ
この場合、わかっててもあえて違うほうで答える場合もある
412デフォルトの名無しさん:2005/06/06(月) 12:18:13
スレと関係ない話が多すぎるな
隔離スレ作るか
名前の候補を3つ考えてみた
他に希望がなければこの中から決めるぞ

VCのヲタ話はここで
談話室VC
VCなんでも相談室
以上の3つ
413デフォルトの名無しさん:2005/06/06(月) 12:23:24
#include <stdio.h>

int i_input();//1:integer 0:string
int char2int(char []);

//1000以下の二つの数字を入力させて、その合計を表示しなさい。(6/6の宿題)

main(){
char s[80];
printf("%d\n",i_input(s));

}

int i_input(char a[]){
int i;
printf("1000以下の整数を入力してください。\n");
gets(a);
i=0;
while(a[i]){
if(!(a{i]>='0' && a[i]<='9')) return 0;
i++;
}
return 1;
}

これ、どこがおかしいんですか?
414デフォルトの名無しさん:2005/06/06(月) 12:31:02
C/C++の宿題を片付けます 44代目
http://pc8.2ch.net/test/read.cgi/tech/1116914132/
415デフォルトの名無しさん:2005/06/06(月) 12:37:03
>>414
すみません、ではそちらで質問します
416デフォルトの名無しさん:2005/06/06(月) 13:06:32
最近の宿題って問題があやふやだな
何を予習(又は復習)させようとしてる宿題なのかがわからん
417デフォルトの名無しさん:2005/06/06(月) 14:28:38
独学で学んだ方が上達も覚えるのも早い希ガス
418デフォルトの名無しさん:2005/06/06(月) 15:05:27
プログラムなんて嫌々やって覚えられるもんじゃない希ガス。
419デフォルトの名無しさん:2005/06/06(月) 15:07:52
>>409
死ねよ屑
420デフォルトの名無しさん:2005/06/06(月) 15:17:48
>>416
出来ない子が多いから
とりあえず出来そうなことをさせて褒めてあげるのが目的。
421デフォルトの名無しさん:2005/06/06(月) 15:24:40
>>413は やればできる子
422407:2005/06/06(月) 19:49:26
>>408-411
お返事ありがとうございます。
その用なツールがあるのですね、探して見ます。
423デフォルトの名無しさん:2005/06/06(月) 22:18:04
Visual C++.netでは、Win98やWinMeで動作するアプリは作れないのでしょうか?
424デフォルトの名無しさん:2005/06/06(月) 22:24:20
>>423
作れる。
ただしマネージドC++にすると.Net Fremeworksを相手にインストールしてもらう必要があるし、Win95では動かない。
425409:2005/06/06(月) 22:49:44
>>411
いいや、十分な情報が書かれてるよ。
誰しもが通るような道なんだからさ。

初心者なのに回答している香具師にはわからないかもな。

>>419
お前こそな。

426デフォルトの名無しさん:2005/06/06(月) 22:51:19
>>424
つまり、Win32プロジェクトで作れば良いという事ですか?
あと、コンソールアプリケーションはマネージドC++以外
からは作れない、という認識で良いのでしょうか?
427423:2005/06/06(月) 23:57:12
すいません、勘違いしてました。
基本的にはWin32プロジェクトで作れば、
コンソールアプリもウィンドウアプリでも作れますね。
まだ、マネージドC++の位置付が良く理解できてないので、
トンチンカンな回答をしてしまいました。とりあえずは
ヘルプを色々と調べてみることにします。

では、どうもありがとうございました。
428デフォルトの名無しさん:2005/06/07(火) 07:35:59
>>427
マネージドにしてもコンソールに入出力するプログラムは作れる。
それどころかアンマネージドコードとも混在できるのがマネージドC++の特長らしい。
429デフォルトの名無しさん:2005/06/07(火) 12:15:23
>>425
だから、全然早合点じゃないだろ
430デフォルトの名無しさん:2005/06/07(火) 12:16:07
libを作らなくてもdllの呼び出しは可能
431デフォルトの名無しさん:2005/06/07(火) 12:49:55
質問なんですが、VC++.NET 2002を持っていまして、何度かインストールを
したことがあるのですが、そのときそのときによって、標準状態での
ソリューションエクスプローラが右側であったり左側であったりします。
これはなぜでしょうか。また切り替えることはできますか?
432デフォルトの名無しさん:2005/06/07(火) 13:00:56
パソコン初心者でも金さえだせば買えるという事実
433デフォルトの名無しさん:2005/06/07(火) 14:17:57
>>431
>そのときそのときによって
インストールするたびにですか? 普通は変えない限り変わらないはずですが。

>切り替えることはできますか
できます。つかんで移動するだけです。
434デフォルトの名無しさん:2005/06/07(火) 15:15:14
>つかんで移動するだけです。
>つかんで移動するだけです。
>つかんで移動するだけです。
>つかんで移動するだけです。

インパクの森首相を思い出した
全国で無料IT講習会があったはずだけど
あんまり効果がなかったようだね
435デフォルトの名無しさん:2005/06/07(火) 15:40:58
grab&drag
436デフォルトの名無しさん:2005/06/07(火) 17:10:28
だが実際問題、つかんで移動という感じだがな
437デフォルトの名無しさん:2005/06/07(火) 17:42:46
「つかんで移動」、最高にわかりやすい
438431:2005/06/07(火) 17:52:24
>>433
レスどうもです。
最初ドラッグしても横長になったりとうまく収まらないと思ったのですが、
こねくりまわしていたら、移動できました。トンクス。
439デフォルトの名無しさん:2005/06/07(火) 17:53:16
VS.NETを最近買いまして、
C++に関しては右も左も分からないレベルなんですが、
ちょっと質問が。GUIプログラミングを行うときは
やっぱりMFC使用が当たり前なんでしょうか?
MFC非使用ですべて自作というのは変人レベルですか?
440デフォルトの名無しさん:2005/06/07(火) 17:54:57
>>439
そんなこと言われると俺は始めた時から変人レベルと言うことになるんだが・・・
441デフォルトの名無しさん:2005/06/07(火) 17:55:40
>>439
そんな事もない。
442439:2005/06/07(火) 17:58:24
>>440
となると、そこまでは珍しくない?
解説サイトをいろいろ見て回ったのですが、
GUIなソフトを作るならMFCで作ってるものしか見かけなかったもので。
443デフォルトの名無しさん:2005/06/07(火) 18:02:34
>>442
あくまで、俺なら、だが

MFC使ってないなんて変って言われたら、おまえの方が変だって言い返してやるくらい珍しくないとおも
444デフォルトの名無しさん:2005/06/07(火) 18:02:56
>>442
んなこたない
445デフォルトの名無しさん:2005/06/07(火) 18:04:55
しかしメッセージクラッカー使っているのは珍しい感じがするんだよな、便利なのに。

そんな俺はWTL。
446439:2005/06/07(火) 18:07:33
>>443-444
ボタンとか自作するのめんどくさくないですか?
って書こうとしたらMFCじゃなくても用意してありますね。
MFCがなんなのかよく分からなくなってきた。出直してきます。orz
こんな馬鹿に付き合ってもらってありがとうございました。
447デフォルトの名無しさん:2005/06/07(火) 18:25:07
>>446
ボタンなんて
DrawEdge()
DrawText()
WM_LBUTTONDOWN
PtInRect()
だぜ。
(略しすぎ)
448デフォルトの名無しさん:2005/06/07(火) 18:55:52
いやぶっちゃけVCならリソースで終了だろ
449デフォルトの名無しさん:2005/06/07(火) 22:12:32
VCでコマンドライン入力が必要なプログラムを動かす方法があったら教えてください。
450デフォルトの名無しさん:2005/06/07(火) 22:32:20
意味がわからん
コンソールアプリを作りたいのか
コンソールからビルドしたいのか

まぁどっちもできるが
451デフォルトの名無しさん:2005/06/07(火) 22:38:07
コンソールからビルドです
452デフォルトの名無しさん:2005/06/07(火) 22:39:18
>>449
メニューのツール(T)→外部ツール(E)...を選んで登録したら
コマンドライン入力が必要なプログラムでも何でも動かせるよ。
453デフォルトの名無しさん:2005/06/07(火) 23:02:24
visual cって行番号表示できないの?
454デフォルトの名無しさん:2005/06/07(火) 23:02:58
できるよ
どこで設定するかは忘れたけど
455デフォルトの名無しさん:2005/06/07(火) 23:19:11
思い出してくれ頼む
456デフォルトの名無しさん:2005/06/07(火) 23:28:46
行番号を表示しないで使うのが普通。
行番号付きBASICじゃないんだから。
457デフォルトの名無しさん:2005/06/07(火) 23:28:48
ステータスバーにちっこく表示されてるよ
行番号ジャンプはctrl+g
458デフォルトの名無しさん:2005/06/07(火) 23:37:24
ちっこくでてるのはわかるけどなぁ
直感的にわかりにくいじゃん
場所が
459デフォルトの名無しさん:2005/06/08(水) 00:25:33
行番号で、直感的に場所が判ったらすげぇや。
460デフォルトの名無しさん:2005/06/08(水) 05:47:51
場所がどこかわからないと困るケースなんてたいていコンパイルエラー時だし、
エラーメッセージダブルクリックで事足りるし
461デフォルトの名無しさん:2005/06/08(水) 09:35:16
>>453
VisualStudio2003.netの場合:ツール.オプション.テキストエディタ.C/C++.全般.行番号
462デフォルトの名無しさん:2005/06/08(水) 09:39:25
>>451
VCVARS32を実行してから
nmake や、 cl を実行する
463デフォルトの名無しさん:2005/06/08(水) 14:42:21
これからVC++始めようと、VC++2005のβ版を入れたんですが
基本操作がさっぱりわかりません・・・
VC++6の講座があるページ見てみたんですが結構違うみたいで。
初心者の独学にいいページってないですか?
464デフォルトの名無しさん:2005/06/08(水) 14:59:39
本を買う
465デフォルトの名無しさん:2005/06/08(水) 15:19:27
悪いことは言わん
本買っとけ
466デフォルトの名無しさん:2005/06/08(水) 15:24:01
まだ2005の本って出てないですよね。
経験者の方から見てVC++6とVC++2005の操作って同じですか?
467デフォルトの名無しさん:2005/06/08(水) 15:40:53
>>466
じゃあ2003と2005はどう?
468デフォルトの名無しさん:2005/06/08(水) 15:57:04
>>467
VC++これから始めるので2003もわかりません・・
469デフォルトの名無しさん:2005/06/08(水) 16:05:16
向いてないから諦めたほうがいいよ
470デフォルトの名無しさん:2005/06/08(水) 16:18:00
仕事で使うんでそういうわけにも・・・(´・ω・`)
何か本探してきます。
471デフォルトの名無しさん:2005/06/08(水) 16:32:47
仕事で使うものをただで教えてもらおうなんて甘い。
その仕事で食ってるんじゃないのか?
472デフォルトの名無しさん:2005/06/08(水) 16:49:34
とりあえず、これから始めようって人間が最新バージョンのβでやろうってのが間違ってる
473デフォルトの名無しさん:2005/06/08(水) 16:51:26
立ち読みして役立ちそうなのを数冊みつくろって
買ってくればいい。どれが役に立つかは
読んでみればわかるし、今後立ち読みで
厳選するときに役に立つ

仕事ならそれくらいやるべし
474デフォルトの名無しさん:2005/06/08(水) 17:21:24
>>472
まだ会社にVC++入ってなくて、仕方なく・・・自分で買う金も無いし、
操作に慣れるだけなら2005でもいいかなと。考えが甘かったわけですが。

>>471,473
心入れ替えていい本探してきます(`・ω・´)ゝ
475デフォルトの名無しさん:2005/06/08(水) 18:49:51
おめーらみてーな低脳が
人に説教たれてんじゃねーよ
ヴォケ
476デフォルトの名無しさん:2005/06/08(水) 18:59:09
開き直りはいかん
477デフォルトの名無しさん:2005/06/08(水) 20:47:52
ワロタ
478デフォルトの名無しさん:2005/06/09(木) 01:09:48
"hello"出すのに2時間ぐらいかかったぞ(;´Д`)
479デフォルトの名無しさん:2005/06/09(木) 02:57:03
>>474
やる気ないだけだろ。
やる気あるやつは2005β版でとっくにはじめてるよ。ただだしな。
480デフォルトの名無しさん:2005/06/10(金) 10:34:54
VC++を購入したいのですが、予算も知識もなく困っております
2003 か 6.0か。 通常版かアカデミックか。 standardかprofessionalか。
いくつか質問させてください

1・アカデミックは、購入する時に学生証の提出等が必要なだけで
一回購入さえできれば、後で学生である事の認証等いりますか?

2・6.0のstandardは Service Pack5をインストールすれば最適化が使えるように
なると聞いたのですが本当でしょうか?
その場合、通常版でなければ無理とか、アカデミック版でなければ無理とかありますか?
2003standardでも現在はService Packをインストールすれば最適化が使える等ありますか?

3・MFCではなく、SDKを中心に学んで使っていきたいのですが
だったら特に6.0より2003のほうが全然いいとかいう機能等はありますか?

教えて頂けると助かります 宜しくお願いします
481デフォルトの名無しさん:2005/06/10(金) 10:54:45
theSpokeも選択肢に入れたら?

あと、SDKしたいだけなら無料のVC ToolKitで十分
482デフォルトの名無しさん:2005/06/10(金) 12:53:21
PostQuitMessage(0);
を処理しているのに、アプリが終了しません。
デバッガで確認したから間違いありません。
何故でしょうか?
483デフォルトの名無しさん:2005/06/10(金) 13:02:11
>>482
メッセージループがまずいんじゃないの。
GetMessageでウィンドウハンドルを指定しているとか。
484デフォルトの名無しさん:2005/06/10(金) 13:18:07
>>483
Thanks
いつもコピペで入れてたので、気づかなかった。
485デフォルトの名無しさん:2005/06/10(金) 13:43:28
>>484
どうせwhile (GetMessageなんてやっているんだろ。
486デフォルトの名無しさん:2005/06/10(金) 15:46:22
別にそれでいいが。
487デフォルトの名無しさん:2005/06/10(金) 19:01:39
>>480
基本的に学生用でも買う時に証明が要るだけ
488デフォルトの名無しさん:2005/06/10(金) 19:10:13
1.知らん。.NETはアクティベーションが必要だったはずだが。
2.なる。サービスパック4以降だったかな。コンパイラもサービスパックで
アップデートされるんだが、そのアップデートが最適化コンパイラで
すべてのエディションに適用される。アカデミックも同じ。但し、最適化
オプションは手打ちで設定。.NET2003はまだサービスパックは出ていないが、
Visual C++ .NET 2003 Toolkitとかいう奴を入れると最適化コンパイラが
手に入るらしい。
3.新しいAPIを使いたければ.NET 2003にしておけば良いだろう。

つーか、6.0なんて今となってはやっぱり古いぞ。.NETでコンパイルする方が
実行速度速いし。既に持っているならともかく、今更あえて買うべきでもないと
思うが。以上。
489仕様書無しさん:2005/06/10(金) 22:09:58
iniファイルのsection情報を取得し、section毎のキー情報をデータに
して格納する。

これって簡単?
GetPrivateProfileSectionNames() と GetPrivateProfileSection()
を使ってうまく出来ないだろうか。

他の掲示板調べたけれどもVBのやりかたしか載ってなし。
490デフォルトの名無しさん:2005/06/10(金) 22:29:26
VBのやり方を理解してC++で書き直せばよかろう。
491デフォルトの名無しさん:2005/06/10(金) 22:43:12
フリーなpdfライブラリってないでしょうか?
VC6です。
JavaとかPHP用とかなら見つかるんですけど、
VC用(Windows用)は有料しか見つからなくて。
492480:2005/06/11(土) 03:41:56
レスありがとうございます!

コンパイル後のプログラム実行速度ですが
2003standard に NET 2003 Toolkitつける
2003standard
6.0professional
では早い順に並べるとどのくらいでしょうか?

また、NET 2003 Toolkitは 何やら難しそうな感じはするのですが
プログラミング初心者でも使用できるでしょうか?
493デフォルトの名無しさん:2005/06/11(土) 03:53:16
とりあえず初心者なら実行速度や最適化など気にしない
494デフォルトの名無しさん:2005/06/11(土) 05:30:37
>>492
toolkitをまず試してみな。
満足行く速度が出ないならそれから考えろ。
495デフォルトの名無しさん:2005/06/11(土) 12:42:10
初心者ほどくだらないことを気にする。
496デフォルトの名無しさん:2005/06/11(土) 13:25:30
VisualC++っていうのを買わないとC++のプログラミングはできないんですか?
497デフォルトの名無しさん:2005/06/11(土) 13:28:06
>>496
できます
498デフォルトの名無しさん:2005/06/11(土) 13:30:47
C++の開発環境は高いのから無料まで腐るほどある。
しかしここはVisual C++のスレだ。

Microsoft Visual C++ Toolkit 2003 なら無料。
http://msdn.microsoft.com/visualc/vctoolkit2003/
http://homepage1.nifty.com/kazubon/progdoc/poor/vctoolkit.html
http://www.02.246.ne.jp/~torutk/cxx/vc/vctoolkit2003.html
499デフォルトの名無しさん:2005/06/11(土) 13:40:12
実行速度で比較すると、.NET 2003 +toolkit > .NET 2003 std > 6.0ではないか?
自分のアプリでは.NET2003でコンパイルし直したものの方が6.0でコンパイル
したものより二割くらい速かった。コンパイラが新しくなったのと同時に
ライブラリなども新しいコンパイラでコンパイルされているせいか全体的に
高速化が図られたという感じだ。ちなみにintelのコンパイラ+VC6.0の組み合わせより
.NET 2003オンリーの方が速かった。リンクするVC6.0のライブラリが古いため
であろうか。
500デフォルトの名無しさん:2005/06/11(土) 13:44:44
最適化できる6.0は 最適化できない.NET 2003 stdに負けるのか?
501デフォルトの名無しさん:2005/06/11(土) 13:49:19
>>497-498
ありがとうございます。
取り合えずダウンロードします。
502デフォルトの名無しさん:2005/06/11(土) 16:18:14
ベンチマークならコンパイラ持ってれば馬鹿でもできる。
503デフォルトの名無しさん:2005/06/11(土) 20:24:10
レスありがとうございました

当方少々事情があり、思いっきり初心者&貧乏人の癖に、
早く自分でプログラムを作って使わなければと、何といいますか少々せっぱつまったような状況でして・・
実行後のプログラムの速度や軽さが少しでも欲しかったもので;;
細かいこと聞いてすいませんでした><

もう一つ質問です
6.0のstandardで作ったプログラムは、vc++が入っていないPCでは動作できないかも
と、あるHPに書いてあったのですが、本当でしょうか?
VC++を入れてプログラムを作る用のPC と 作ったプログラムを使いたいPCが別なもので
悩んでおります。もし本当でしたら、2003のstandardでもそうなのでしょうか?
professional なら他のPCでも大丈夫ということでよいのでしょうか?

宜しくお願いしますm(_ _)m
504デフォルトの名無しさん:2005/06/11(土) 20:44:45
>>503
100%デマ。
そのサイト教えれ。
505デフォルトの名無しさん:2005/06/11(土) 22:49:13
>しかしVB6は今後バージョンアップは無さそうだし、サポートもそろそろ打ち切られるとか言われてるので
>今からVB6を始めるのもどうかと思うのですが、

非常に後味わるいから他スレで見つけたまともな意見で口直し
506デフォルトの名無しさん:2005/06/11(土) 23:40:10
>>503
6.0のstandardはMFCをスタティックリンクできないから
動作させる環境にDLLが入ってないと動かない。
2003のstandardはシラネ
507デフォルトの名無しさん:2005/06/11(土) 23:42:52
普通入ってる
508デフォルトの名無しさん:2005/06/11(土) 23:48:47
ノーマル95にも入ってるの?
509デフォルトの名無しさん:2005/06/12(日) 01:03:12
はじめまして。
最近WinXP、VC++6.0で勉強を始めました。
GUIの勉強をするためにWIN32アプリケーション→C++ソースから
挿入→リソースでDIALOGを作ろうとした時に出てくる
OKボタンやキャンセルボタンをドラック&ドロップできる
部品の一覧表を間違って閉じるボタンで消してしまいました。
プロパティなどを見たり、PCごと再起動してみたのですが
一覧表は消えたままで、ダイアログ中に新しい部品を貼れなくなってしまいました。
どのようにしたら、部品の一覧表を再び出すことが出来るのでしょうか?
510デフォルトの名無しさん:2005/06/12(日) 01:08:03
>>509
ツールバー上で右クリックして[コントロール]。
つか、いきなりGUIから入るなよ。
511デフォルトの名無しさん:2005/06/12(日) 01:23:26
>>510
ありがとうございます。
文字表が出てきて、なんとか部品を挿入できるようになりました。
他に絵の一覧で表示されていて
ドラック&ドロップで部品を挿入することが出来る
ウィンドウの出し方はご存じないでしょうか?
512デフォルトの名無しさん:2005/06/12(日) 05:30:58
ツールバーだろ
513デフォルトの名無しさん:2005/06/12(日) 17:23:22
自演だろw
514デフォルトの名無しさん:2005/06/12(日) 23:34:23
VISUALC++をやるのにC言語の知識って必要あるんですか?
515デフォルトの名無しさん:2005/06/12(日) 23:35:53
>>514
当然
516デフォルトの名無しさん:2005/06/12(日) 23:45:14
>>515
C言語の量が膨大すぎてVisualC++をやるにはどこを一番やったらいいのかわかりません…
517デフォルトの名無しさん:2005/06/13(月) 00:02:54
ここでうだうだしてるより、本買うなりWeb検索するなりしろよ。
VisualC++で何作るか知らんが、言語の他にWindowsAPIや
MFCの知識も必要になるかもしれないから覚悟しといた方がいいよ。
518デフォルトの名無しさん:2005/06/13(月) 00:04:20
簡単にはいかないということですね。
とりあえず関連性のありそうなことを片っ端からやっていきたいと思います。
519デフォルトの名無しさん:2005/06/13(月) 04:13:26
BOOL,TRUE,FALSEの宣言はどこに書いてあるんでしょうか?または、どのように宣言されているんでしょうか?
windows.hの中を見てみましたが内部でさらに色々includeしていて探すのが面倒で・・・
520デフォルトの名無しさん:2005/06/13(月) 04:18:54
識別子を右クリック

定義へ移動
521デフォルトの名無しさん:2005/06/13(月) 05:28:11
>>519
WINDEF.H
型だのの宣言に関しては全部これ
ちなみにその3つともint
522デフォルトの名無しさん:2005/06/13(月) 07:25:26
〜STR系はWinNT.h
523デフォルトの名無しさん:2005/06/13(月) 08:25:30
>>519
探すのが面倒だから代わりに探してくれ、か?
自分で探せよ。
524デフォルトの名無しさん:2005/06/13(月) 10:00:55
>>519
右クリックで定義位置を表示じゃダメ?
525デフォルトの名無しさん:2005/06/13(月) 10:03:26
>524
>520
526デフォルトの名無しさん:2005/06/13(月) 10:10:20
質問です。

VC++6.0を使用していてコンパイルした際に警告レベル3だと
警告して欲しい内容が結構警告してもらえず、警告レベル4だと
警告が出過ぎて困ります。

警告レベルを3にして自分で出したい警告を#pragmaで設定しようと
思うのですが、下記のもの以外で何か「これはだしとけ」みたいな
警告はないでしょうか?
(こういうことするときはだしとけみたいなのでもOKです。)

下記が現在警告レベル3で追加している警告です。
#pragma warning( 3 : 4100 ) // 未参照の引数あり時に警告
#pragma warning( 3 : 4127 ) // 条件式が定数の場合に警告
#pragma warning( 3 : 4142 ) // 型の再定義あり時に警告
#pragma warning( 3 : 4189 ) // 未参照(初期化あり)の変数あり時に警告
527524:2005/06/13(月) 10:12:33
同じ内容のレスしてたorz
528デフォルトの名無しさん:2005/06/13(月) 10:20:46
>>526
逆。警告レベル4にして、必要のない警告を外すべき。
529デフォルトの名無しさん:2005/06/13(月) 10:41:15
クラスビューからソースに関数や変数ドラッグしたら貼れるなんて
なんで教えてくれなかったの?><
530526:2005/06/13(月) 11:06:55
>>528
なるほど。そちらの方が欲しい警告があった場合に漏れないですね。
531デフォルトの名無しさん:2005/06/13(月) 13:15:02
CString ss;
char szA[MAX_DIR];
ssに入っている文字列をszAに入れるにはどうしたらよかですか?
532デフォルトの名無しさん:2005/06/13(月) 13:33:15
strcpy
533デフォルトの名無しさん:2005/06/13(月) 13:43:49
ありがとうです
534デフォルトの名無しさん:2005/06/13(月) 17:28:25
いまからVC++を中古か新品で買おうかとおもってるんですが
バージョンはどれがおすすめですか?
5.0?6.0?.NET?
535デフォルトの名無しさん:2005/06/13(月) 17:54:12
>>534
何をしたいんだ?情報少なすぎ。
Windows 95でも動くアプリを作りたいとかか?
536デフォルトの名無しさん:2005/06/13(月) 18:08:06
簡単な関数を作ってつかおうとしているのですが、
error LNK2001: 外部シンボル ""protected: int __thiscall CSatoshiDlg::dangerous(int)" (?dangerous@CSatoshiDlg@@IAEHH@Z)" は未解決です
Debug/satoshi.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

とでてしまいビルドできません。何が原因なのでしょうか?
537デフォルトの名無しさん:2005/06/13(月) 18:13:10
マルチポストすんなや
538デフォルトの名無しさん:2005/06/13(月) 19:59:53
CSatoshiDlg::dangerous(int)が無い
539デフォルトの名無しさん:2005/06/13(月) 20:17:13
>>536ブロードキャストすなや
540デフォルトの名無しさん:2005/06/14(火) 02:25:40
>何が原因なのでしょうか?

エラーメッセージの通りですがw
541デフォルトの名無しさん:2005/06/14(火) 05:36:35
オープンソースのPSエミュをVCのステップインで実行させるべくVC6で
ビルドしたいのですが、どうにも巧く行きません。どなたかご助力を・・・。
http://www.pcsx.net/downloads/PcsxSrc-1.5.tgz

◎やったこと
http://members.at.infoseek.co.jp/shirouto_yokota/pcsx.htmを読みzlibを入手
・C:\Program Files\Microsoft Visual Studio\VC98\Include にzlib.hとzconf.hをストア
・C:\Program Files\Microsoft Visual Studio\VC98\Lib にzlib.libをストア
・ソースのWin32ディレクトリにあるlibintl.hを\VC98\Include、gnu_gettext.libを\VC98\Libに
・ソースのWin32ディレクトリの中にあるワークスペースを開く
・ビルド → 構文エラー出まくり

どうかよろしくお願いします。
542デフォルトの名無しさん:2005/06/14(火) 06:13:49
どういう構文エラーか
543デフォルトの名無しさん:2005/06/14(火) 18:18:07
質問です。

uuid.libをリンクすることになったところ、DEBUGモードで以下のリンクエラーが出るようになりました。
uuid.lib(ocidl_i.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください

Googleで調べまわったところ「設定」「リンクタブ」「一般」「Debug情報を生成する」のチェックをはずせば回避できることを発見しました。
ですがこのままですとブレークポイントを使ったデバッグが一切できなくなってしまいます。
これを回避する方法はありませんでしょうか?

環境は Visual C++ 6.0 です。
.NETならば問題がないというような情報も見かけたのですが、何分気軽に買える身分ではないものでして…。
544デフォルトの名無しさん:2005/06/14(火) 21:58:28
ダイアログモジュールのプログラムを作ろうとしてます

新規作成でMFCAppWizard→ダイアログでワークスペースを作って、
最初のボタン2つを消してエディットボックスを2つ作りました

ここで、それぞれのエディットボックスに文字を入れて
エンターを押すとそれぞれの処理が始まるようにしたいのですが、
実際にエンターを押すとアプリケーションが終了します

ClassWizardのエディットボックスの項目を見ても
エンターを押したときに呼ばれる項目がないのですが、
エンターを押すとどれが呼び出されるんでしょうか?

デフォルトのボタンが呼ばれるらしいのですが、すでに消してますし…
ボタンが呼ばれるとしたら、どちらのエディットボックスから
エンターが押されたのかわからないです…
545デフォルトの名無しさん:2005/06/14(火) 22:03:43
そこでspy++ですよ
546デフォルトの名無しさん:2005/06/14(火) 22:07:44
>>544
OnOKをオーバーライドして
Cxxx::OnOK()をコメントアウト
547デフォルトの名無しさん:2005/06/14(火) 23:17:44
mdbファイルにDAO3.6を非MFCで
接続する方法を教えてください。
548デフォルトの名無しさん:2005/06/14(火) 23:39:14
CComBSTR A,B;
で、AとBに含まれる文字列の中身を比較したいんですが、
wcscmp(A,B)で良いのでしょうか?
549デフォルトの名無しさん:2005/06/14(火) 23:42:59
>>548
それでもいいけどCComBSTRにはoperator ==()があるよ。
550548:2005/06/15(水) 00:44:43
ありがとうございます。しかし、CComBSTRの==は、どうもオブジェクト同士の
比較をしているように見えたので、文字列実体の比較はどうするのかと
考えていました。

551デフォルトの名無しさん:2005/06/15(水) 14:18:41
include <vector>したら、
\vc98\include\utility(81) : error C2146: 構文エラー : ';' が、識別子 'iterator_category' の前に必要です。
というエラーになります。
他のプロジェクトでは普通にincludeできるのですが、一体どうやって回避したらいいんでしょうか?
552デフォルトの名無しさん:2005/06/15(水) 14:27:22
>>551
プリコンパイルヘッダを使っているなら、一度リビルド。

それでもだめなら、該当行周辺で使われているキーワードが
includeディレクティブ以前にマクロ定義orグローバル宣言されていないか確認せよ。
#まぁ、インクルードの順番変えればすみそうだが。
553デフォルトの名無しさん:2005/06/15(水) 14:58:46
>>552
リビルドだめでした。
マクロもほとんど定義してないため確認しました。重複してないです。
インクルードの順番はvectorを一番最後にしてます。
いろいろ入れ替えましたが駄目でした。
fill_nが使いたかったんですがあきらめます。
554デフォルトの名無しさん:2005/06/15(水) 16:25:12
>>553
んじゃ、vectorのインクルードを極力初めのほうにして、エラーがおきた実体化のあたりのソースを晒せ。
555デフォルトの名無しさん:2005/06/15(水) 16:31:04
質問です。

WinXPでVC++.NETでC++の勉強を始めた者です。
初っ端から詰まっていて、何が原因か分かりません。

#include <iostream>
int main(){
cout << "Hello World" << endl;
return 0;
}

でビルドすると、coutとendlを参照できませんって言われます。
どうかよろしくお願いします。
556デフォルトの名無しさん:2005/06/15(水) 16:36:51
>>555
std::cout, std::endl
557デフォルトの名無しさん:2005/06/15(水) 17:08:28
>>554
\vc98\include\utility(81行目)

typedef _It::iterator_category iterator_category;

ここで先出のエラーが起きてます。

iterator_category が定義されてないからでしょうか。
68行目で
typedef _C iterator_category;
と定義されてるんですけど。
558デフォルトの名無しさん:2005/06/15(水) 17:24:11
>>557
エラー行じゃなくて、実体化している辺りと書いたのだが。
つまり、あんたのプログラムの方ね。
559デフォルトの名無しさん:2005/06/15(水) 19:00:42
CPU 200Mヘルツ程のPCに.Net入れたけど、重たくて使えません。
遅いPC使ってて、VC6スムース(快適)に使えるって方いらしたら教えて欲しいです。
Visual C++ 6.0 の推奨環境に関するページが見つからない...。
ちなみに、私は.Netから使い始めた者です。
560デフォルトの名無しさん:2005/06/15(水) 19:05:41
>>559
無茶。IDEは半ば諦めてコンパイルだけするなら兎も角、インテリセンスがまったく使い物にならないと思われ。
561デフォルトの名無しさん:2005/06/15(水) 19:40:59
>>555

namespace std;

を3行目に入れてみ?
562デフォルトの名無しさん:2005/06/15(水) 19:41:32
え?usingはどこ?
563デフォルトの名無しさん:2005/06/15(水) 19:47:52
つーか、3行目かよ。
564デフォルトの名無しさん:2005/06/15(水) 19:54:54
1: #include <iostream>
2:
3: using namespace std;
4: 
5: int main(){
6:   cout << "Hello World" << endl;
7:   return 0;
8: }
565デフォルトの名無しさん:2005/06/15(水) 19:57:22
>564必死だな。
566デフォルトの名無しさん:2005/06/15(水) 19:59:29
そうか?
567デフォルトの名無しさん:2005/06/15(水) 20:00:17
>>565
必死だよ。何かお気に召さないことでも?
568デフォルトの名無しさん:2005/06/15(水) 20:00:57
いやぁ、微笑ましいなぁと。
569555:2005/06/15(水) 20:43:42
色々とありがとうございます。

Cを3年間やってて、C++に移行している真っ最中です。
今アクセス制御の辺りを勉強していたのですが、
このあたりでそろそろ組んでみるか…と思ったら見当違いの所でエラー。。
かなり焦ったのですがありがとうございました。

VC++.NET特有の仕様なんでしょうか?>std
570デフォルトの名無しさん:2005/06/15(水) 20:48:31
>555
参考文献が古いだけ。
571デフォルトの名無しさん:2005/06/15(水) 21:17:30
>>569
stdはISO/ANSIの標準C++の仕様。
他人同士での名前の重複を避けるための名前空間という仕組みがあって、
C++標準ライブラリはstdという名前空間に収めることになっている。
Cの<****.h>というヘッダもC++では代わりにstd名前空間に収められたものが<c****>というヘッダで提供されている。
572569:2005/06/15(水) 21:58:06
>>570>>571
そうなんですか。納得です。
一応、6年前に出版された本を使っているんですが。。

とりあえずは、using namespace std;のコマンドを使っていればOKということですよね。
だいたいC++が分かったら、VC++.NETで色々とプログラムを組む予定なのですが、
その時に新しいVC++.NET用の参考書を買えば何とかなりますでしょうか?
573デフォルトの名無しさん:2005/06/15(水) 22:55:01
>>560
インテリセンスは全く問題なかったり...。
その他諸々コンパイルとか、レスポンス遅すぎます。
VC6.0ならCPU200MHzでも軽く使えるんでしょうか。
574デフォルトの名無しさん:2005/06/15(水) 22:56:20
>>559
CPU200MHzで.Netは無理だろ。
VC6なら動く(K6-233&128MB程度のマシンで普通に使ってた)

サイトは分からないので手元のVC6発売時のパンフレットより抜粋
・本体 PentiumCPUを搭載したPC(Pen90MHz以上推奨)
・メモリ 使用可能メモリ32MB以上(64MB以上推奨)
・その他 解像度800*600以上必須(1024*768推奨)

↑のようになってるがPen90-32MBではさすがにキツイ
575デフォルトの名無しさん:2005/06/16(木) 01:04:37
Visual Studio.NETでコンパイルして作ったexeを
他のパソコンで動かそうとすると動きません。
.NET frameworkをインストールすると動くようになったのですが、
そのままで動かないと都合が悪いのです。
どこか設定すれば動くようになるのでしょうか?
よろしくお願いします。
576デフォルトの名無しさん:2005/06/16(木) 01:42:37
>>555
>556もよろしく。
577555=569:2005/06/16(木) 02:02:57
あっと、すいません。
あまりにも近すぎて忘れてました(汗)>>556
名前空間の指定も色々あるんですね。名前空間でぐぐってみます。
578デフォルトの名無しさん:2005/06/16(木) 07:47:29
>>575
MFCも.NET Frameworkも使わずに作成すればよい。
579デフォルトの名無しさん:2005/06/16(木) 16:16:43
まぁ、VC6はWin98時代の物だから要求するマシンパワーも低い罠
580575:2005/06/16(木) 22:38:01
>>578
ビルドの設定のあたりをいじればいいのでしょうか?
とりあえず、main.cが1つあるだけでそれがexeになればいいのですが・・・。
581デフォルトの名無しさん:2005/06/16(木) 22:43:46
>>580
プロジェクトのプロパティのマネージ拡張をいいえにする。
新しくプロジェクトを作るときにはWin32 コンソール プロジェクト/Win32 プロジェクトを選ぶ。
582デフォルトの名無しさん:2005/06/16(木) 23:22:39
>>580
あとプロジェクトのプロパティ「C/C++」の「コード生成」にある「ランタイムライブラリ」
を「シングルスレッド /ML」にする。これで必要最小限のものがスタティックリンクとなる。
583デフォルトの名無しさん:2005/06/17(金) 03:43:29
一つのソリューションにA、Bの二つのプロジェクトを入れて作っているのですがAのソースからBのヘッダをインクルードできません
依存関係を設定してみたのですが駄目みたいです
どのような設定をすればいいのかどなたか教えていただけませんでしょうか
584デフォルトの名無しさん:2005/06/17(金) 06:02:33
win32アプリを作ってるんですが、156KBよりも小さいプログラムって作れないのですか?
ウィンドウを表示するだけのプログラムでも156KBになってしまうんですが・・・
585デフォルトの名無しさん:2005/06/17(金) 06:09:21
win32アプリを作ってるんですが、156KBよりも小さいプログラムって作れないのですか?
ウィンドウを表示するだけのプログラムでも156KBになってしまうんですが・・・
586デフォルトの名無しさん:2005/06/17(金) 06:41:36
MFCを使わずメッセージボックスを表示するだけなら1KBでもできますが。

とりあえず、リリースビルドにして、MFCを使っているのなら
ダイナミックリンクにすればサイズは減るのでは。
587デフォルトの名無しさん:2005/06/17(金) 06:42:44
Debugでビルドしてるとみた。
588デフォルトの名無しさん:2005/06/17(金) 11:48:07
指定したディレクトリにファイルを書き込みたいのですが、
どうしたらいいでしょうか?
589デフォルトの名無しさん:2005/06/17(金) 12:22:26
>>588
CString path;
path.Format("%s/%s", 指定したディレクトリ, ファイル名);
fp = fopen(path, "w");fprintf(fp, 書きたい内容); fclose(fp):
590デフォルトの名無しさん:2005/06/17(金) 13:06:41
>599
ありがとう
591デフォルトの名無しさん:2005/06/17(金) 13:15:10
おっと、未来へのパスか。>599は責任重大だな。
592デフォルトの名無しさん:2005/06/17(金) 15:25:11
こんにちは

Win32アプリケーションとして作成したプロジェクトで、MFCを使いたい場合は、どのようにすればいいのでしょうか?

教えていただけると助かります。
よろしくお願いいたします。
593デフォルトの名無しさん:2005/06/17(金) 17:27:17
プロジェクトを作り直して下さい。
594デフォルトの名無しさん:2005/06/17(金) 18:07:32
Windowsフォームアプリケーションで新しいフォームの
呼び出し方と
ドラッグアンドドロップがわかりません。
だれか教えて><
595デフォルトの名無しさん:2005/06/17(金) 18:21:19
質問の意味が分かりません。
596デフォルトの名無しさん:2005/06/17(金) 18:42:47
>>594
とりあえず、半年ほどロムればいいと思うよ。
597デフォルトの名無しさん:2005/06/17(金) 19:12:45
MFCで書いているのですが、新しいクラスを新しいファイル
てつくるにはどうしたらいいですか?
598デフォルトの名無しさん:2005/06/17(金) 19:14:41
>>588
CreateFileとかにファイル名を渡す時にディレクトリ名も含めて
指定すれば良い
599デフォルトの名無しさん:2005/06/17(金) 19:17:23
597ですが、作りたいクラスは
int add(int x,int y)
{
x=x+y;
return x;
}
ができればいいだけです。

600デフォルトの名無しさん:2005/06/17(金) 19:21:56
それはクラスにする必要がないと思う
601デフォルトの名無しさん:2005/06/17(金) 19:24:44
>>590
残念、>599は回答者ではなかった。

>>599
挿入メニュー→クラスの新規作成
Genericクラスを選んで適当なクラス名を入れてOKボタンでクラスの側が書かれたソースファイルができる。
602どうしてもと言うのなら:2005/06/17(金) 19:27:17
.NETの場合はプロジェクト->新しい項目の追加でC++のソースとか
ヘッダファイルを追加し、そこに書く。
6.0の場合はクラスウィザードで新規クラスを作成で、genericを
選んで書く。かな?
603デフォルトの名無しさん:2005/06/17(金) 19:29:21
ありがとうございます。
やってみます。
604デフォルトの名無しさん:2005/06/17(金) 19:37:40
>601
Generic クラスというのはgeneric CWndでいいのでしょうか?
605デフォルトの名無しさん:2005/06/17(金) 19:40:50
>601
>602
ありがとう。わかりました!
606デフォルトの名無しさん:2005/06/17(金) 20:49:02
class CABCDlg : public CDialog
{
// 構築
public:
 CABCDlg(CWnd* pParent = NULL);// 標準のコンストラクタ

上の意味はABCダイアログの初期化と考えていいんでしょうか?

607デフォルトの名無しさん:2005/06/17(金) 22:36:32
ビルドとリビルドの違いはなんですか?
608デフォルトの名無しさん:2005/06/17(金) 22:46:06
リビルドはあれだ、make clean && make みたいなもんだ
コンパイルした結果生成されたオブジェクトファイルをすべて削除して
全てのソースを再コンパイル→リンクする
609607:2005/06/17(金) 23:00:39
>608
なるほど。ということはビルドは、必要なところ(変更があったソースかな?)だけコンパイル→リンクするんですね。
610デフォルトの名無しさん:2005/06/17(金) 23:09:23
>>609
そう。一般的に
オブジェクトファイルのタイムスタンプとソースのタイムスタンプを比べて、
ソースのタイムスタンプの方が新しい場合コンパイルを行う
という動作だと思う
611デフォルトの名無しさん:2005/06/18(土) 00:21:09
時々リビルドしないとうまく変更を反映してくれないことがある。
612デフォルトの名無しさん:2005/06/18(土) 00:25:49
http://pcweb.mycom.co.jp/special/2005/compiler/005.html
FullOptってどうやるんですか?
DebugとReleaseしか無いのですが・・・
613607:2005/06/18(土) 00:34:40
>610
分かりやすい説明ありがとうございます。

>611
そうなんですか。まだ、Hello World レベルなので、変更が反映されないということはありませんが、ファイルが増えたり、依存関係やらが複雑になってくるとビルドでは問題が出てきそう?ですね。
614デフォルトの名無しさん:2005/06/18(土) 01:04:12
反映されないのは resource.h を手動でいじくったとき。
番号がとびとびになると気持ち悪い人は手動でいじくる。
615575:2005/06/18(土) 01:21:15
>>581,>>582
うまくいきました。ありがとうございます。
616デフォルトの名無しさん:2005/06/18(土) 03:54:27
カスタム設定にしたものをそう呼んでいるだけだよ。
そのFullOptって、最適化のオプションの組み合わせ方間違っているよw
617デフォルトの名無しさん:2005/06/18(土) 09:24:07
>>614
resource.hの修正が反映されないのはどのバージョン?
VC6でもVC7.1でもエディタで保存した瞬間に反応しているけど。

それはそうと、ID番号のつけかえだけならIDE内でやればいいのに。
618デフォルトの名無しさん:2005/06/18(土) 10:27:12
>>617
VC6もVC7.1も。
resource.h に //{{NO_DEPENDENCIES}}
が書かれてるので他のソースから依存されない。
つまり、resource.hに書かれているIDを使ってるソースはすべてコンパイルし直す必要があるのに、
ビルドしただけでは反映されないのでリビルドする必要がある。
resource.hはほとんどのソースからincludeされるものだから、
ビルド時間を短縮するのに NO_DEPENDENCIES は必要な機能なのだろう。
619デフォルトの名無しさん:2005/06/18(土) 10:48:03
どなたかリソース関連スクリプトに詳しいサイト教えてください。
620デフォルトの名無しさん:2005/06/18(土) 10:51:02
>>619 まずは、IDEが吐き出したrcファイルを眺めるところから始めたらどうだい?
621デフォルトの名無しさん:2005/06/18(土) 14:33:45
これからWindowsアプリケーションを勉強しながら作ろうと思うのですが、これからやるならMFCは使った方が良いですか?それともSDK一本槍がよいですか?もし、作るアプリによるというのであれば、分けてお願いします(ゲームなら使う、使わないなど)。
あと、実際の仕事の現場でVCを使って開発するときに、MFCは使われることが多いのでしょうか。
622デフォルトの名無しさん:2005/06/18(土) 14:53:51
ゲームではあんまりMFCは使わない。余計な機能が多いし

仕事の現場ではMFCは結構使うかな
623デフォルトの名無しさん:2005/06/18(土) 15:00:07
MFCを使って工数を減らしたいとか他の人と共同開発したいとかある。

MFCを使わないのなら、ちゃんと自作クラスを作ってオブジェクト指向しないと
他人からも未来の自分からも読みにくいプログラムになってしまう。
624デフォルトの名無しさん:2005/06/18(土) 15:03:16
そこでwindowのラッパクラスを作ろうとして
ウィンドウプロシージャをうまくラップできずに挫折ですよ
625デフォルトの名無しさん:2005/06/18(土) 15:28:41
WTLの出番ですよ
626デフォルトの名無しさん:2005/06/18(土) 16:06:19
質問なんですが、Visual C++ .NET 2003シリーズで作ったプログラムを売って儲けたりしていいんですか?
Professional版ならできて当然だと思いますが、
Standard版やアカデミック版だとどうでしょうか。
自分はStandard版のアカデミック版を買おうかと思っているのですが、
同人ゲームを作って勝手に売ったりしていいのでしょうか?
627デフォルトの名無しさん:2005/06/18(土) 16:59:41
でもWTLやるひとってばMFCも理解できる人たちだろ?
628デフォルトの名無しさん:2005/06/18(土) 17:05:42
俺WTLを使っているけどMFCは使ったことないし使うつもりもない。
629デフォルトの名無しさん:2005/06/18(土) 17:19:22
MFCやWTLを使わないと、自前で作らなきゃいけない部分が増えるはずだが、
自前で作る必要があるものには例えばどんなものがあるか説明できる?
630デフォルトの名無しさん:2005/06/18(土) 17:40:30
ウィンドウクラス
631デフォルトの名無しさん:2005/06/18(土) 19:02:49
COM使う場合はMFCのサポートが無いとちょっと辛いな。
632デフォルトの名無しさん:2005/06/18(土) 19:52:16
Platform SDKってリンク切れてるけど手にいれる方法ってありますか?
633デフォルトの名無しさん:2005/06/18(土) 20:10:05
ある
634デフォルトの名無しさん:2005/06/18(土) 20:10:23
ある。
635デフォルトの名無しさん:2005/06/18(土) 20:22:39
探検隊
636デフォルトの名無しさん:2005/06/18(土) 20:26:23
>>633-664
お願いします
637デフォルトの名無しさん:2005/06/18(土) 20:42:01
断る
638デフォルトの名無しさん:2005/06/18(土) 20:43:53
>>623
そらおまえの書いたソースが汚い&コメント書いてないだけだろ
クラス使わんでもちゃんと書けば読めるわ
639デフォルトの名無しさん:2005/06/18(土) 20:52:46
>>637
お願いします
640デフォルトの名無しさん :2005/06/18(土) 21:29:50
MFCで作成していて、他のファイルをコピーした場合に、
ときどきコードアシスト出来なくなる(メンバに出て来なくなる)
のだが何か悪いのだろうか?

一応ビルドは正常に通るのだが、メンバに出てこんと気になる。
リソースIDも他のファイルからコピーしたのだが、それが原因?

どっかでコントロールに対して振り分けるIDが決まっているのを
みたことがあるような。

641デフォルトの名無しさん:2005/06/18(土) 21:48:32
データベースファイルを再生成すればいいんじゃね?
642デフォルトの名無しさん:2005/06/18(土) 23:45:18
VC6.0から.NET2002にプロジェクト変換したら、
リンクエラーとかが出まくり。LINK2005とか。
VC6.0では出なかったのになんでなんでしょう?
SP1も当てたけどだめ。
これじゃ、6.0のままのほうが良いわ...orz
643デフォルトの名無しさん:2005/06/18(土) 23:49:05
リンクエラーの意味もわからんのならVC6.0使ってればいいじゃない
644デフォルトの名無しさん:2005/06/18(土) 23:57:19
>>642
2002年のコンパイラを2005年に使うからだ。
パソコンの日付を2002年に直してからやれよ。
645デフォルトの名無しさん:2005/06/19(日) 00:06:00
ここって冷たいスレですね。
初心者をイビルスレだったとは...orz
646デフォルトの名無しさん:2005/06/19(日) 00:07:22
そういえば、浴びる優がテレビに出てたけど、
随分とおとなしかったな。さすがに馬鹿騒ぎは出来ないか。
647デフォルトの名無しさん:2005/06/19(日) 00:12:18
>>644
ダメでした。ファイルのタイムスタンプとの関係がおかしくなるので、
すべてリビルドもしましたが結果は変わりません。
2002年でも月によって違うとかあるのですか?
648デフォルトの名無しさん:2005/06/19(日) 00:24:51
不思議なのは、同じMSのコンパイラのバージョンアップぐらいで、
容易に致命的エラーが出てしまうことだな。
MSは知っているんだから、前もってエラーが出ないように対策するべき。
649デフォルトの名無しさん:2005/06/19(日) 00:30:25
>>642
出たリンクエラーを貼って味噌。
650デフォルトの名無しさん:2005/06/19(日) 01:15:56
>>649
ちょっと長いので一部だけ掲載します。
レスも分割させてください。とにかく1つが長い警告文で目が眩みそうです。
TestLib.libはプライベートのスタティックライブラリです。
TestMainはTestLib.libをリンクしているメインプログラム(exe)です。

TestLib.lib(TestLib.obj) : error LNK2005: "public:__thiscall std::basic_string<char,structstd::char_traits<char>,
class std::allocator<char>>::~basic_string<char,struct std::char_traits<char>,
classstd::allocator<char> >(void)"(??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ)
は既に msvcprt.lib(MSVCP70.dll) で定義されています。
  :
 この間にいっぱい
  :
libcp.lib(string.obj) : error LNK2005: "public: __thiscallstd::basic_string<char,struct std::char_traits<char>,
classstd::allocator<char> >::basic_string<char,structstd::char_traits<char>,
class std::allocator<char> >(charconst *)"(??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z)
は既に msvcprt.lib(MSVCP70.dll) で定義されています。

ちなみにTestLib.libにSTLを使うとこの警告は出るようです。
簡単なテストプログラムで確認しました。
651650の続き:2005/06/19(日) 01:17:02
で、これらのエラーに対して、
/NODEFAULTLIB:"libc.lib" /NODEFAULTLIB:"msvcprt.lib
をオプション指定すると、

TestMain.obj : warning LNK4217: ローカルで定義されたシンボル??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z
(public: __thiscall std::basic_string<char,structstd::char_traits<char>,
class std::allocator<char>>::basic_string<char,struct std::char_traits<char>,
classstd::allocator<char> >(class std::basic_string<char,structstd::char_traits<char>,
class std::allocator<char> > const&)) がフィクション "public: __thiscallstd::logic_error::logic_error(classstd::basic_string<char,
struct std::char_traits<char>,classstd::allocator<char> > const &)"
(??0logic_error@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@@Z)にインポートされました。
  :
 この間にいっぱい
  :
TestMain.obj : warning LNK4217: ローカルで定義されたシンボル??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z
(public: __thiscall std::basic_string<char,structstd::char_traits<char>,class std::allocator<char>>::basic_string<char,
struct std::char_traits<char>,classstd::allocator<char> >(char const *)) がフィクション "protected: void __thiscallstd::vector<int,
class std::allocator<int>>::_Xlen(void)const "(?_Xlen@?$vector@HV?$allocator@H@std@@@std@@IBEXXZ) にインポートされました。

という警告に変わります。この警告達に対しては、
"__declspec 修飾子を削除して、この警告を解決してください。"
とヘルプにはあるのですが、そんな記述はプライベートライブラリには無いので
どうしたら良いか困っています。
一応TestMain.exeは生成され実行もできますが、やはり気分はよくないです。
長文にて申しわけございませんでした。
652デフォルトの名無しさん:2005/06/19(日) 01:33:58
リンクするライブラリを間違ってる…?

構成プロパティ -> C/C++ -> コード生成 -> ランタイムライブラリ

を変更してみるとか。
653デフォルトの名無しさん:2005/06/19(日) 01:40:32
TestLib.lib を.NET2002でリビルドしてみる。
654デフォルトの名無しさん:2005/06/19(日) 01:51:17
プロジェクトを2002で作りなおして、ソースコードを移し替えるのがイイかも
655650:2005/06/19(日) 02:35:34
>>652
C:\MSVSN\Vc7\atlmfc\include\afxver_.h(139) : fatal error
C1189: #error : Please use the /MD switch for _AFXDLL
builds
って出ちゃいますです。マルチスレッド以外は受け付けないみたい。。。
>>653-654
それもやってみたのですが結果は同じでした。
ソースコードを移し変えるのも、新規で作ってもエラーは出てしまいます。
むしろ、TestLib.libはVC++6.0でコンパイルしたままのほうではエラーが出ず、
.NET2002でコンパイルするとエラーが出てしまったという???な状況です。
とりあえず今夜はここまでにしたいと思います。
原因がわからなければ、このまま警告が出たままで使うしかないか。
一応動くので。気分が晴れませんよね。。。
これが趣味のプログラムなら放っとくんですけど(^^;
656デフォルトの名無しさん:2005/06/19(日) 04:00:16
ぉぃぉぃ。
業務プログラムで警告出たままほっておくのかよ。
CMMも糞もへったくれもないな。
657デフォルトの名無しさん:2005/06/19(日) 04:04:34

だからこうして悩んでるんで無いのか?
品の無いつまらん煽りや荒しはやめろよ。
どうせコンパイルの仕方も解決法もわからん厨房なんだろうけど。
658デフォルトの名無しさん:2005/06/19(日) 04:05:44
>>656はこの時間になると活発になるニートなので許してやってください。
659656:2005/06/19(日) 04:23:44
煽りのつもりはなかったけどそう感じたんならすまん。
ただ業務用のプログラムで

>原因がわからなければ、このまま警告が出たままで使うしかないか。
>一応動くので。気分が晴れませんよね。。。

これはありえないと思っただけ。
660デフォルトの名無しさん:2005/06/19(日) 04:38:10
ただの愚痴だろうに、関係ないところで突っ込めば単なる叩き。
ましてや解決法もわからないのなら静観するのがマナーだな。
661デフォルトの名無しさん:2005/06/19(日) 04:40:45
>>659
初心者に対して会社でもそんな風に後輩たちをなじってるの?
ここのスレタイ、よく見てみなって。

>CMMも糞もへったくれもないな。
ここがあなたの深層心理をついていると思うがな。
662デフォルトの名無しさん:2005/06/19(日) 04:42:21
また、アフォが湧いてきたな。
ここは初心者をとっ捕まえて叩くスレですか?
663デフォルトの名無しさん:2005/06/19(日) 04:44:55
>>661
品のない煽りやめたほうがいいよ。

業務プログラムで原因不明の警告出っ放しがまずいってのは>>659のいうとおりだし
また、初心者だからこそ(業務についてる人ならなおさら)↑は教えておくべき。
以上すれ違いなのでここでやめておく
664デフォルトの名無しさん:2005/06/19(日) 04:46:08
>>661-662のほうが品のない煽りをしているところがワロス。
665デフォルトの名無しさん:2005/06/19(日) 04:49:28
技術も知識も無い香具師ほど、業務だ糞だって言うのはわかったよ。
666デフォルトの名無しさん:2005/06/19(日) 04:50:14
………………………… き り と り せ ん …………………………
667デフォルトの名無しさん:2005/06/19(日) 04:53:21
このスレでは人を糞と呼んでもいいことになりました。。。
668デフォルトの名無しさん:2005/06/19(日) 04:54:53
まだ粘着してるのがいるのか
669デフォルトの名無しさん:2005/06/19(日) 05:03:50
なんだ?何もめてんだ?
そんな簡単なこと答えてやれよ。
>>668はわかるのか?
オレはだいたい察しがつく。初心者によくある設定ミスだ。
まあ、ちょっと様子見しよう。
偉そうにしてるヤシらの口だけじゃないってところを見せてもらおうかな。
670デフォルトの名無しさん:2005/06/19(日) 05:06:26
オレもだいたい察しがつく。初心者によくある設定ミスだ。
まあ、ちょっと様子見しよう。
偉そうにしてる>>669の口だけじゃないってところを見せてもらおうかな。
671669:2005/06/19(日) 05:07:49
設定ミスというより、気がついてない、って言ったほうが正しいかも。
つまりデフォの設定じゃダメってことだ。
意外と殆どが知らずにwarning出しても見逃してるかもだな。
672デフォルトの名無しさん:2005/06/19(日) 05:09:20
>>670
あの、、、わからないんでしょ。素直じゃないな。。。
いくら煽ってもあなたには教えないからね。
673デフォルトの名無しさん:2005/06/19(日) 05:13:56
>>659が謝って終わったところにまた煽るやつらが出るからこうなる。
ほんと人が下手に出ると調子に乗るやつ多いな。
で、その煽りをスルーできないやつも馬鹿。
みんなしんじゃえ。
674デフォルトの名無しさん:2005/06/19(日) 05:16:36
あのここで聞いてよろしかったかわからないのですが
日本語化パッチなどはどのようなソフトを使って作れるのでしょうか?どなたか教えて下さい
675デフォルトの名無しさん:2005/06/19(日) 05:19:22
下手に出てる初心者を糞扱いするのはいいんですかね?
それこそ飽くの根源では?
676デフォルトの名無しさん:2005/06/19(日) 05:20:09
>>674
一般的な開発系のソフトなら作れる。
って言うかすれ違い
677デフォルトの名無しさん:2005/06/19(日) 05:20:56
>>673
でしたら、貴公が的確なアドバイスをしてあげれば、
この場はまあるく納まるような気もするのですが。
678デフォルトの名無しさん:2005/06/19(日) 05:22:32
ここはベテランがスカーッと名解答を出してやれ。
そうすれば、カスどもは黙るだろ。
679デフォルトの名無しさん:2005/06/19(日) 05:23:50
そうそう。何も出来ないくせに初心者相手に叩いて喜んでるようじゃ、
人間いつまで経っても大きくなれんぞい。
680デフォルトの名無しさん:2005/06/19(日) 05:27:24
もういい加減に粘着するなよ。
>>671が回答して終わってるんだから。
681デフォルトの名無しさん:2005/06/19(日) 14:15:24
>>640 さん、>>641 さん、

わたし VS2003 使ってるんですけど、
Alt + F8 のマクロエクスプローラ使った後にも
ときどき、コードアシストが効かなくなりますよね。

>>641 さんが対処法として書き込んでいらっしゃる
「データベースファイルを再生成」するには、どうすればいいのでしょうか?
プロジェクトを作ったら自動生成される *.ncb というのが、そうなのですか?
682デフォルトの名無しさん:2005/06/19(日) 14:16:44
すいません age てしまいました....
683650:2005/06/19(日) 16:15:38
すみません。私がつまらない質問をしたばかりに、
ちょっと荒れてしまったようですね。
先週末からずっとはまってて、深夜も遅くなって
ちょっと投げ遣りになってたのは事実かもしれません。
原因不明のエラーというのはお客さんにも説明つきませんし、
解決するべきだと思います。今のところ進展はしていませんが、
何か良いアドバイスがあれば、ご迷惑だとは思いますが
よろしくお願いいたします。
684デフォルトの名無しさん:2005/06/19(日) 16:49:17
仕事でカネもらってるんなら自分で解決しろよ。お前さんのためだ。
685デフォルトの名無しさん:2005/06/19(日) 16:53:07
>>684
このスレの存在を否定するヤシは出て行け!!
686デフォルトの名無しさん:2005/06/19(日) 16:53:50
死人に鞭打つような人間がまだいたのか、このスレには。
687デフォルトの名無しさん:2005/06/19(日) 16:55:57
>>684のように、人のことをすぐに糞呼ばわりするヘタレに、
人間の心の痛みがわかるわけもない。かわいそうな人だね。同情する。
688デフォルトの名無しさん:2005/06/19(日) 16:59:25
要は技術的にも未熟で、殆どアドバイスらしいアドバイスもできないから、
弱いものを見つけては叩くことしかやらないって人種だろ。
黙ってりゃ良いものを、いちいち叩くレスをつけるのがその醜い心のあらわれだ。
常に弱いものしか叩けないから、スレタイに「初心者」とついてるレスに
常駐する性質の悪い荒しだね。
689デフォルトの名無しさん:2005/06/19(日) 17:03:53
>>684
解決できるよう努力もしている。
と同時に、このスレでも質問している。
そういう人が目の前にいたときも、
直接その人の目を見て言えるかね、そんなこと。
例えば会社の後輩や新人があなたを頼って質問してきたとき、
「給料もらってるんだから人に聞くな。自分で解決しろ。」といえるのか?
せめて方向性だけでも導いてやるべきじゃないのか?
まあ、あなたにそれだけの度量と技術と知識があればの話なんだがね。
690デフォルトの名無しさん:2005/06/19(日) 17:38:09
285>>
691デフォルトの名無しさん:2005/06/19(日) 17:48:43
まぁここは初心者スレなんで寛大に
692デフォルトの名無しさん:2005/06/19(日) 18:02:05
> MFC ライブラリを使用する場合は、必ず CRT ライブラリの前にリンクする必要があります。
コレとか
693デフォルトの名無しさん:2005/06/19(日) 19:02:23
>>686
>>650は死人なの?
694デフォルトの名無しさん:2005/06/19(日) 19:47:30
Visual Studio .Net 2003を使っているのですが、
たったこれだけのコードをビルドしようとしてもこんなリンクエラーになってしまいます。
error LNK2019: 未解決の外部シンボル "public: void __thiscall std::_String_base::_Xran(void)const " (略) で参照されました。
error LNK2019: 未解決の外部シンボル "public: void __thiscall std::_String_base::_Xlen(void)const " (略) で参照されました。

#include <iostream>
#include <string>

int main()
{
std::locale::global(std::locale("japanese"));
std::wstring ws = L"hello, world";
std::wcout << ws << std::endl;
return 0;
}
なんででしょうか?
695デフォルトの名無しさん:2005/06/19(日) 20:00:08
みなさんにお聞きしたいのですけど、最近の企業はやはり開発言語に.net
を採用しているのでしょうか?

VC6はもう時代遅れですか?
696デフォルトの名無しさん:2005/06/19(日) 20:00:29
みなさんにお聞きしたいのですけど、最近の企業はやはり開発言語に.net
を採用しているのでしょうか?

VC6はもう時代遅れですか?
697デフォルトの名無しさん:2005/06/19(日) 20:01:36
重複すいませんm(_ _)m
698デフォルトの名無しさん:2005/06/19(日) 20:06:46
みなさんにお聞きしたいのですけど、最近の企業はやはり開発言語に.net
を採用しているのでしょうか?

VC6はもう時代遅れですか?
699デフォルトの名無しさん:2005/06/19(日) 20:08:52
時代遅れということは無いけど、時代から
取り残されつつあるのは事実。
もうサポートも終了したんじゃないかな。
700デフォルトの名無しさん:2005/06/19(日) 20:12:48
>>698
仕事内容によるけど、うちではVC6が現役。
プリインストールの.netは削除してからVC6入れてる。
701デフォルトの名無しさん:2005/06/19(日) 20:51:54
>>698
開発言語は VC++ 7( 非マネージド )だけど環境は .NET 2003。
コンパイル時のチェックは厳密になっているし、開発環境自体も結構進歩
していて、生産性が向上した。個人的に VC++ 6 は時代遅れだと思う。
702デフォルトの名無しさん:2005/06/19(日) 20:55:16
うちの会社は私が仕切るとVC7.1になるけど、
某芝なんたらからの委託の仕事はVC6指定だったりVC4.2指定だったりする。
703デフォルトの名無しさん:2005/06/19(日) 22:25:57
>>693
小学校から勉強しなおしてください。
704デフォルトの名無しさん:2005/06/19(日) 22:29:36
MSのサポートとかOSの対応状況とか考えると、
VC6はそろそろやばいんじゃない?って感じはする。
そのうちVC6のコード自体、コンパイルできなくなる日が来るかもしれんから、
余力のあるうちに乗り換えといたほうがいいかも。
705デフォルトの名無しさん:2005/06/19(日) 22:50:07
みなさんありがとうございます。やはり時代遅れなのですね。
あとVC7って何のことでしょうか。無知ですいませんーー。

あともう一つ、技術評論社のホームページがなんかおかしいのは私だけですか・・・
706デフォルトの名無しさん:2005/06/19(日) 22:54:13
>>705
VC7はVisual Studio .Net (2002)のC++コンパイラ。
VC7.1はVisual Studio .Net 2003のC++コンパイラ。
707デフォルトの名無しさん:2005/06/19(日) 23:01:18
>>705
時代遅れって言うのは違うと思うけどな。
まぁ、あんたがどういうつもりでその質問をしたのかは知らないけど。
708デフォルトの名無しさん:2005/06/19(日) 23:07:41
ただ、VC6のコードが、いずれは新OSで動かなくなる可能性はあるかも。
709デフォルトの名無しさん:2005/06/19(日) 23:18:53
ま、Visual C++6.0はCPU向けの最適化が最高でもPentium Proですからね。
VC++6.0とインテルのコンパイラを組み合わせるという手も
ありまんもすがね。
710デフォルトの名無しさん:2005/06/19(日) 23:20:57
VC6のインターフェイスでコンパイラがVCToolkitなら俺的に最強なんだが
711デフォルトの名無しさん:2005/06/19(日) 23:24:47
>>708
VC6が生成したコード(バイナリ)がってことね。
やっと理解した。
712デフォルトの名無しさん:2005/06/19(日) 23:26:06
VC7.1のコード(Winネイティブ)だってLonghornで動かなくなる可能性あるかも
713デフォルトの名無しさん :2005/06/19(日) 23:35:38
そんなことしたらM$製品がほぼ全滅になるからやらないだろう。
714デフォルトの名無しさん:2005/06/19(日) 23:41:35
>>710
VC6のIDEもコマンドラインのcl.exeを呼んでるだけだから、
Toolkitのに差し替えたらごっそりいいんじゃないの?
715デフォルトの名無しさん:2005/06/19(日) 23:49:49
できるけど、pdbのフォーマット違いでデバッグに支障をきたす。
716デフォルトの名無しさん:2005/06/20(月) 00:01:36
コンパイラだけ置き換えると
標準ライブラリ <iostream> とかのテンプレートでコケル。

ライブラリ入れ替えたとしても、>>715
717デフォルトの名無しさん :2005/06/20(月) 00:10:47
ソースコード互換がある内に早く乗りかえれ。
718デフォルトの名無しさん:2005/06/20(月) 00:16:41
ソースコード互換が無くなると悲惨だな。
多少の修正で済むうちはまだましだよ。
719デフォルトの名無しさん:2005/06/20(月) 00:22:09
いやしかしVC++.net人気無いね。C#やVBの本はたくさん出てるのに、VCは少なすぎ。
技術評論社や秀和システムからましなのが出たと思ったら、どちらも重版未定だし。
720デフォルトの名無しさん:2005/06/20(月) 00:28:20
根本的なものはほぼ変わってないから入門書みたいのは必要ないしね。
721デフォルトの名無しさん:2005/06/20(月) 00:33:07
>>719
単に、VC++.NETは売り切れて、
C♯、VB.NETは売れ残っているのでは?

VB.NETはVBAとの互換性がなくなったのが痛い
VC++、+MFCで楽にさくさくのネイティブコードを作れるのに
なにが悲しくてもっさりの.NETコードを作る

VC++2005も単体でうってくれんかの〜
他はいらん
722デフォルトの名無しさん:2005/06/20(月) 00:38:16
そう言えば、林タンのVisualC++.NET入門シニア編、近刊と書いてから2年
全然出ないじゃん・・・
もう、出す気無いだろ?w
723デフォルトの名無しさん:2005/06/20(月) 00:42:30
シニアな人にそのようなものは必要ないですから。
724デフォルトの名無しさん:2005/06/20(月) 00:48:42
中級向けの書籍が欲しいんだよね
ネットで調べりゃどうにでもなるんだけど、
「あれ?あのやり方はどのサイトに載ってたけな」
となる事が多々ある
725デフォルトの名無しさん:2005/06/20(月) 00:53:03
>>724
お前もしつこいやつだな。
これ以上このスレに関係無い話題は終わり。
726デフォルトの名無しさん:2005/06/20(月) 02:24:32
C言語入門書を勉強し終わり、WINDOWSプログラムかC++学習に進もうとしている者です
中古でVC++6.0の説明書無しを買ったのですが、プロジェクトとかビルドとかデバッグとか
分からない事だらけで、良いHPも見つからず困っております
どこか分かりやすいページありませんか?
727デフォルトの名無しさん:2005/06/20(月) 02:52:30
>>726
こんなのがただで配られているというのに何故VC++6.0を・・・。
http://www.microsoft.com/japan/msdn/vstudio/2005/express/
728デフォルトの名無しさん:2005/06/20(月) 02:53:34
つーか、VC++6に説明書らしいもんあったっけ?
729726:2005/06/20(月) 04:19:31
レスありがとうございます
2005にしなかった理由は、よく分からなかったから、と思ったより安く6.0が買えたからです
初心者ですので分からない事だらけの上に、さらに、まだ情報の少なくて
機能の多い2005は勉強の妨げにならないか心配だったのです

もう一つ質問です、例えば↓のプログラム(名前はtestとします)
#include<stdio.h>
int main(int argc,char *argv[]){
printf(argv[1]);}
bcc++の無料コンパイラでは コマンドライン上で test zzz と書けば zzzと表示されます
これを VC++ではどのように実行すればコマンドライン引数を指定できるのでしょうか?
730デフォルトの名無しさん:2005/06/20(月) 04:36:06
同じ
731デフォルトの名無しさん:2005/06/20(月) 05:30:52
プロジェクトの設定 -> デバッグ -> プログラムの引数
732デフォルトの名無しさん:2005/06/20(月) 07:32:02
>>726
説明書って・・・
VC++6.0にはMSDN LiblalyというCD-ROM付いていなかったっけ?

とりあえず入門書でも買ってこいや。
英語でよければ、Microsoftのホームページでも見れるけどな。
http://msdn.microsoft.com/library/en-us/dnanchor/html/vc6anchor.asp
733デフォルトの名無しさん:2005/06/20(月) 15:47:45
VC++6をXPHomeSP2にインストールしようとしたら、
SETUP.EXE実行後に不正なアクセスでハングして、
インストールウイザードが立ち上がりません。

このページ見るとXPには対応しているっぽいのだが…
http://www.microsoft.com/japan/msdn/vs_previous/vstudio/techinfo/toolos.htm

同じような症状の人いませんか?

734デフォルトの名無しさん:2005/06/20(月) 16:51:33
ユーザ違いだったり?
735733:2005/06/20(月) 18:38:47
>>734
返事ありがとう。もうちょっと詳しくお願いします。

インストールユーザーはadmin権限を持っています。
(Homeなので通常Administratorは利用できないみたい)
736デフォルトの名無しさん:2005/06/20(月) 20:10:55
VC6が突然重くなったんだがなんなんだろう。コピー&ペーストするときに10秒くらい待たされる。
以前も時々なってた。
737デフォルトの名無しさん:2005/06/20(月) 20:22:00
>>736
それはな、呪いじゃよ

ついこの間まで

裏VCってのがあっての・・・

つづきは明日
738デフォルトの名無しさん:2005/06/20(月) 20:58:24
>>736
実はエディタ部の窓を一杯開いてるんじゃないの
739デフォルトの名無しさん:2005/06/20(月) 21:37:31
いや、全部消したけど駄目だった。なんだろうなこれ。
Window切り替えに10秒くらい待たされてイライラする。
HDDも空いてるし常駐アプリも最低限にしてるのにな。
HDDがやばくなってきたのかな。
740デフォルトの名無しさん:2005/06/20(月) 21:55:25
24ビットのビットマップファイルを
ダイアログからファイル名を取得して表示させたいのですが、
ファイルを開いてヘッダとビットパターンを読み込んだ後、
CBitmapの初期化(?)がうまくいきません。

CreateBitmapを使うと、Bitcountに24を指定すると戻り値が0になってしまうし…。
CreateCompatibleBitmapを使うと、ビットパターンの指定ができないし…。

普通はどうやるのでしょうか?
741デフォルトの名無しさん:2005/06/20(月) 22:01:30
LoadImage じゃね?
742デフォルトの名無しさん:2005/06/21(火) 00:34:26
>>739
タスクマネージャーで調べたら?
743デフォルトの名無しさん:2005/06/21(火) 01:54:24
VC7.0で作成するexeがマルチスレッドなら、
リンクするライブラリ(自作も含む)も
マルチスレッドで作らないといけないのですか?
シングルスレッドでコンパイルしたライブラリでも、
リンクができて、一見、正常にexeが動いているように見えるのですが、
これって何か問題ありますか?
744デフォルトの名無しさん:2005/06/21(火) 02:13:25
マルチスレッドで作らないと、という意味がよく分からないが、
少なくともマルチスレッドで使う予定のライブラリはマルチスレッド環境でも
問題なく動くように設計する必要はある。例えば、グローバル変数や
静的変数を使用するものは避けるとか。Cの関数のソースが
VC++には付いているから幾つか簡単な関数の中身を覗いてみて、
マルチスレッドではどうやって動作をさせているか見ると良い。
関数によっては何も配慮しなくても平気なものもあるし、マクロで
動作を切り替えているものもある。それを参考にすれば自作のライブラリでは
どう対応すべきか分かるようになるだろう。
745デフォルトの名無しさん:2005/06/21(火) 02:26:30
MessageBoxに、たとえばintを表示させたい場合はどうすれば良いんですか?
型の変換の仕方がわかりません。
746デフォルトの名無しさん:2005/06/21(火) 02:40:23
>>745
CString foo;
foo.Format("%d", 123);
AfxMessageBox(foo);
747デフォルトの名無しさん:2005/06/21(火) 02:55:46
>>745
char a[20];
itoa(123,a,10);
AfxMessageBox(a);
748デフォルトの名無しさん:2005/06/21(火) 05:15:27
そういや、たとえばA.DLL をアプリB,Cで使うとして
そのAのインスタンスってB用C用にそれぞれ生成されるんだろうか?
749デフォルトの名無しさん:2005/06/21(火) 06:23:19
>>745
char b[14];
sprintf("%d", 123);
MessageBox(NULL, a, NULL, MB_OK);

>>748
DLLについて勉強すべし
750デフォルトの名無しさん:2005/06/21(火) 06:45:06
>>745
typedef std::basic_string<TCHAR> tstring;
MessageBox(0, boost::lexical_cast<tstring>(5), 0, MB_OK);
751デフォルトの名無しさん:2005/06/21(火) 07:12:14
newで動的に確保した変数は、deleteし忘れるとメモリリークしますか?
それとも、プログラム終了時に消えてくれますか?
752デフォルトの名無しさん:2005/06/21(火) 07:35:40
両方ともYes
753デフォルトの名無しさん:2005/06/21(火) 07:40:27
システムグローバルなリソースを握ってるならNO.
754デフォルトの名無しさん:2005/06/21(火) 08:10:51
>>751
auto_ptrとか使うと幸せになれるぞ。
755デフォルトの名無しさん:2005/06/21(火) 08:51:56
>>745
1つのソースで MBCS(Shift_JIS)版とUnicode版の両方に対応するなら、
#include <stdio.h>
#include <tchar.h>
TCHAR sz[4];
_stprintf(sz, _T("%s"), 123);
AfxMessageBox(sz);
756デフォルトの名無しさん:2005/06/21(火) 10:53:08
>>755
おいおい
757デフォルトの名無しさん:2005/06/21(火) 11:04:25
%sワラタ
758デフォルトの名無しさん:2005/06/21(火) 11:06:40
しかもsz[4]か。おhる。
759デフォルトの名無しさん:2005/06/21(火) 11:59:55
[課題Q]3角形の底辺の長さ,高さをキーボードから読込み,その面積を計算するプログラムを作成しなさい.
ただし,底辺の長さ,高さ,面積の値を入れる変数名をそれぞれteihen, takasa,mensekiとし,いずれも実数型(double型)とする.


void main( void )
{
double teihen, takasa, menseki;

printf( "底辺は?\n" ); /* 入力を促すメッセージを表示 */
scanf( "%d", &teihen );

menseki = teihen * takasa / 2;
printf("%f\n",menseki);
}

これ誰か完成させてくれ
760デフォルトの名無しさん:2005/06/21(火) 12:23:50
>>759
低レベルなソース向けに、低レベルな回答。
printf( "底辺は?\n" ); /* 入力を促すメッセージを表示 */
scanf("%lf", & teihen);
printf( "高さは?\n" ); /* 入力を促すメッセージを表示 */
scanf("%lf", & takasa);
761デフォルトの名無しさん:2005/06/21(火) 12:32:24
>>744
レスありがとうございます。
わかりにくい質問で申し訳ございません。
私が伺いたかったのは、プロパティページの
C/C++--->コード生成--->ランタイムライブラリ
で指定するパラメータを、リンクするほうもされるほうも、
同一にしなければならないのか?ってことなんです。
例えば、exeに"/MD"を指定して自分で作ったライブラリに
"/ML"と指定すると、リンクできたりできなかったり(リンクエラーが出る)
するのですが、リンクできたときはたまたまなのか、
それとも何か問題があるのかとか、そういうところです。
762デフォルトの名無しさん:2005/06/21(火) 12:36:46
同じでないとダメだと思われ。
763デフォルトの名無しさん:2005/06/21(火) 12:51:54
シングルスレッド用のをマルチスレッドで動かすとデータに矛盾を生じることがある。
764デフォルトの名無しさん:2005/06/21(火) 15:55:20
a.libには関数a1(),a2()
b.libには関数b1(),b2()
があります。
a1()からはb1()を呼び出すことがあります。
b2()からはa2()を呼び出すことがあります。
事情があって、関数の場所を取り替えることができません。
この場合、お互いに呼び出しているので、
ビルド時にお互いのlibファイルが生成されていないので、
リンクエラーが出てしまいビルドできません。
このリンクエラーを回避する方法は無いものでしょうか。
使用しているコンパイラは.NET2002(SP1)です。
765デフォルトの名無しさん:2005/06/21(火) 16:18:35
>>764
b2()を含まないb.libを作って、それを使ってa.libを作ったらどうだろう。
そのa.libを使って作ったb.libでa.libを作り直さないといけないけど。
766デフォルトの名無しさん:2005/06/21(火) 16:35:45
>>754
ググって調べてみました。
STLってすばらしいですね・・・
767デフォルトの名無しさん:2005/06/21(火) 16:52:13
boost スマートポインタ でググるともっと幸せになれるかも…
768デフォルトの名無しさん:2005/06/21(火) 17:00:14
>>766
いや、それはあまりすばらしくないと思うぞw
769デフォルトの名無しさん:2005/06/21(火) 18:19:26
C言語、perl、java、C++、のこの全部の違いを教えて下さい。
770デフォルトの名無しさん:2005/06/21(火) 18:22:52
あんまり無茶な要求すんなよな
771デフォルトの名無しさん:2005/06/21(火) 18:44:36
C++は新しく作ったC言語
javaは新しく作ったC++
perlは真珠
772デフォルトの名無しさん:2005/06/21(火) 18:45:46
JavaはC++から作ったにしてはだいぶ劣化してるけどなw
773デフォルトの名無しさん:2005/06/21(火) 18:48:08
だがそれがいい
774デフォルトの名無しさん:2005/06/21(火) 19:23:15
>>771
perlにワロタ
775デフォルトの名無しさん:2005/06/21(火) 19:30:18
CMyClass *m_pA;

m_pA = new CMyClass;
では、何が違うんでしょうか?詳しく教えてください。
776デフォルトの名無しさん:2005/06/21(火) 19:41:44
>>775
ポインタを勉強しろ。
話はそれからだ。
777デフォルトの名無しさん:2005/06/21(火) 20:06:23
>>776
話はそれからだ。って言いたいだけなんでしょう?
違い解らないんだ?
778デフォルトの名無しさん:2005/06/21(火) 20:26:20
CMyClass *m_pA;はこれからポインタを使うからよろしくな!って宣言しただけ。
m_pA = new CMyClass;はやったぜ、父さん!ポインタの実体を確保したぜ!という意味
779デフォルトの名無しさん:2005/06/21(火) 20:30:40
数値計算のプログラムを作っています(一応仕事)
ファイルは
main.c(本体)
file.h(ファイル入出力)
calc.h(計算する)
の構成で、main.cに#include "file.h"、#include "calc.h"としています。

一方
main.c(本体)
file.c(ファイル入出力)
calc.c(計算する)
という構成にもできるらしいのですが、やり方はわかりません。(とりあえずそれでも困らない)
ただ、そのようにすると何かよいことはあるのでしょうか?(計算が速くなるとか)
780デフォルトの名無しさん:2005/06/21(火) 20:42:15
どう考えても仕事には思えんが・・研修?

>>779程度の規模なら困らない

多人数で開発したり規模が大きいプログラムを組めばわかってくる

分割コンパイルとかでググるとわかるよ

ちなみに計算が早くなったりはしない
781775:2005/06/21(火) 20:43:37
>>778
ありがとうございます。
じゃあ、前者は実際に、m_pA.func()などとすることで、後者と等価になるってことですか?

ちなみに>>777は私ではありませんよ。
782デフォルトの名無しさん:2005/06/21(火) 20:48:21
>>781
根本的に勘違いしてる悪寒
783デフォルトの名無しさん:2005/06/21(火) 20:50:23
>>775はこれと等価。
CMyClass *m_pA = new CMyClass;
784779:2005/06/21(火) 20:51:27
>>780
ありがとうございます。
仕事ですよ。4年になります。
一応製品(というほどでもないけど)の一部に組み込まれてます。
正確にはcalc1.h・・・calc5.hのように複数あります。
早くならないなら今のままでOKということですね。
785デフォルトの名無しさん:2005/06/21(火) 21:10:18
>>784
製品の一部 と仄めかされて良いように使われてるだけのこと。
どう見ても何かの検証プログラムだろ。
786デフォルトの名無しさん:2005/06/21(火) 21:20:43
>>782-783
すみません、詳しくお願いします。
787デフォルトの名無しさん:2005/06/21(火) 21:35:41
>>786
詳しく知りたいんなら本とか買えよ。
文字だけより絵とかがあった方がわかりやすいと思うよ?
788デフォルトの名無しさん:2005/06/21(火) 21:53:10
CMyClass *m_pA=(CMyClass*)malloc(sizeof(CMyClass))
と書いていいかどうかは知らないが、こういうような感じだ。
つまり、ヒープ上にメモリーを確保(new CMyClass())してそのメモリ領域を
ポインタm_pAで表しますよ、ということだ。
最初のように二段階に分けて書くと、CMyClass* m_pA;でとりあえず
CMyClass型へのポインタを宣言はしたが、それが具体的にメモリーのどこを
表しているのかは決まっていない。つまり不定になっている。
int x;と書いただけではxに値が決まってないのと似たようなものだ。
が、new CMyClass()でCMyClassのオブジェクトを格納するのに必要なメモリを
実際に確保したら、それを既に宣言してあるm_pAで表しちゃえ、ということを
行なっている。別にm_pAでなくても、改めてCMyClass* m_pBというポインタで
表しても構わないけど、既に宣言されているんだからm_pA使えばそれでいいじゃん、
ということ。
789デフォルトの名無しさん:2005/06/21(火) 21:56:51
それがm_pA=new CMyClassの代入の意味。
二回に分けると見にくいんじゃ、ゴルア!という場合は
一行で>>783のように書いても良い。
これは好きな方を採用すれば良い。
790デフォルトの名無しさん:2005/06/21(火) 22:00:14
勝手に補足。
new CMyClassの場合はmallocと違って
コンストラクタCMyClass::CMyClass()が呼ばれるはず。
791デフォルトの名無しさん:2005/06/21(火) 22:01:26
>>788
実際にはそこへコンストラクタの呼び出しが加わる。
792デフォルトの名無しさん:2005/06/21(火) 22:38:07
このスレに来る前に、最低限の勉強は必須としてもいいんじゃないか?
793デフォルトの名無しさん:2005/06/21(火) 23:42:07
日本語とか日本語とか
794デフォルトの名無しさん:2005/06/21(火) 23:45:27
礼儀とか
795デフォルトの名無しさん:2005/06/22(水) 02:54:59
日本史とか
796デフォルトの名無しさん:2005/06/22(水) 03:29:36
VCの初心者にVCを教えるのはまだいいが、
プログラムの初心者に教えてと言われてもな・・・

生まれたばかりの赤子に数学教えてって言われても無理な話
797デフォルトの名無しさん:2005/06/22(水) 07:17:49
>>796
確かに…ここはVC初心者にVCの使い方を
教えるスレであってC/C++を教えるスレじゃないからな。

このスレを天プレに入れといてもいいんじゃね?
【初心者歓迎】C/C++室 vol.18
http://pc8.2ch.net/test/read.cgi/tech/1117984322/
798デフォルトの名無しさん:2005/06/22(水) 08:14:02
お助け下さい。
VC++.netスタンダードバージョン2003をインストールすると
途中で勝手に再起動してしまいます。
OSはXPのSP1です。
どうしたらよいでしょうか。
799デフォルトの名無しさん:2005/06/22(水) 08:49:56
>>798
情報少な杉。
もっと詳しく。
800798:2005/06/22(水) 09:51:51
すいません798です。
.NET Framework SDKのチェックを外したら一応インストールが完了しました。
徹夜までして何だったんだろう・・・
バージョンはアカデミックです。
C++の勉強用に買ったので当面はこれで行きたいと思います。
スレ汚し済みませんでした。
799さんありがとうございました。
801デフォルトの名無しさん:2005/06/22(水) 10:59:21
>>798と関係ないかも知れないけど、
Visual Studio .NETのIDEの機能のうちで、
.NET Frameworkが入ってないと使えない機能があるね。
プロパティウィンドウでメッセージハンドラを追加・削除するやつとか。
802デフォルトの名無しさん:2005/06/22(水) 15:38:21
CStatic::SetBitmapでビットマップをコントロールに表示するとき、
座標を指定することってできますか?
803デフォルトの名無しさん:2005/06/22(水) 16:03:35
.NET 2002には一定の時間が経過したら作業中のファイルを
自動で保存する機能は無いですか?ソースセーフか何か入れないと
無理ですか?
804デフォルトの名無しさん:2005/06/22(水) 16:11:00
こんにちは、よろしくお願いします。
APIを使ってWindow を表示するコードをほんのと売りに書きました。
ピルドして、exeファイルもできました。
実行すると、ウインドウが表示されません、終了すると、
'tesuto.exe': 'C:\WINDOWS\system32\ntdll.dll' を読み込みました。シンボルが読み込まれていません。
上記の表示が、10行ほどつづいて、
プログラム '[2692] tesuto.exe: ネイティブ' はコード 0 (0x0) で終了しました。
で終わっています。
どうすれば、いいのでしょうか。教えてください。
805デフォルトの名無しさん:2005/06/22(水) 16:14:30
>>804
どうしもしなくていいです
806デフォルトの名無しさん:2005/06/22(水) 16:19:42
すいません、VCで簡単なプログラムを作れるとアピールしてるのですが
未経験だとバイトすら採用されません。まだ20代前半です。どうしたらいいでしょうか?
807デフォルトの名無しさん:2005/06/22(水) 16:23:36
>>806
いつまでだか知らないが、2chなんか見てないで、少しでも勉強することを薦める。
808デフォルトの名無しさん:2005/06/22(水) 16:24:06
>>804です
>>805さんありがとうございます。
では、どうして、windowが、表示されないのでしょうか
809デフォルトの名無しさん:2005/06/22(水) 16:29:21
>>806
簡単なプログラムというのがどの程度なのかあいまい過ぎる。最低でも
フリーソフトでも作って公開して雑誌にちょくちょく載るくらいに
なったら名刺代わりにはなるだろう。
>>804
その本のコードを書きなさい。ISDNコードじゃないぞ。
810デフォルトの名無しさん:2005/06/22(水) 16:44:50
>>806
・売り込みが甘すぎ
・意気込みが伝わってない

こんなとこだろ
811デフォルトの名無しさん:2005/06/22(水) 16:45:10
>>809
それを言うならあいえすびぃ(ry
812デフォルトの名無しさん:2005/06/22(水) 16:54:32
>>806
なんか作って持ってたら?
813デフォルトの名無しさん:2005/06/22(水) 16:54:56
訂正
なんか作って持っていったら?
814デフォルトの名無しさん:2005/06/22(水) 16:56:57
フリーウェアで公開してるのって趣味で何ヶ月もかけて
作ってるのとか多いだろうし、ものによってはレベルが全然違うし。
時間さえあればネットワーク系以外ならそこら辺に落ちてるものぐらい余裕で作れますから。
まぁ「最低でもフリーソフト」なんて間抜けなこといってるカスに言っても時間の無駄だろうけど
815デフォルトの名無しさん:2005/06/22(水) 17:14:50
プログラムの設計の仕方から判らないから「猫でも」見ても駄目だ _| ̄|○
816デフォルトの名無しさん:2005/06/22(水) 17:28:34
そうだな。余裕で作れますと言っているのに
バイトにすら採用されないレベルの間抜けであることを
自覚出来ないカスだからな。>>814は。
817デフォルトの名無しさん:2005/06/22(水) 17:32:44
まぁちょっと謙遜して言いすぎたからな。俺を見る目がまるで無かったんだろう
818デフォルトの名無しさん:2005/06/22(水) 17:37:42
814にはアイコン職人が向いている


819デフォルトの名無しさん:2005/06/22(水) 17:47:33
趣味で作っている人は本業のほかにやっているわけだから
数ヶ月かかっても当たり前なのに分からない馬鹿もいるんだねぇ。
820デフォルトの名無しさん:2005/06/22(水) 18:07:11
>>814サン
じゃあzipのパスワード解析出来るのでも作ってよ。出来ればrarにも対応して欲しいです。
GUIはいらないです。アルゴリズムはそこら辺に落ちてるし、フリーソフトにも
沢山あるから簡単でしょ。でも落ちているdllは使わないで独自に実装お願いしますm(_ _)m
だめなら軽いタブブラウザ作ってちょ。IEのエンジン利用していいですよ。
それならネットワークの知識は特に要らないから簡単でしょ。

ぜひお願いします。m(_ _)m
821デフォルトの名無しさん:2005/06/22(水) 18:08:29
そんなにレス返して欲しいのか?www数ヶ月なんて序の口で
数年単位で作ってるやつもあるってことも言いたいのがわからんかったようだこの低脳はwwwwww
822デフォルトの名無しさん:2005/06/22(水) 18:12:00
アルゴリズムをまんまパクるならzip解析は1日でタブブラウザなんて1時間でできるwwww
だがお前のためにそんな無駄なことをする義理も時間もないwwwwwカスの集まりが
そんなものも頼まなきゃ作れんのか。スレタイに初心者って書いてるからあまり悪く言いたくはないがな
823デフォルトの名無しさん:2005/06/22(水) 18:21:20
>>820
家に泥棒が入って全財産盗まれる羽目になるので嫌です。
824デフォルトの名無しさん:2005/06/22(水) 18:57:02
>>804です
>>809さんありがとうございます。コードです
#include <windows.h>
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ) ;

int WINAPI WinMain( HINSTANCE hi, HINSTANCE, LPSTR, int ) {
WNDCLASSEX wc;
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hi;
wc.hIcon = LoadIcon( NULL, IDI_APPLICATION );
wc.hIconSm = LoadIcon( NULL, IDI_WINLOGO);
wc.hCursor = LoadCursor( NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName= "wh04";
if(! RegisterClassEx(& wc)) return 0;
825デフォルトの名無しさん:2005/06/22(水) 18:57:02
もう謙遜するのやめた。次に面接するときはハッキリと
使いこなせる作れると言ってしまおう。やっぱりどいつもこいつもハッキリ言ってやらんとわからんみたいだしな
826デフォルトの名無しさん:2005/06/22(水) 18:58:10
>>824つづき
CreateWindow("sh04",
"定番hell",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
HWND_DESKTOP,
NULL,
hi,
NULL);
MSG msg;
while ( GetMessage( &msg, NULL, 0,0)){
TranslateMessage( &msg);
DispatchMessage( &msg);
}
return msg.wParam;
}
827デフォルトの名無しさん:2005/06/22(水) 18:58:54
>>826つづき
LRESULT CALLBACK WndProc( HWND hwnd, UINT imsg, WPARAM wp, LPARAM lp ){
switch (imsg){
case WM_PAINT:{
PAINTSTRUCT ps;
char *p = "hello windows";
BeginPaint(hwnd, &ps);
TextOut(ps.hdc, 10,10,p,strlen(p));
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, imsg, wp, lp);
}
return 0;
}
828デフォルトの名無しさん:2005/06/22(水) 19:04:24
これこそ>>629-631の実例。
829814:2005/06/22(水) 19:08:53
CreateWindow("sh04"←これを"wh04"にするかwc.lpszClassNameにしてみよう
830デフォルトの名無しさん:2005/06/22(水) 19:10:04
>>825
言うだけなら簡単だな。化けの皮がはがれないようにお前の
その脳の入っていない頭でよく考えな。

831デフォルトの名無しさん:2005/06/22(水) 19:11:40
>>822
じゃあ一時間で作って見せてよ。
へ理屈はいいからさ。
832デフォルトの名無しさん:2005/06/22(水) 19:12:39
やだよめんどくさい。お前等に実力を証明したところで不毛極まりないからな
833デフォルトの名無しさん:2005/06/22(水) 19:16:33
>>829さん
本当にありがとうございます。できました。
>>828さんすみません気をつけるようにがんばります。
834デフォルトの名無しさん:2005/06/22(水) 19:18:19
アルゴリズムをパクらないと出来ないレベルであることを
自ら告白したな。w
>めんどくさい。
要するに実力を証明することが出来ないわけだ。馬鹿丸出し~~
お前は所詮はその程度だ。もういいら消えろ
835デフォルトの名無しさん:2005/06/22(水) 19:19:29
VCに関係ないことは別のスレでやれ
836デフォルトの名無しさん:2005/06/22(水) 19:22:31
なんつーかもう馬鹿丸出しでいいよwwwほんとアホらしくなる
837デフォルトの名無しさん:2005/06/22(水) 19:25:52
 おチンチンびろーん
   ∩___∩     
   | ノ      ヽ/⌒) 
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/
.(  ヽ  |∪|  /
 \    ヽノ /   
  /      /  
 |   _つ  /    
 |  /UJ\ \       
 | /     )  )       
 ∪     (  \    
        \_)
838デフォルトの名無しさん:2005/06/22(水) 19:26:30
あほらしいじゃなくてお前が真性のアホなんだよ。
謙遜?ちがうだろ。自分には出来ないからはっきり
出来ると言えなかったんだよ。
お前が自分は間抜けです、とはっきり言わなかったのは
正解だったかもしれないが。
839814:2005/06/22(水) 19:32:47
まぁやっぱりプログラムが思い通りに動かないときはヌルポッポーが
多いから関数の戻り値はこまめに確認するべきだね
840デフォルトの名無しさん:2005/06/22(水) 20:02:34
見えない相手にそこまで喰らいつくお前の気が知れない
841デフォルトの名無しさん:2005/06/22(水) 20:22:38
STLのmapコンテナを__gcクラスのprivateメンバ変数として使おうと思ったのですが、
マネージ'<不明>'のメンバとして'<不明>'を定義できませんと怒られました。
マネージ拡張クラスのメンバ変数にはSTLは宣言できないのでしょうか?
ご教示お願いします。

環境はVC++.NET2003です。
ソースの方は今のところコンストラクタとデストラクタしかありません。
下はヘッダです。

//test.h
#pragma once

#include <map>
#include <string>

using namespace std;

namespace maptest
{
public __gc class maptester
{
private:
map<string, int> maptest;

public:
maptester();
~maptester();
};
}
842デフォルトの名無しさん:2005/06/22(水) 21:26:33
>>841
試してみたらポインタや参照は持てた。
namespace maptest
{
    public __gc class maptester
    {
    public:
        typedef std::map<std::string, int> MAP_S_I;
        MAP_S_I& Map;
        maptester() : Map(*new MAP_S_I)
        {
        }
        ~maptester()
        {
            delete &Map;
        }
    };
}
using maptest::maptester;
int _tmain()
{
    maptester& hoge = *new maptester;
    hoge.Map["ほげ"] = 65536;
    std::cout << hoge.Map["ほげ"] << std::endl;
    return 0;
}
843841:2005/06/22(水) 22:20:13
>>842さん
レスありがとうございます。
この方法だとできました。

参照にポインタ渡したり、コンストラクタにMapのポインタ継承(?)
ってこんがらがってしまいました。
自分のレベルが足りなくて何をやってるのかが分からなかったので
基本的な事項を勉強し直して来ます・・・。
844デフォルトの名無しさん:2005/06/22(水) 22:24:30
>>843
ポインタを*でdereferenceしたものは左辺値だから参照の初期化に使える。
845841:2005/06/22(水) 23:36:40
>>844さん
内容がどこの部分に該当するのか分かりませんでした。ごめんなさい。

@maptester& hoge = *new maptester;

@maptesterオブジェクトの参照であるhogeに
maptesterオブジェクトのポインタを代入ってことで解釈しました。


Amaptester() : Map(*new MAP_S_I)
{
}

844さんはAの内容に対しての話だと判断して
コンストラクタに、参照の初期化したものを継承していると解釈しました。

あってますでしょうか?
846844:2005/06/22(水) 23:54:46
>>845
1も2も俺が言いたかったところ。
ところで2は継承ではない。メンバ変数の初期化。
847841:2005/06/23(木) 05:07:24
>>844さん
コンストラクタ部分にコロンでメンバ変数を初期化できるなんて知りませんでした。
他の事にも試してみます。
ご教示ありがとうございました!
848デフォルトの名無しさん:2005/06/23(木) 10:04:47
/*
* Window field offsets for GetWindowLong()
*/
#define GWL_WNDPROC     (-4)
#define GWL_HINSTANCE    (-6)
#define GWL_HWNDPARENT  (-8)
#define GWL_STYLE       (-16)
#define GWL_EXSTYLE     (-20)
#define GWL_USERDATA    (-21)
#define GWL_ID          (-12)

データはこういう風に格納されてますか?
849デフォルトの名無しさん:2005/06/23(木) 11:44:27
どこに?
850848:2005/06/23(木) 11:48:02
ごめん、>>848はスルーしてください
851デフォルトの名無しさん:2005/06/23(木) 11:59:37
_T("MYCLASS")としたところ、

error C2065: '_T' : 定義されていない識別子です。

とでました。
解決法がわかりません。
何を定義すればよいのでしょうか。

よろしくお願いいたします。
852デフォルトの名無しさん:2005/06/23(木) 12:23:54
853デフォルトの名無しさん:2005/06/23(木) 20:03:38
アプリケーションを作ってて、そのアプリケーションのエラーメッセージとか
実行状態のメッセージを別の小さなダイアログに表示したいのですがどうすれ
ばいいでしょうか?
854デフォルトの名無しさん:2005/06/23(木) 20:10:46
モードレスダイアログボックス
855デフォルトの名無しさん:2005/06/23(木) 22:47:10
Windowハンドルをラップしたクラスをつくってみました。
こんなかんじで
class Win{
  HWND handle_;
public:
  BOOL Create();
  void Show();
};
ここまで作ってふと思ったんですが、
HWNDを引数にとるAPIにはどうやって情報を渡そうかと

クラスが保持しているハンドルを返すメンバ関数をつくると
内部実装をさらすようでカプセル化したした意味が無い気がします
かと言って使用するAPI全てにラッパークラスを作るのもしんどい気がします
856デフォルトの名無しさん:2005/06/23(木) 22:50:15
独り言なら
857デフォルトの名無しさん:2005/06/23(木) 22:57:28
MFCでも見たら?
858デフォルトの名無しさん:2005/06/23(木) 23:10:31 BE:28096122-
>>855
>API全てにラッパークラスを作るのもしんどい気がします

生のHWNDを扱いたくないなら、そうするしかないかと。
859ゆみ:2005/06/23(木) 23:15:10
COMアドインを効率つくる情報をください・・・
860デフォルトの名無しさん:2005/06/23(木) 23:16:45
>>859
まずは日本語勉強してからな。
861デフォルトの名無しさん:2005/06/23(木) 23:18:37
>>855
MFCとかATLではある程度の関数には自前でラップしてして、
ついでにデフォルト引数とか、RECTかintの引数を4つかなどといったオーバーロードを提供しているが、
やっぱり網羅しきれるわけが無いのでHWNDを返すメンバ関数とoperator HWND()を用意している。
862デフォルトの名無しさん:2005/06/23(木) 23:24:03
>>858
>>861
やっぱりそうですよね

よく考えたらハンドルという概念自体がリソースを程よくラップしているので
公開しちゃっててもいいんじゃないかという気になってきました

さすがにpublicメンバにするのは気がひけるので
operator HWND()
でも実装します

ありがとうございました
863デフォルトの名無しさん:2005/06/24(金) 02:34:45
いいかもまいらvitaminCは肌にとてもいいんだ。初心者だからわからないかもしれないがとった方がいいぞ。ちゃんと食事のbalanceを考えて摂取するんだ。しっかりな。
864デフォルトの名無しさん:2005/06/24(金) 03:02:44
パス名の最大長で、MAX_PATHと_MAX_PATHとどちらを使えばいいんですか?
あと、TCHARと_TCHARとありますが、違いが良くわかりません。
これって同じものでしょうか?
865デフォルトの名無しさん:2005/06/24(金) 03:03:58
オレもよおわからん。
ってか、ゲネリックテキスト意識してみんな作ってる?
866デフォルトの名無しさん:2005/06/24(金) 05:37:33
generic text は意識してるよ。
Unicode 版を試しに作ってみたいとき便利だよ。
_TCHAR は TCHAR が標準化されるまでの名残じゃないかな、うん。
867デフォルトの名無しさん:2005/06/24(金) 05:46:37
てことはTCHAR使っとけば間違いないかな???
LPCTSTRとかLPTSTRとかとはTCHARのほうが相性がいいとか。
868デフォルトの名無しさん:2005/06/24(金) 06:13:11
defineしてあるから今のところはどっちでもいいんだけどな。

UNICODE が define されてるかどうかで SetWindowText が
SetWIndowTextA と SetWindowTextW のどちらかへ define される。
最初からTCHARやLPCTSTRで書いてると2種類のソースを用意しなくていい。
ソースが1つだと変更し忘れが少なくなっていい。

SetWindowText(hwnd, _T("ほげ"));
 ↓
SetWindowTextW(hwnd, L"ほげ"); // UNICODEがdefineされている
SetWindowTextA(hwnd, "ほげ"); // UNICODEがdefineされていない
869デフォルトの名無しさん:2005/06/24(金) 06:18:24
>>855
operator HWND()
{
  return handle_;
}
870デフォルトの名無しさん:2005/06/24(金) 08:16:57
>>864
問題は、MAX_PATHそのものを使ってはいけないことだ。
ディレクトリを何段も掘ったから簡単に溢れるぞ。
871デフォルトの名無しさん:2005/06/24(金) 08:23:49
>>870
うむ、MAX_PATHは古の悪習だな。
DOSの頃は、そもそもOSがMAX_PATHを越えると扱えなくなるから良かったが、
それをWindows95移行も踏襲するのは、糞だ。
872デフォルトの名無しさん:2005/06/24(金) 08:35:52
処で質問だが、単体では動いているプログラムが数本同時に動くと時折りntdll.dllが落ちてしまうのだ。
ntdll.dllが落ちた後も、ログファイルの出力が止まらないところを見ると、プログラム自体はきちんと
タイマーメッセージで動き続けているらしい。
原因としてはどの辺りが考えられるかな。
873デフォルトの名無しさん:2005/06/24(金) 08:40:52
>>871
じゃあ、今はどうすべき?
874デフォルトの名無しさん:2005/06/24(金) 09:51:05
>>873
MAX_PATHによらず、充分な長さを確保する必要があるべさ。
875デフォルトの名無しさん:2005/06/24(金) 10:23:50
\\?\hoge形式のファイル名を使わないとMAX_PATH文字の制限は
解除できないんでねーの?
従来形式を使う限りMAX_PATH文字でいいと思っていたが。
876デフォルトの名無しさん:2005/06/24(金) 10:51:15
フルパスでMAX_PATH以上になるような長い名前のフォルダを2, 3階層作ったら
エクスプローラから削除できなくなった記憶がある。
877デフォルトの名無しさん:2005/06/24(金) 11:33:14
>>876
いいこと聞いた
878デフォルトの名無しさん:2005/06/24(金) 12:05:37
その辺を明快に解説した本とか無いだべさ?
879デフォルトの名無しさん:2005/06/24(金) 12:29:31
結局、TCHARと_TCHAR迷ったらどちらを使えばよいでしょう。。。
880デフォルトの名無しさん:2005/06/24(金) 12:37:03
Path系APIはMAX_PATH以上扱おうとすると失敗した記憶が
881デフォルトの名無しさん:2005/06/24(金) 12:38:52
やたら深いフォルダにファイルを置くと
Win98のスキャンディスクが「長すぎてMS-DOSが認識できない」とか
警告を出してきた記憶があるなあ。
この制限はMAX_PATHより短い。
環境変数PATHの長さが128文字までだった時代の名残かな。

>>879
迷わずTCHAR使えって。
882デフォルトの名無しさん:2005/06/24(金) 12:45:36
>>881
それ、ショートネームがMAX_PATHを超えるんだと思う。
883デフォルトの名無しさん:2005/06/24(金) 12:51:49
DOSだとディレクトリ名は64bytesまでだったはず。
884デフォルトの名無しさん:2005/06/24(金) 13:16:43
・MAX_PATHの定義
#define MAX_PATH260

・アプリの引数の長さにも128バイトの制限があって、
ファイル名の長さに依るが約10〜20個以上のをドロップするとエラーが出ることが多かった。
MS-DOSの名残だが、Win9xでも出てた。

・MS-DOSでは環境変数PATHの長さは128バイトまでに制限されている。
 これは"PATH="と終端のNULLの長さも含めた長さなので実際には122バイトしか使えない。
 PATHにパスを2つ指定できるようにディレクトリ名の長さは122の半分くらいじゃなかったかな。
885デフォルトの名無しさん:2005/06/24(金) 13:24:21
ドライブレターとディレクトリとファイル名(8+3)足して80かな。
だとしたら、80-(8+3)-2-1で66くらいか。
886881,884:2005/06/24(金) 13:36:46
そう、80。MS-DOS上の開発環境ではこんな定義だった。
#define MAX_PATH 80

http://www.google.co.jp/search?q=define-max_path-80

MS-DOSにWindowsをかぶせて隠そうとしてるのに、DOSの制限を引きずってるなあ。

Windowsでの上限
#define _MAX_PATH 260 /* max. length of full pathname */
#define _MAX_DRIVE 3 /* max. length of drive component */
#define _MAX_DIR 256 /* max. length of path component */
#define _MAX_FNAME 256 /* max. length of file name component */
#define _MAX_EXT 256 /* max. length of extension component */
887デフォルトの名無しさん:2005/06/24(金) 14:32:16
>>881
> 迷わずTCHAR使えって。

ラジャ ノシ
888デフォルトの名無しさん:2005/06/24(金) 15:56:50
>>874
どれくらい確保し解けばいいさ。
889デフォルトの名無しさん:2005/06/24(金) 18:04:15
常識の範囲
890デフォルトの名無しさん:2005/06/24(金) 18:14:34
俺にとって常識の範囲とはMAX_PATHなんだが。
891デフォルトの名無しさん:2005/06/24(金) 18:16:24
まあその4倍ぐらいとっときゃいいんでない?
そんな深いとこまでは使いにくいから作んないでしょ。
で、常識の範囲。
892デフォルトの名無しさん:2005/06/24(金) 18:17:25
オレはヒープ使って10kbくらいとっちゃったりする小心者です。
スタックよりは良いかと、そんな程度です。
893デフォルトの名無しさん:2005/06/24(金) 21:06:16
既存のプログラムAを改造して新しいプログラムを作ろうとしているのですが
その際にプログラムAでリンクをはっていたDLLをはずしてしまったのですが

LINK : warning LNK4089: "ABCDE.dll" へのすべての参照は /OPT:REF によって廃棄されます

と出ます。エラーではないのですが、気になるので解決する手を教えて
いただけませんか?
894デフォルトの名無しさん:2005/06/24(金) 21:07:09
無視する
895デフォルトの名無しさん:2005/06/24(金) 21:37:18
>>893
LNK4089をヘルプで見ませう。それで解決します。
896デフォルトの名無しさん:2005/06/24(金) 22:31:58
>>893
ABCDE.dllのインポートLibがリンカに渡されたけど使わなかったよ、というwaring。
897デフォルトの名無しさん:2005/06/24(金) 22:46:02
つまりABCDE.dllをリンクしないように指定すれば、
ほんの少しだけリンク速度が早くなるってこと。
気にならなければ無視しても無問題。
898デフォルトの名無しさん:2005/06/24(金) 23:37:40
ところで、皆さんは、自宅でプログラミング打ってますか?自分、
プログラミングを家でやりたいと思っているんですが、どんなコンパイラが
いいか知りたいんですけど、ちなみに、c言語です。
899デフォルトの名無しさん:2005/06/24(金) 23:42:24
>>898
Visual C++
尤もここがVisual C++のスレだからというのもあるが。
900デフォルトの名無しさん:2005/06/25(土) 00:04:06
VC6.0の出来があまりに良すぎて、.NETに以降できない俺様が来ましたよっと。
901デフォルトの名無しさん:2005/06/25(土) 00:38:47 BE:42144023-
.NETに以降したけど6.0が懐かしくて仕方がない俺が来ましたよ。
902デフォルトの名無しさん:2005/06/25(土) 00:42:58
なんかいまだに.NETにバグあるんじゃね?と
疑いがぬぐえないオサーンが来ましたよ。
903デフォルトの名無しさん:2005/06/25(土) 02:20:47
腰が痛い漏れが来ましたよ。
904デフォルトの名無しさん:2005/06/25(土) 10:14:42
>902
実際いくつもある。2005に期待して待ってる。
905デフォルトの名無しさん:2005/06/25(土) 14:12:55
>895
>896
>897
それが、ヘルプを見て大体意味は見当がついて、リンクは切った
はずなのですが。プロジェクト>設定>リンクのところでライブラリの
リンクを消すだけじゃだめですか?ビルドでは警告は出ないのですが、
リビルドすると警告が出てしまいます。
906デフォルトの名無しさん:2005/06/25(土) 14:14:02
CマガにVC++が収録されていると聞いて喜び勇んで買って、2005βだと後で気づいた俺が来ましたよ
907デフォルトの名無しさん:2005/06/25(土) 15:21:43
Windows2000でVisualStudio6.0SP6を使っているのですがVC++で

ComboBox に項目が追加できません。
方法1)プロパティ開いてデータの入力
方法2)InsertStringで項目を追加

このどちらも、項目を追加できないです。
ちなみに、WindowsXPSP2でVisualStudio6.0SP6で同じことをやってみたら
ちゃんと項目の追加できてました。
あと、Windows2000でVS6.0にSP6当ててないPCで試したところちゃんと動きました。

ということは、SP6のバグなのか。詳しい方いますか?よろしくです。
908デフォルトの名無しさん:2005/06/25(土) 15:32:23
>>905
リリースブィルドとデヴァッグブィルドとゴチャにしてない?
909Why? ◆ouWMQKaTMk :2005/06/25(土) 15:33:53
どこで質問すれば良いのか分からないので、取りあえずここで。
アセンブラからCの関数”Hello”を呼び出したいのですが、エラーが沢山。
以下、アセンブラと関数Helloのソースを張ります。
#include <stdio.h>
int Hello(void)
{
printf("HelloGikos");
return 0;
}
//Cのソースはここまで。
910Why? ◆ouWMQKaTMk :2005/06/25(土) 15:34:32
;アセンブラのソース1/2
[ORG 0]
Bits 16

jmp 07C0h:RealMode_to_Protected;


RealMode_to_Protected:
proc near
push bp
mov bp,sp
cli
mov eax,cr0
or eax,1
mov cr0,eax
Bits 32
jmp Protecting

911Why? ◆ouWMQKaTMk :2005/06/25(土) 15:34:51
Protecting:
db 0eah
dw offset Set_CS
dw 08h
jmp Hello

Set_CS:
mov ax,10h
mov ds,ax
mov es,ax
mov ax,18h
mov ss,ax
pop bp
ret
;ここまで。
ズレは仕様です。気にしないで下されば幸いです。
912デフォルトの名無しさん:2005/06/25(土) 15:46:56
>>909-911
まさかVisual C++でやろうとしているのか?
913907:2005/06/25(土) 15:56:46
自己解決しますた;

コントロールのサイズを変更していなかったです。
OS等の種類によってサイズ変更していなくても自動的に調整してくれる模様。
914デフォルトの名無しさん:2005/06/25(土) 16:00:58
>>909
スレ違い。
アセンブラすれを探すべし。


…しかし、関数呼び出しは call じゃなかったっけか?
いやまぁ、詳しく知らんのだけど。
915デフォルトの名無しさん:2005/06/25(土) 17:05:57
>>909
VCなら
__asm call Hello
916デフォルトの名無しさん:2005/06/25(土) 17:08:46
そもそもWin上でcr0なんてさわれるわけ無いだろ。
917デフォルトの名無しさん:2005/06/25(土) 21:47:26
C言語+Windows APIを使っているのですが、
最大化やウィンドウのリサイズを禁止するにはどうすればいいんでしょうか?
最小化はそのまま使えるようにしたいのですが…
918デフォルトの名無しさん:2005/06/25(土) 21:56:08
919デフォルトの名無しさん:2005/06/25(土) 22:01:53
スレ違いでしたか。すいません。そっちで聞いてきます。
920デフォルトの名無しさん:2005/06/26(日) 03:16:28
猫で勉強してたら長い旅に思えてきた
C言語ぐらいがちょうどよかったな。。。
921デフォルトの名無しさん:2005/06/26(日) 03:46:02
>>920
C++は破綻してるよ。例えば、
class MyBase {...};
class YourBase : public MyBase { ... bool IsYourBaseBelongToUs(); };
vector< MyBase > vec;
vec.push_back( dynamic_cast<MyBase>( YourBase(...) ) );
オブジェクト指向言語で、これでスライシングが起きてアウトはダメでしょ。
C言語的な感性で言ったら当然アウトなんだけど。
スライシング回避のためにインスタンスへのポインタを保持するっていうのは小手先のハックでさ、
プリミティブな設計がハックだと、ハックを使わざるを得なくなるっていうしわ寄せの例。
922デフォルトの名無しさん:2005/06/26(日) 06:39:35
920の書き込みから何で921のレスになるのかサッパリ分からんのだが…
923デフォルトの名無しさん:2005/06/26(日) 08:09:01
どう見てもイカレてるヤツだからそっとしておいてやってくれ
924デフォルトの名無しさん:2005/06/26(日) 08:37:42
>>921
そこ、dynamic_castの使いドコじゃないよ。

>>920
猫のC++は特に良くないからほか行け。
925デフォルトの名無しさん:2005/06/26(日) 09:21:26
おいおい、自分がろくなC++書けないからって僻むなよ
926デフォルトの名無しさん:2005/06/26(日) 14:57:02
ハックとか言っちゃって恥ずかしいな
927デフォルトの名無しさん:2005/06/26(日) 17:14:25
>>921は語りたくてしょうがなかったんだろう。
でも次からはチラシの裏な。
928デフォルトの名無しさん:2005/06/26(日) 18:27:43
そりゃ、基底クラスで配列とるからだろ。
500mmlのビーカー買って来たのに、1L水を入れようとして「入らない!」って怒ってるようなもんじゃん。
929デフォルトの名無しさん:2005/06/26(日) 18:28:42
>>921
言語は道具。
正しく使わずにクレームをつけるのはクレーマー。
930デフォルトの名無しさん:2005/06/26(日) 18:31:55
500mml
931デフォルトの名無しさん:2005/06/26(日) 20:28:27
mmlっつーとテキストで演奏データを記述するアレか
932デフォルトの名無しさん:2005/06/26(日) 22:36:45
Visual C++ 6.0でペイントツール作ってみたいんですが、まずなにすればいいんでしょうか?
933デフォルトの名無しさん:2005/06/26(日) 22:40:46
>>932
ペイントツールを実装するには何が必要かを考える。
934ゆぅ:2005/06/26(日) 22:48:50
コンパイルが通らないんですが原因がまったくわかりません。
どなたか優しい方教えてください(T。T)
(hoge.c)
#include"hogehoge.h"
intmain()
{
aaapoi;
return 0;
}
(hogehoge.h)
class aaa
{
public:
intx;
aaa()
{
x = 0;
}
};
(コンパイルエラー)
hogehoge.h(1):error C2061: 構文エラー : 識別子'aaa'がシンタックスエラーを起こしました
hogehoge.h(1):error C2059: 構文エラー : ';'
hogehoge.h(2):error C2449: '{'を見つけました(関数のヘッダーがないかもしれません)。
hogehoge.h(9):error C2061: 構文エラー : '}'
935ゆぅ:2005/06/26(日) 23:03:59
tabが消えてた(T。T)
(hoge.c)
#include "hogehoge.h"
int main()
{
aaa poi;
return 0;
}
(hogehoge.h)
class aaa
{
public:
int x;
aaa()
{
x = 0;
}
};
936デフォルトの名無しさん:2005/06/26(日) 23:06:40
>>935
&nbsp;と全角スペースしか使えない。
937ゆぅ:2005/06/26(日) 23:08:38
>>936
 ってなんですか?
938936:2005/06/26(日) 23:11:38
>>937
>>935はきっとtabを半角スペースに置き換えたんだろうなと思って。
939デフォルトの名無しさん:2005/06/26(日) 23:12:21
classを使うなら、拡張子はcppにしとけ。
940デフォルトの名無しさん:2005/06/26(日) 23:13:03
一応言っておくが、.hはそのままで、.c を .cppにする、ということだからな。
941ゆぅ:2005/06/26(日) 23:13:05
>>938
おっしゃる通りですね^^;
942ゆぅ:2005/06/26(日) 23:19:03
>>939,940
おーほんとだ。拡張子がcになってた
cppにしたらコンパイルとおったよ〜〜〜
ありがとんかつ
943デフォルトの名無しさん:2005/06/26(日) 23:29:55
Visual Studio .NET 2003 on windowsXPを買いました。
それまで独習でUNIXでCを書いてccでコンパイル、./a.outで実行してたのですが
このソフトは、printf("hello world");を表示するような簡単なものはいったいどうやって
作成、コンパイル、実行すればいいのでしょうか?
プロジェクトとかそんな大がかりじゃないんですけど^^;;
教えて下さい。
944デフォルトの名無しさん:2005/06/26(日) 23:34:08
調べたんですが、ペイント作るにはCDCとかいうのを使えばいいかもということくらいしかわかりません。
ペイントのサンプルプログラムとかないですか?
945デフォルトの名無しさん:2005/06/26(日) 23:35:12
>>943
IDEを使うならプロジェクトを作らないと始まらない。Win32コンソールプロジェクトを作れ。

今までと同じようにやりたいのならスタートメニューからMicrosoft Visual Studio .NET 2003→Visual Studio .NET ツール
の中にあるVisual Studio .NET 2003 コマンド プロンプトを使え。clでコンパイル。出来上がったプログラムがa.exeならaと打てば実行しだす。
946943:2005/06/26(日) 23:55:27
せっかくなんでIDEでやりたいんですけど
C++じゃなくてCはどうするんですか?
947デフォルトの名無しさん:2005/06/27(月) 00:06:04
>>946
プロジェクトを作ってから(略)して新しい項目の追加のダイアログボックスを開く。
その中からC++ファイルを選んでファイル名のところにa.cというように拡張子もつけてファイル名を入力すればよい。
948デフォルトの名無しさん:2005/06/27(月) 00:06:17
>>943からどうやってIDEでやりたいって読み取るんだ?
馬鹿かお前は。
949デフォルトの名無しさん:2005/06/27(月) 00:26:59
山のようにあるAPIをほとんど憶えられる気がしないのですが、
みなさんどうされているのですか?
950デフォルトの名無しさん:2005/06/27(月) 00:27:06
つーかファイル食わせろよ。
951デフォルトの名無しさん:2005/06/27(月) 00:29:14
>>949
必要な時に調べる。
一度使ったら、そのプロジェクトは残しておいて、再び使う時は引っ張り出してくる。
952デフォルトの名無しさん:2005/06/27(月) 00:30:46
>>949
容量の差こそあれ人間の記憶容量は有限。
どうやって覚えるかというより、自分にとって覚えるべき最低限のことを
覚え、覚える必要のないことは積極的に覚えない。
953デフォルトの名無しさん:2005/06/27(月) 00:45:37
情報そのものより情報を探す手段を覚えた方がいい
954943:2005/06/27(月) 01:22:41
>>947さん
できましたー!ありがとう!!
955デフォルトの名無しさん:2005/06/27(月) 01:29:22
だいたいやりたいことからAPI名を脳内で想像し、
検索にかけるとだいたいヒットする。
頻繁に使うAPIは自然と覚える。
引数は検索して見ればすぐわかる。
956デフォルトの名無しさん:2005/06/27(月) 04:37:26
Visual C++ 2005 Expressをダウンロードしたのですが、これの
説明書って製品版じゃないとついていないのでしょうか?
ボタンが多すぎて使い方が意味不明ですorz
957デフォルトの名無しさん:2005/06/27(月) 17:46:55
DLLを作ろうとしてますが、
DLLと同時にLibも作られるとのことですが、
なぜかDLLだけしか作られません。

何がだめなのでしょうか?
よろしくお願いします。
958デフォルトの名無しさん:2005/06/27(月) 20:24:18
>> 956
所詮はβですから。
959デフォルトの名無しさん:2005/06/27(月) 20:56:50
VC.netってプロファイラついてないんですか?
960デフォルトの名無しさん:2005/06/27(月) 21:12:50
CMyWndというウィンドウクラスを作りました。
単にAPIをクラスでラップしてるだけです。

ただ、
CMyWnd obj;
でウィンドウを生成すると、ウィンドウの中のコントロールなどが表示されるのですが、
CMyWnd* pObj;
でオブジェクトをnewしたあとウィンドウを作成すると、ウィンドウの中のコントロールなどが表示されなくなるのです。

これはどういう不具合なのでしょうか?
961デフォルトの名無しさん:2005/06/27(月) 21:15:04
>>960
お前さんの頭の不具合。
962デフォルトの名無しさん:2005/06/27(月) 21:20:39
>>961は社会不適合児だから相手にしちゃいけませんよ
963デフォルトの名無しさん:2005/06/27(月) 21:40:28
>>960
オマエさんのコーディングの不具合
964デフォルトの名無しさん:2005/06/27(月) 21:49:36
オリジナルコードの中身までは答えられんなぁ…。
どっかにソースUPしたら?
965デフォルトの名無しさん:2005/06/27(月) 23:55:12
>>957
ヒント:エクスポート
966デフォルトの名無しさん:2005/06/28(火) 12:06:08
>960
最後に

pObj->UpdateWindow()

すればどうよ?

967デフォルトの名無しさん:2005/06/28(火) 12:08:50
あぁなんだ、MFCのCWndからの派生じゃないのか。

フツーのWinApiラッパーを独自で作ったんなら、
コンストラクターを調べれ。
968960:2005/06/29(水) 19:12:16
newでオブジェクトを生成すると、メモリの初期化(0)はしてくれないことを知りませんでした。
宣言子によるオブジェクト生成(CMyClass obj;)の場合、メモリ内容は全て0に初期化されるようです。

その違いによるシステムの不具合でした。
コンストラクタで事前にメンバは初期化しておくことで解決です。

ご返答ありがとうございました。
969デフォルトの名無しさん:2005/06/29(水) 19:19:35
>>968
コンストラクタで変数を初期化するクセを付けておいて損はない。
970デフォルトの名無しさん:2005/06/29(水) 19:25:36
>宣言子によるオブジェクト生成(CMyClass obj;)の場合、
>メモリ内容は全て0に初期化されるようです。
グローバルなのか……
971デフォルトの名無しさん:2005/06/29(水) 20:34:13
>>968
は?クラスのメモリ内容0に初期化されてどうすんだよ・・・
あと、初期化されるかされないかに関わらず、明示的に初期化するもんだ
972デフォルトの名無しさん:2005/06/30(木) 00:06:16
>>971
だからそう反省してるみたいだし、追い討ちかけてどーすんだ。
973デフォルトの名無しさん:2005/06/30(木) 16:26:34
char a[5];
char b[1];
a[0]=4,a[1]=8,a[2]=4,a[3]=0,a[4]=9;
aの配列に入っているデータ5つを、並びを変えずにbの配列ひとつに入れるには
どうしたらいいのでしょうか?
b[0]=48409にしたい
974デフォルトの名無しさん:2005/06/30(木) 16:30:10
>>973
マルチうざい
975デフォルトの名無しさん:2005/06/30(木) 16:32:24
>>973
黙って移動するとマルチと思われて回答してもらえない恐れが多々ある。
一言断りを入れてきたまえ。

それと、向こうのレスは吟味したのかね。
・char b[1]とあるが、通常それには48409なんて値は入れられない。
・配列aに入っているのは本当に数値か? 数字文字ということはないのか?
せめてこのぐらいは聞き分けたまえ。
976デフォルトの名無しさん:2005/06/30(木) 17:15:22
数字文字?
977デフォルトの名無しさん:2005/06/30(木) 18:00:34
'1'とかそんなのだろ多分
978デフォルトの名無しさん:2005/06/30(木) 18:08:35
ワードみたいにワークスペースの背景を黒くはできないんですか?
979デフォルトの名無しさん:2005/06/30(木) 18:41:25
ワードみたいかどうかは知りませんができます。
980デフォルトの名無しさん:2005/06/30(木) 18:53:17
>>978
Windowsの配色の問題。
Windowsの配色の設定を変えると、各アプリに反映される。
981デフォルトの名無しさん:2005/06/30(木) 20:50:09
もしかして.net 2003だと、cout とかcin とか使えませんか?
iostream.hインクルードしててもコンパイラに怒られます。
ヘルプ見たら<iostream.h>じゃなく<iostream>とするように載ってましたが、そうしても動かず…。
HelloWorldで躓くとは情けないorz
982デフォルトの名無しさん:2005/06/30(木) 21:04:25
キーボードから5つの数字を入力して入力とは逆に表示するプログラム教えてください。
FOR〜NEXT使ってお願いします!
BASICで使えるプログラム教えてくださいm(__)m
983デフォルトの名無しさん:2005/06/30(木) 21:28:49
std::
984デフォルトの名無しさん:2005/06/30(木) 21:57:30
初心者ですがVC++.NETでの質問です。。。

コンパイルしたときのエラーでつまずいてしまいました。
みなさんは下記のエラーが出たとき、どのように対処されていますか?
2番目、3番目はいろいろキャストしてみたのですが。。。
1番目は対処の手段がわかりません。。。
lib関連なのでしょうか。。。

error LNK2001: 外部シンボル ""void * __cdecl memset(void *,int,unsigned int)" (?memset@@$$J0YAPAXPAXHI@Z)" は未解決です。

error C2440: '=' : 'char *' から 'char [132]' に変換できません。
配列型への変換はありませんが、参照またはポインタから配列への変換があります。

error C2440: '=' : 'unsigned char __gc[]' から 'BYTE [13]' に変換できません。
__gc 配列と Object * または Array * 間でのみ変換できます。
985デフォルトの名無しさん:2005/06/30(木) 22:27:46
こんばんは、よろしくお願いします。
なにもわからないまま、C++のコンパイラーだと思い、VC++.netを買い
参考書として、Win32API完璧マスタを買いましたが、
どうも、この本は、VC++6.0のようなのです。
リソースファイルの作り方が違うようで、少しも前に進みません。
VC++.net と VC++6.0は作り方がかなり違うのでしょうか。
986デフォルトの名無しさん:2005/06/30(木) 22:31:08
HELPで充分作れるよ
987デフォルトの名無しさん:2005/06/30(木) 22:38:21
そんな違いで躓いてるようじゃ先にすすんでも躓いてばっかだ
てか、いきなりAPI完璧マスタとか買わずにVCの本買えよ
988デフォルトの名無しさん:2005/06/30(木) 22:39:04
>>984
該当行を晒せ。
最初のはプロジェクトの設定を見直せ。
989デフォルトの名無しさん:2005/06/30(木) 22:49:31
>>986-987さんありがとうございます。
本を選ぶのが下手なのでしょうか。この本にたどり着くまでに、
ほかにも変なのを沢山買いました。
この種の本は、とても高いです。
聞きたかったのは、アップリケーションから
ダイアログを作るのではなくモジュールをかいて、作ることが、
VC++.netではできないのかなということなんです。
多分できないのでしょうね。
本買うのを検討してみようかと思います。
ヘルプは、何度も見ましたが、やはり、1からでは、
難しいです。
では、ありがとうございました。
990デフォルトの名無しさん:2005/07/01(金) 02:28:22
Cornuの螺旋をVisual C#で作りたいんですけど、Visual C#できるひといますか?よろしくおねがいします。ちなみに下のプログラムはVisual C++のものです。

int n, px, py, oldx = 0, oldy = 0;double x, PI = 3.14159265358979;
double f_sin(double a){ return Math.Sin((PI / 2) * a * a); }
double f_cos(double a){ return Math.Cos((PI / 2) * a * a); }
double simpson(double a, double b, double (*f)(double), int n){
double h = (b - a) / n;double p = a;double res = f(a) + f(b);
for (int k = 1; k < n; k++){p += h;
res += ((k % 2) ? 4 * f(p) : 2 * f(p));}
res *= (h / 3);
return res;}
int Width = 1024;int Height = 768;
void DrawCornuSpl(HDC hdc, double max, int mul, int n, double e){
HPEN hPen;HPEN HBlackPen;HPEN HBluePen;HBluePen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255));
hPen= (HPEN)SelectObject(hdc, HBluePen);int ox = 0, oy = 0, x = 0, y = 0;
double dx = 0.0, dy = 0.0;
for (double w = 0; w <= max; w += e){dx += simpson(w, w + e, f_cos, n);dy += simpson(w, w + e, f_sin, n);x = (int)(dx * mul);y = (int)(dy * mul);
if ((x != ox) || (y != oy)){MoveToEx(hdc, ox, oy, NULL);LineTo(hdc, x, y);MoveToEx(hdc, -ox, -oy, NULL);LineTo(hdc, -x, -y);ox = x;oy = y;}}
HBlackPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
hPen= (HPEN)SelectObject(hdc, HBlackPen);
MoveToEx(hdc, - Width, 0, NULL);LineTo(hdc, Width, 0);
MoveToEx(hdc, 0, - Height, NULL);LineTo(hdc, 0, Height);
MoveToEx(hdc, - 1 * mul / 2, 0, NULL);LineTo(hdc, - 1 * mul / 2, - mul / 2);
LineTo(hdc, 0, - 1 * mul / 2);MoveToEx(hdc, 1 * mul / 2, 0, NULL);
LineTo(hdc, 1 * mul / 2, 1 * mul / 2);LineTo(hdc, 0, 1 * mul / 2);}
991デフォルトの名無しさん:2005/07/01(金) 10:10:21
すいません
質問ですが、構文エラー : ')' が 'constant' の前に必要です。というエラーが出ますが、
このようなエラーが出る主な原因は何なのでしょうか?

よろしくお願いします。
992デフォルトの名無しさん:2005/07/01(金) 10:22:39
>>991
ソースを貼るのが一番。
993991:2005/07/01(金) 10:24:55
この部分が問題だと矢印がでます
void Create(char* pClassName,int x,int y,int h,int v,HWND hParentWnd);
994デフォルトの名無しさん:2005/07/01(金) 10:37:36
ヘッダ
995デフォルトの名無しさん:2005/07/01(金) 14:11:03
なぜその行末に;があるのだ
996デフォルトの名無しさん:2005/07/01(金) 19:54:34
Visual C++ .NET にて

template <typename T>
void func(T a);

int main()
{
func<int>(2);
return(0);
}

として、関数funcを別ファイルに定義すると、
↓リンクエラーが起きてしまいます。
error LNK2019: 未解決の外部シンボル "void __cdecl func<int>(int)" (??$func@H@@YAXH@Z) が関数 _main で参照されました。

同ファイルに定義すると、普通にコンパイルできます。
どうしてでしょうか?
997デフォルトの名無しさん:2005/07/01(金) 20:01:12
>>996
テンプレート関数はコンパイル時に実体化されないといけない。
したがって、別ファイルではダメ。
998デフォルトの名無しさん:2005/07/01(金) 20:20:35
>>997
早速ありがとうございます。
なるほど、別ファイルではダメなのですか。

では、テンプレートクラスを使用する場合、
ヘッダファイルに関数定義もする形で
使っていけば良いのでしょうか?
999ホームページ プロダクション:2005/07/01(金) 20:48:00
毎日がいそがしい。作り方が分からない。だけどホームページを作りたいというアナタ!当社が高品質でホームページをお作りいたします。
弊社は出来て間もないのではじめに5人という限定で無料ホームページをお作り致します。こちら→http://www16.plala.or.jp/mercigackt/
1000デフォルトの名無しさん:2005/07/01(金) 20:53:55
1000ですぅ〜〜
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。