[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 10/16 01:02 / Filesize : 178 KB / Number-of Response : 657
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

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

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

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

過去スレ、関連スレなどは>>2-5辺り。


167 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:07:04 ]
VC2003 を使っています。
STLのvectorを参考に、自前のクラスにイテレーターっぽい機能を付けてみようとして、
行き詰まっています。

以下のようなコードを書いているのですが、begin() がインライン展開されません。
vectorのbegin() はインライン展開されているみたいで、何が違うのか分からないです。

class B
{
public:
A* aa;
class iterator : public std::iterator<std::random_access_iterator_tag, double, ptrdiff_t, double*, double>
{
A* a;

public:
iterator( A* _a ) : a( _a )
{
};

~iterator( void )
{
};
};

B( void ) : aa( NULL ) {};
~B( void ){};
iterator begin()
{
return( iterator( aa ) );
};
};

168 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:35:23 ]
【初心者歓迎】C/C++室 Ver.54【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1210694402/


169 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:40:38 ]
>>167
まさか何の最適化オプションも指定していないなんてことはないよな。

170 名前:デフォルトの名無しさん [2008/05/22(木) 10:59:46 ]
VC++2008EEでツールチップを表示するにはどうしたら良いのでしょうか。
ググってもMFCのCToolTipCtrlしかヒットしません。

例えばステータスバーに収まり切らない文字列を表示したいのです。
.NETで例えるなら statusStrip1.ShowItemToolTips = true; に相当する処理です。

171 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:09:18 ]
>>170
ttp://msdn.microsoft.com/en-us/library/bb760246.aspx

172 名前:デフォルトの名無しさん [2008/05/22(木) 15:30:07 ]
>>171
ありがとうございます、取敢えずツールチップを表示する事は出来ました。
MFCの解説もエミュレートしているものは参考になりました。
まだステータスバーの位置のみで表示出来ませんが、もう少し頑張ってみます。

LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{
static HWND hTooltip;
static TOOLINFO ti;
switch (msg)
{
case WM_CREATE:
InitCommonControls();
hTooltip = CreateWindowEx(0, TOOLTIPS_CLASS, NULL, TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, g_hInst, NULL);
GetClientRect(hWnd, &ti.rect);
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hWnd;
ti.lpszText = L"ツールチップのテスト";
SendMessage(hTooltip, TTM_ADDTOOL, 0, (LPARAM)&ti);
SendMessage(hTooltip, TTM_SETTITLE, TTI_INFO, (LPARAM)L"タイトル");
SendMessage(hTooltip, TTM_SETTIPBKCOLOR, (WPARAM)RGB(221, 238, 255), 0);
(後略)

173 名前:デフォルトの名無しさん [2008/05/22(木) 17:05:34 ]
visual studio 2005のWindowsフォームアプリケーションで作成中です。

textBoxに入力制限をさせたいのですが、やり方がわかりません。
パスワードを入力するときみたいに、入力された文字が強制的に半角英数字になるように
設定させるにはどうしたら良いのでしょうか?

どなたかお願いします。

174 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:35:48 ]
変化があったタイミングで読んで変換する

175 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:47:34 ]
>>173
プロパティのPasswordCharの項目に*



176 名前:175 mailto:sage [2008/05/22(木) 17:48:21 ]
ああ、半角英数字か・・・
ゴメンゴメン。忘れて

177 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:46:22 ]
IMEをOFFにするか自分でキー入力読む

178 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:46:30 ]
作りたいプログラムがあり、何か言語を習得しようかと考えています
過去にまともなものをプログラムした経験はほとんどなく
HSPでぷよぷよの模写を遊びで作ったことがある程度です
言語としてはCOBOLやC++をかじった程度ポインタなどは概念を踏まえて
あるていど辞書を引きながら書くことはできます。
プログラムに関する技量などは自分で調べたりしながら向上させていこうと思っているのですが

何を本格的に勉強しようか悩みTurbo DelphiかVC++で行こうと考えて
とりあえずVC++2008無償を入れてみたのですが
初めて扱う上に初めての開発環境でソフトの機能や基本的な使い方を習得するだけで挫けそうです
VC++の勉強サイトなどをみても2008の環境で説明されている所が見つけられず
新規ファイルを作る段階でさえCLTとWin32の詳細な意味を調べてテンプレート形式もそれぞれ調べて…
書こうと思ってもサイトで提示されている項目が無いたびに色々調べたり
プログラムを書く時間よりもやりたいことをする手順なんかで悩んでる時間のほうが長いです

開発環境2008で勉強できるところは無いでしょうか_| ̄|○ il||li



179 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:29:33 ]
何を作りたいの?
HSPでぷよぷよ作れたなら結構スキルはあるんじゃない?

180 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:54:02 ]
おとなしくVC++2005とかBC++にしておけば?
今なら腐るほど解説ページあるぞ

181 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:00:43 ]
対象ウィンドウ内の詳細なデータを調べて
仮想でウィンドウの模写的なもの(できるだけの機能を残して)を作ることは出来ないかなと
ただ深く追求していくとプロセスメモリへのアクセスなどクラックの分野になってくるのかな?と思って…

CでもC++でもDelphiでもjavaなんでも他に使いやすい初心者向きのテキストエディタあるやろって話なんですが
覚えたころにはもう使われてませんでしたでは話にならないのでVc++にしようかなぁ…と…
ごめんなさい取り説よめでFAでしたね_| ̄|○ il||li


182 名前:178 mailto:sage [2008/05/22(木) 21:12:22 ]
↑178です

>>180
レス感謝 win32API使うならCやC++がよさそうなので他のバージョンなりなんなり探してきます
そしておとなしくします!

さようなら2008 ( ´・ω・`)ノ~

183 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:34:20 ]
物凄く不適切な回答を見た。

184 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:17:07 ]
VC++2008EEとVC++2005EEってそんなに違うものなの?

185 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:35:40 ]
両方使ったけど、ほとんど何も変わってない。



186 名前:デフォルトの名無しさん [2008/05/22(木) 23:40:54 ]
すみません。今Win32API勉強してるんですが、
WM_INITMENUが呼ばれるタイミングっていうのはどういうタイミングで呼ばれるのですか?

たとえばWM_PAINTは、Windowが隠れたりして再描画が必要なときに呼ばれるみたいですが
WM_INITMENUの呼ばれるタイミングがわかりません。

よろしくお願いします。

187 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:50:39 ]
いえいえこちらこそよろしくお願いします。

188 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:52:24 ]
>>169

Releaseビルドでやってるっす。最適化オプションはO2ですね。
vectorのヘッダーを丸ごとコピーして適当に名前を変えてクラスにしたら、
ちゃんとインライン展開されてるようで。どこがキーなのか分かりません。

189 名前:186 mailto:sage [2008/05/23(金) 00:07:38 ]
すません。ぐぐったら出てきました。

自己解決です。スレ汚しすません。

190 名前:173 mailto:sage [2008/05/23(金) 00:35:01 ]
>>177
IMEをDisableにしたら狙った通りに動いてくれました。
ご指摘ありがとうございました。

191 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:29:00 ]
>>186
トレースでもしりゃわかるよ

192 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:41:05 ]
>>188
templateでかけば普通インライン展開されるんじゃなかったけ

193 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:24:12 ]
VC++2003EEとVC++2005EE は結構違うよね

194 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:04:21 ]
エンタープライズだろ

195 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:10:18 ]
なんだ2005よりインストール楽になってるじゃないか
これで挫折するんじゃ救いようがないな

ja.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
Visual C++ 2008 Express Edition
Visual C++ 2005 Express Editionに続き2007年12月18日から公開されている。
ATLやMFCが付属しない点はVisual C++ 2005 Express Editionと同じであるが、
Windows Platform SDKが標準で同梱されるようになり、
Win32アプリケーションの開発に必要なWindows SDKを別途用意する必要がなくなった。



196 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:14:23 ]
・言語の仕様
・Windowsの仕様
・IDEの使い方
結局これらがわからないとダメなんじゃない?

197 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:17:37 ]
2005と2008だと、細かなところで2008の方が使いやすいな。
俺はInteliSenceで隠れたところがCtrlキーを押すと半透明になるのが一番
便利だな。


198 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:58:15 ]
>>197
知らんかった

199 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:18:18 ]
VC++2005AE購入・インストール済みで、2008EEを入れたんですが、
VC++2008版のATL・MFCは、2005の時のものと大きな差がありますか?
2008EEから2005のMFC・ATL使うと何か弊害が考えられるでしょうか?

200 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:59:45 ]
ライセンス的にどうなのよ

201 名前:デフォルトの名無しさん [2008/05/23(金) 16:25:09 ]
VC++2008EEでウィンドウを作成した際にタイトルバーのアイコンが正常に表示されず困っています。

例えばIDI_ICON1と言うアイコンをWNDCLASSEX構造体で

WNDCLASSEX wc;
(中略)
wc.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1));

などと指定しても、実際に表示されるのは吹き出しの中に"?"が書かれたアイコン(TTI_INFOと同じ)になってしまいます。
色深度に制限があるのかと思い24bitカラーのアイコンを使ったり実行ファイル用のアイコンをそのまま指定したりもしましたが症状は改善されません。
何が原因でしょうか。

202 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:38:42 ]
>>201
LoadIcon の仕様を確認するんだ。
1つめの引数NULLはWindows標準のアイコンだぞ。

203 名前:デフォルトの名無しさん [2008/05/23(金) 17:13:43 ]
>>202
確かめてみたら追加のアイコンはインスタンスハンドルを指定するんですね…見落としていました。

4bit透過色使用アイコンは作成するソフトによっては色抜けしなくなるようです。
GIMP2で漸く色抜けするアイコンが作成出来ました。
本当にありがとうございました。

204 名前:デフォルトの名無しさん [2008/05/23(金) 18:02:03 ]
Windows XP、 visual studio .NET(ver2003)でCを勉強し始めたものですが
コマンドライン引数を指定するようなプログラムのソースを書いて実行しても

ファイル名の指定がありません
Press any ker to continue

と出て、うまく行きません。
どうしたらいいですか?

205 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:08:27 ]
プロジェクトのプロパティのデバッグにコマンドライン引数の指定できるとこないか?



206 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:09:13 ]
>>204
デバッガの使い方の話だよね?
プロジェクトのプロパティの「デバッグ」→「動作」→「コマンド引数」が、
デバッガが動かすプログラムに与えられるコマンドライン引数。

デバッガで動かしてるんじゃないなら、コマンドライン引数を与えてあげてください。

207 名前:デフォルトの名無しさん [2008/05/23(金) 18:11:07 ]
>>204
それはなあ、おまえのパソコンがハング恩してるんだよ

208 名前:デフォルトの名無しさん [2008/05/23(金) 18:28:18 ]
>>205
>>206
コマンドライン引数を指定する場所は見つかりました。
当のプログラムが、コマンドライン引数で指定したテキストファイルの内容を表示するプログラム
何ですが、引数はテキストファイルの絶対パスでいいんですか?

209 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:29:57 ]
いや、、、それを決めるのは君のプログラムでしょ

210 名前:204 [2008/05/23(金) 18:36:28 ]
こういうプログラムです。

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fp;
char ch;
if(argc!=2) {
printf("ファイル名の指定がありません\n");
exit(1);
}
if((fp = fopen(argv[1], "r"))==NULL) {
printf("ファイルを開くことができません\n");
exit(1);
}
if((fp = fopen(argv[1], "r"))==NULL) {
printf("ファイルを開くことが出来ません\n");
exit(1);
}
while((ch==fgetc(fp)) != EOF) putchar(ch);
fclose(fp);
return 0;
}

211 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:41:11 ]
絶対パスでも相対パスでもいいよ。
カレントディレクトリがどこかわからないなら、とりあえず絶対パス入れとけば。

212 名前:204 [2008/05/23(金) 19:09:13 ]
>>211
絶対パスでやっても

ファイル名の指定がありません

となるんですが

213 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:20:55 ]
>>212
ひょっとして hoge c:\(途中略)Program Files\xxx の様になってないか?
上記例だと、"Program" と "Files\xxx" の間の空白がパラメータ区切りとみなされて
argc=3になってしまう。


214 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:21:58 ]
まず argc の値を出してみろよ。
っつーか、VC++使ってんならそのままブレークポイント置いてargvの中身見てみろよ。

215 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:23:28 ]
うまくいかない→質問
じゃあ進歩しないぜ



216 名前:デフォルトの名無しさん [2008/05/23(金) 22:29:09 ]
>>204
あれだ!そのプロジェクトと同じフォルダにテキストファイル置いてるか?なら、相対パスでOkだ。

それか、C:\に適当にテキストファイル作ってたとえば、C:\test.txtだったとすると
それで、hoge C:\text.txtってやってみな。それで表示がおかしかったら、if(argc!=2) ←これがおかしい。
argc!=1じゃないのか?なんでargc!=2にしてあるのかよく知らんけど。そこは、コマンドライン引数の個数をかくんだから
1個しか実行プログラムに引数を与えないなら、argc!=1ってしなきゃならん。

まあ、初心者のうちはそうやって七転八倒しながら覚えるって紋だ!!!!!!!!!

がんばりな。俺も、最初はコピー&ペーストすらしらないような人間がプログラムをやろうとしてたんだ。

いまじゃ、7年目で色々できるようになった。まあ、あれだ。がんがれ。

217 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:21:53 ]
>argc!=1じゃないのか?なんでargc!=2にしてあるのかよく知らんけど。そこは、コマンドライン引数の個数をかくんだから
>1個しか実行プログラムに引数を与えないなら、argc!=1ってしなきゃならん。

いやいやいやいやいやいやいや

218 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:31:40 ]
Express Edition には、リソースエディタがないようですが、
これってなくて大丈夫なんでしょうか?

219 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:01:49 ]
リソースファイルを全部手書きしないといけないってだけで、プログラム事態には支障はない。
可能か不可能かってのなら可能。リソースコンパイラはWindowsSDKにも入ってるから。

220 名前:218 mailto:sage [2008/05/24(土) 02:54:55 ]
>>219
なるほど、そういうことですか。
じゃあ、書き方さえ分かってればいいわけですね。
ありがとうございました。

221 名前:デフォルトの名無しさん [2008/05/24(土) 10:13:58 ]
Windowsアプリ作るにはWTLがないと氏ねるそうですが、VC++2008EEでWTL8.0を使おうにもアプリウィザードに組み込めません。
アプリウィザードを使わなくてもWTLは使えますか?
またWikipediaの解説を見るとATLがないとWTLは使えないようですが、これはWindows SDK for Windows Server 2008 and .NET Framework 3.5に含まれていますか?
選択画面を見る限りなさそうですが…。
因みに当然今は全てWin32APIでゴリゴリ書いています。

>>220
ResEditおすすめ。
IDEに関連付ければソリューションエクスプローラからダブクリで呼び出せるよ。
Unicode版もあるし。
ttp://www.resedit.net/

222 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:37:36 ]
>>221
そんなオサレ気なものなくたって、Win32APIがあればまだ5年は戦えるね。

223 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:27:50 ]
ATL7.1がWDKの方に入ってるよ。

224 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:41:13 ]
ちなみに、setup80x.js内の8.0を全部9.0に置き換えて実行すれば、
2008EEでも、WTLのウィザード使えるよ。

225 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:06:23 ]
support.microsoft.com/kb/943126/ja



226 名前:221 [2008/05/24(土) 16:50:33 ]
>>222-225
ありがとうございます。
取敢えずヘッダーとx86ライブラリをインスコしてからJScriptのファイルを書き換えて実行し、ウィザードが正常に動作する事を確認しました。
しかしその生成されたコードをそのまま実行してみたら、

fatal error C1083: include ファイルを開けません。'atlbase.h': No such file or directory

となってしまいました。
WTLとWindows SDKのインスコ先を見てもatlbase.hはありません。
WinSDKでまだ何か足りないものがあるのでしょうか。

227 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:06:31 ]
だからWDKに入ってるつーの。

228 名前:デフォルトの名無しさん [2008/05/24(土) 18:31:23 ]
すみません。Win32APIっていうのを勉強してるんですが、文字列変数というか
char型の配列名にszなんたらかんたらっていう変数名が多いです。たとえば
szClassName[] とかszText[]とか。。szってなんですかね??

あと、int型の整数を宣言するだけで、初期値を代入せずにいきなり使ってるんですが、
こういうのってありなんですか?なんか、大昔C言語を勉強したときはint i=0;と初期化してからじゃないと
コンパイルエラーが出た覚えがあるんですが。。

すみませんが、おしえてちょんまげ。

229 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:34:13 ]
>>226
Windows Driver Kit
www.microsoft.com/japan/whdc/DevTools/WDK/WDKpkg.mspx
サインインはいるが、Microsoft Connect Web サイトから無料で、isoイメージをダウンロードできる。

インクルードファイルパスに、"(DDKフォルダ)\inc\crt\atl71"
ライブラリファイルパスに、"(DDKフォルダ)\lib\atl\i386"を追加。

ExpressでのWTLウィザードは、そのままだとATL3.0用になるので、
stdafx.hの中の
#define _WTL_SUPPORT_SDK_ATL3
をコメントアウト。
なぜかATL7.1は、atlthunk.libがライブラリ指定されてないので、
リンクでエラーが出るなら、
リンカの追加の依存ファイルに、atlthunk.libを付ける。

いちいち、書き換えるのが面倒だったら、
WTLテンプレートファイルの方のstdafx.hを書き換えるか、
default.jsの
// Use ATL3 from SDK for VS2005 Express
の項をコメントアウトするといい。

// Linker settingsのところに、
LinkTool.AdditionalDependencies="atlthunk.lib";
で、atlthunk.libをリンク指定できる。




中途半端でほったらかしなWTLなんか使うより、
ATLだけでゴリゴリやった方がいいと思うけどね・・

230 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:41:28 ]
>>228
szはsが文字列、zがナル文字終端を表す。
いわゆるシステムハンガリアンというやつ。詳しくはググれ。

初期値を書かない変数は、あとで使うときに代入しているはず。
うっかりその代入を忘れたときには、
下手に0などで初期化しておくよりも、未初期化のままのほうが検出しやすいとされる。
そのため、(Win32プログラムに限らず)Cでは、
むやみに0初期化するべきでないというのが最近の傾向のはず。

もちろん、適切な値で初期化できるときはするべき。
未初期化変数はバグの温床だから、できればないほうがいい。

231 名前:228 mailto:sage [2008/05/24(土) 18:44:44 ]
>>230
どうもありがとうございます。よくわかりました。sが文字列でzがナル文字なるほろ。。

初期化についてもよくわかりました。

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

232 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:23:22 ]
> 個人用に設定されたコンテンツやベータ プログラムへの参加の機会をご提供するために、Microsoft Connect 上での皆様の活動がモニターされ、個人情報にアクセスされる場合があることについても同意するものとします。

この文章の示す個人情報とは何なのでしょうか。
ttp://privacy.microsoft.com/ja-jp/default.aspx
を読んでも特定出来ず、不安で登録出来ません。

233 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:02:29 ]
こんなところで聞かなくても
電話かメールで問い合わせできるはず

234 名前:デフォルトの名無しさん [2008/05/24(土) 21:35:42 ]
すみません質問なんですが、VC++で、

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e){
double A,B,C;
A = double::Parse(textBox1->Text);
B = double::Parse(textBox2->Text);
C = A + B;
textBox3->Text = "答えは" + Convert::ToString(C) + "です";


こんなプログラムを作ったのですが、textbox1と2に何も入れないでボタンをクリックすると
エラーが出てしまいます。textbox1と2に0をあらかじめ代入する方法も試したのですが、見栄えが悪いので、
何も数字が入力されていないとき、「入力してください」などのダイアログを表示する方法を教えてください。

235 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:27:35 ]
>>234
textBox1->Textが""ならdouble::Parseしないで、
入力を求めるMessageBoxでも表示すればいい。



236 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:28:43 ]
>>232
実際に何かやろうとすれば、
メールアドレスとか住所氏名を入力する欄が現れる。

237 名前:234 [2008/05/24(土) 23:21:55 ]
>>235
素早い回答ありがとうございます。

if(textBox1->Text == ""){MessageBox::Show("数字を入力してください");}
else{A = double::Parse(textBox1->Text);}

if(textBox2->Text == ""){MessageBox::Show("数字を入力してください");}
else{B = double::Parse(textBox2->Text);}

こんな感じで出来ましたが、結局Cを計算しようとしてしまいます。
Aが入力されていない時点で、プログラムを停止させることは出来るのでしょうか?

238 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:38:55 ]
>>237
全然内容読んでないけどAが入力されていなければexitすれば良いんじゃないかな?

239 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:56:19 ]
>>237
return


240 名前:デフォルトの名無しさん [2008/05/24(土) 23:59:21 ]
>>239
return 0; でやってましたw
大変参考になりました。また機会があればご指導お願いします。

241 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:19:54 ]
すみません、とあるライブラリを使用してプログラムを組んでいるのですが、
_ASSERTを使おうと思ったら
LNK2019: 未解決の外部シンボル _CrtDbgReport が関数 "void __cdecl ほにゃらら"(ちょめちょめ)で参照されました。
というようなリンクエラーが出てしまいました。

crtdbg.hはインクルードしてます。
ためしに新規で作成してみたプロジェクトでは_ASSERTが使えました。

何が原因なのでしょう?
エラーの詳細内容を読んでも理解できませんでした。

ライブラリを使用する際にリンクの追加など、
プロパティを何箇所か変更しています。
環境は Microsoft Visual Stdio. NET 2003 です。

242 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:25:43 ]
原因は分からないけど、リンクの問題っぽいから
リンクの設定をうまくいったのと同じにしたら?

243 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:28:18 ]
>>241
ランタイムライブラリがデバッグ版になってないんじゃないの?

C/C++→コード生成

244 名前:241 mailto:sage [2008/05/25(日) 14:57:31 ]
>>242-243
レスサンクスです。

>243
>ランタイムライブラリがデバッグ版になってないんじゃないの?

まさしくこれでした。
プロパティをいじっている時に構成を「すべての構成」にしていたので、
ランタイムライブラリをマルチスレッドに変えた時にも
リリース版のマルチスレッド設定にしてしまってました。

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

245 名前:デフォルトの名無しさん [2008/05/25(日) 16:54:36 ]
eMbedded Windows CE Visual C++を入れたら
「Virtual PC/Windows CE エミュレータ」で、 Windows が不安定になるのが発生します。
ってメッセージが起動のたびに出るようになって、修復する方法を書いてあるページを見つけたんですが、
ttp://support.microsoft.com/kb/891667/ja
日本語の意味が分かりません。ここの解決方法をどなたか翻訳してください。



246 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:31:08 ]
boot.iniに/executeオプション足せ、って書いてある。

247 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:52:03 ]
C++を最近始めたんですが、何度プログラムを組んでも言葉の意味がなかなか分からなくてこのままで大丈夫かなぁと思っています。
最終的にはゲームを作ることを目標にしてるんですが、このままで大丈夫でしょうか…不安で仕方がないです。



248 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:43:50 ]
>>247
振り向いたら負け

249 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:36:56 ]
ある画像A.bmpと、その背景にあたるB.bmpが別々にあって、
A.bmpを上に、B.bmpを下にして1枚の絵に表示させる

といった内容のモノを作りたいのですが(画像処理?)何か参考になるソース、もしくはHPがあったら教えていただけませんか?

250 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:52:45 ]
単純にB,Aの順番で描画すればいいんじゃない?

251 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:40:58 ]
すみません、質問は「リストのインデックスが範囲を超えています(0)」というエラー
が出るのですが。この(*)の*の数字の詳細が知りたいのですが。(-1とか6とかいろいろある)
よろしくお願いします。

252 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:52:02 ]
だから板違いだっつーの。

253 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 08:17:17 ]
なんだ 同じかww

254 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:01:46 ]
引数のところで書かれてる__outの目的がよくわかりません。
OUTというマクロはプリプロセッサで無かったことにされてるみたいですが・・・
検索してみても、日本語で解説してあるページを見つけられませんでした。
どなたかお願いします。

255 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:02:58 ]
日本語で質問お願いします。



256 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:08:23 ]
エスパーすると、その引数のところに結果を返しますよ
ということをプログラマに知らせるだけの記号。

257 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:24:22 ]
>>254
__outは/analyzeオプション用

258 名前:デフォルトの名無しさん [2008/05/29(木) 00:35:26 ]
すみません、教えてください。

win32環境で作ったVC++プロジェクトをマネージ環境に移行するためにはどうすればいいのでしょうか。

.NET用プロジェクトを作ってソースを1つずつ移していくしかないのでしょうか?

259 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 08:43:43 ]
ctrl+a

260 名前:デフォルトの名無しさん [2008/05/29(木) 23:15:29 ]
質問です
2008VC++で、GetWindowTextWで取得したCStringをdoubleに変換したいのですが、うまくいきません
コードの書き方を教えてください

261 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:41:08 ]
どう書いて、どううまくいかなかったのか書け。

262 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:46:42 ]
GetWindowTextW→CString→doubleのどの段階でうまくいかないのだ?

CStringよりもstd::stringにしとけ


263 名前:デフォルトの名無しさん [2008/05/29(木) 23:50:39 ]
double AA,BB,CC;
CString str,AAA,BBB,CCC;

GetDlgItemText(IDC_EDIT1,AAA);
GetDlgItemText(IDC_EDIT2,BBB);

AA = atof( (const char*)AAA.GetBuffer(0));
BB = atof( (const char*)BBB.GetBuffer(0));
CC = AA + BB;
CCC.Format(_T("%f"),CC);
str = CCC +_T("が表示されます。");
SetDlgItemText(IDC_EDIT3, str);

こんな風にしたんですが、EDIT1に11.11、EDIT2に22.22を入力すると
"3.000000が表示されます。"と表示されてしまいます

264 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:56:48 ]
うにコードで(const char*)がマズイ


265 名前:デフォルトの名無しさん [2008/05/30(金) 00:07:49 ]
すみません。何度も申し訳ありません。質問させてください。

自作のdllを遅延読み込みしたいのですが、
「LNK2001: 外部シンボル xxxx は未解決です。」となってしまいます。
具体的な手順が理解できなくて、
以下の手順でやってるんですが、何か勘違い、抜けなどありますでしょうか。

@dllはexeが作成されるディレクトリに先に作成されます。
Adllの関数のプロトタイプを列挙しているヘッダファイルを、
 exe側でプロパティでパスを追加した上でincludeする。
Bリンカの「遅延読み込み」に自作のdll名を入れる
Cexe側で「LoadLibrary(dll名)」を行う
Dexe側でdll内の関数を呼び出す。

よろしくお願いします。



266 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:13:57 ]
遅延読み込みはスタティックリンク
LoadLibraryはダイナミックリンク


267 名前:デフォルトの名無しさん [2008/05/30(金) 00:35:27 ]
>>264
ありがとうございます。解決しました

268 名前:デフォルトの名無しさん [2008/05/30(金) 00:53:42 ]
>>266
ありがとうございます。
ヒントを頂き、ちょっと調べてみました。
@LoadLibraryを消す
A「追加の依存ファイル」に xxx.lib を追加
  B呼び出し側「#pragma comment」とかする必要がありそう
    ⇒"遅延読み込み"モードだからいらない???
C肝心の.libが見つからない
  ⇒それくらいはどうにか自分で解決します。。。

早めに間違い・勘違い指摘いただけましたら
すごく助かります。。。


269 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:26:44 ]
6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催
ttp://system-trading.jp/news/index.php?ID=39
5月22日より登録受付開始、6月2日よりグランプリ開始の予定。


ttp://www.fx-gp.com/
●社長特別賞(シストレソフト買取価格) 10,000,000円
●シストレソフト部門賞 1位300万円 2位100万円 3位50万円
●トレード部門賞 1位300万円 2位100万円 3位50万円
●前期MVP賞 50万円
●後期MVP賞 50万円
https://www.click-sec.com/corp/guide/demo/

270 名前:デフォルトの名無しさん [2008/05/30(金) 10:47:51 ]
VC++ 2005 を利用しています。OS は XP Pro SP2 です。
次のコードを書くと、Debug ビルドでは問題なく動きますが Release ビルドでは
アプリケーションが強制終了することがあります。なぜでしょうか?

// ゼロでクリアされた構造体を用意する関数
template < typename T >
T zeroStruct() { T t; memset( & t, 0, sizeof( T ) ); return t; }

void main() {
 A a = zeroStruct< A >(); // A は構造体の型
}


271 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:17:48 ]
>>268
dllをスタティックにリンクするにはdllimportを使う。externだけじゃ呼べないよ。といってみる。
自作dllを作ったならdllexportを使ってると思うからその逆の使い方だ。

272 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:18:40 ]
またmemset()厨か。

273 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:20:30 ]
>>270
それだけの用途なら、そんな滓みたいなテンプレート関数作る必要なんてさらさらないじゃん。
A a = {0}で充分。

274 名前:270 mailto:sage [2008/05/30(金) 13:52:27 ]
>>273
 A a = {0} なんて書き方があったんですか。ありがとうございます。
 わざわざ関数呼ばずとも、こちらを使った方が断然良いですね。


275 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:09:04 ]
CHAR chStr[128];

wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK);

wisdom.sakura.ne.jp/system/winapi/win32/win5.html
これやると

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

っていわれるんだけど・・。なんか昔やってたソースを2008でやろうとしても同様にエラーがでる・・。
関数にcharのlong pointerの引数があったらそこに単純に"abc"ってやってもpointerわたしてるんだよね?



276 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:27:35 ]
作者じゃないから TCHAR じゃなくて CHAR を使う意図がわからない
下の方ではTCHAR 使ってるし

277 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:31:29 ]
だからそんな間違いや過去の遺物だらけのサイトで勉強しちゃダメだって。

278 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:57:13 ]
初心者には良いか悪いか分からないし(´・ω・)

279 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:43:44 ]
VC++ 2008で、windowsフォームアプリケーションのスケルトンを作成したところ、

LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM){

みたいなメインループ部分が見当たりません。
メインループさせたい場合、どのように書けばよいですか?

280 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:46:47 ]
とりあえず、.NET Frameworkについて勉強しようか。

281 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:59:23 ]
>>279
Win32アプリケーションのプロジェクトを作ればいいと思うよ。

282 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:07:50 ]
charとかLPSTRとかstrcmpとかstrcatとか_atoi_sとか
C#から入ってきたので文字列周りの処理が死ぬほどムズイ
文字列処理に特化して説明してるHPとかありませんか

283 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:12:31 ]
ソース読んでデバッガでトレースすれば理解できるよ

284 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:41:49 ]
lexical_castで。

285 名前:デフォルトの名無しさん [2008/05/31(土) 00:34:25 ]
VBAの処理時間短縮のためVC++でDLLを作って処理させようと思ってます。
VC++はいじったことないのでお勧めの書籍あるいはURL等ありましたら
教えて貰えませんか。



286 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 00:42:18 ]
>>285
とりあえず本屋で適当に選んできなよ

287 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 07:57:34 ]
>>282
std::stringを使えばいい

288 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:49:37 ]
>>279
CLR使わなきゃいい

289 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 12:33:09 ]
リソースキットツールってのは必要なの?

290 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:31:59 ]
gccの拡張機能のweakシンボルと同等のことを
VCでするにはどうすればよいでしょうか?

291 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:13:16 ]
2008なんですがコマンドラインからの引数を受け取って
動作をデバッグするにはどうしたらいいんでしょう?
具体的には

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

の引数をいろいろ変えながらデバッグしたいんですが・・・。

292 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:16:26 ]
と、思ったんですが、すごい勢いで解決しました。
すごいよMSDNむすどんむすどん。

293 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:01:16 ]
Thumb.dbのフォーマットを解説してるサイトとかって存在しますか?

294 名前:デフォルトの名無しさん [2008/06/01(日) 23:59:57 ]
VC++ 2005 でsprintfを使うと警告が出るのですが。
sprintf(msg1,"%d:%s",no,str);
警告 1 warning C4996: 'sprintf' が古い形式として宣言されました。 c:\_将棋\fj-sai\fai001\fai001\メッセージ送信1.cpp 33
この警告を出さなくする方法ありませんか?

295 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:07:29 ]
日本語ファイル名かよw



296 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:14:43 ]
>>294
#pragmaで抑制できたはず。
詳しくはググれ。

297 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:15:09 ]
>>294
sprintfを使わずに、boost::formatを使う。

298 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:21:24 ]
>>296
出来ました.ありがとうございます。
>>297
調べてみます。ありがとうございました。

299 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:42:52 ]
>>291

300 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:47:04 ]
>>291

メニュー[プロジェクト] -> プロパティ -> デバッグ -> コマンド引数

を変更すればおkなはず。

面倒なときはイリーガルだけど、

#ifdef DEBUG
char* argv_[2] = { "application", "" };

argc = 2;
argv = argv_;
#endif

みたいにでばっぐしてみればどう?



301 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 06:42:55 ]
>>292

302 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:12:08 ]
>>299
できるよ。
以上。
はい、次。

303 名前:MFC始めて2日目 [2008/06/02(月) 10:42:54 ]
ファイルの読み込みをやろうとして
void CDeepPurpleDoc::Serialize(CArchive& ar)
{
CString ss;
// CEditView は、すべてのシリアル化を処理するエディット コントロールを含んでいます。
reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);

if(ar.IsStoring())
{
ar << ss;
}
else
{
ar >> ss;
}
}
既存のテキストファイルを開こうとしたら
予期しないファイル形式
というエラーが出た。
シリアライズってなんだ?

304 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:12:43 ]
ttp://www.vipper.org/vip833994.jpg
VC++2008で、BとCの下のスピンボタンの値を足し算して、Aの下の部分に表示したいんですが
どのように記述すれば値を取得して計算・表示できるのでしょうか?

305 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:21:03 ]
スピンボタンの値を取得するサンプルならそこらじゅうにあるだろ



306 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:37:34 ]
>>304
Bの下、Cの下、それぞれのスピンボタンの値を取得し、それらを加算してから文字列に変換し、
Aの下に直接書き込むか或いはAの下に配置したスタティックテキストを書き換えれば宜しい。

307 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:37:05 ]
シリアライズってのは、「専用形式」で「なるべく簡単に」
オブジェクトを保存・読み込みする、みたいなコンセプト。
そこいらにあるファイルをデシリアライズするのは大変。

308 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:28:04 ]
>>271
遅くなりましたが、今、無事できました!
コンパイルもリンクもうまくいき、
ちゃんとdll内の関数も呼び出せました!
本当に、ありがとうございました。

309 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:41:31 ]
CStringってすごいな。これを使えば2バイト文字の扱いが楽だな。
これはMFCなのか、ATLなのか。

310 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:57:20 ]
今は共用になってる

311 名前:MFC始めて3日目 [2008/06/04(水) 14:32:28 ]
void CDeepPurpleDoc::Serialize(CArchive& ar)
{
reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar);

BYTE* pByteBuff;
CEditView* pEditView = ((CEditView*)m_viewList.GetHead());

if(ar.IsStoring())
{
CFile* pFile = ar.GetFile();
UINT size = (pEditView->GetEditCtrl()).GetWindowTextLengthA();
pByteBuff = new BYTE[size + 1];
UINT len = (pEditView->GetEditCtrl()).GetWindowTextA((LPTSTR)pByteBuff,size + 1);
pByteBuff[len] = 0;
pFile->Write(pByteBuff,len);
}
else
{

}
delete pByteBuff;
}
とやってファイルに書き込むと2回書き込まれる。
MFCがなにかやってるのか。


312 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:42:10 ]
SerializeRaw したあと同じものを自分でも書いてんの?

313 名前:MFC始めて3日目 [2008/06/04(水) 15:07:56 ]
SerializeRawの1行を削除したらエラーになった。
(ソースコードの else の行に矢印がついてプログラムがストップ)

314 名前:MFC始めて3日目 [2008/06/04(水) 15:16:44 ]
うまくいった。
(313 はデバッグの機能が働いただけだった)

>>307
>>312
ありがとう。

315 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:30:51 ]
VC++使い始めて間もないのですが、質問させてください

現在MSVC++2005ProのMFCを用いてソフトを作ろうと考えております
一次元での温度分布をグラフィック表示するものを作ろうと考えていて
物体の二点の温度を入力した際に、その間を一次関数的に温度が増減すると仮定した上で
その温度分布をモノクロの色の濃さで表現するようなものを作りたいと思っています

このようなグラデーション表示を描画するためにはどのようにすればよいのでしょうか?
よろしくお願いいたします。



316 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:58:18 ]
static void CALLBACK TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2){}
の中で、同クラス内のフィールドを参照したい場合どうすればいいの?
ふつーに参照しようとすると、
関数呼び出しには引数リストがありません。
って言われるんだけど・・・

317 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:57:54 ]
非staticメンバにアクセスしたいなら、クラスのインスタンスをどうにかして得る。

318 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:17:41 ]
そのためのDWORD dw1とDWORD dw2

319 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:01:21 ]
使用環境VC++2008 Expressで、win32コンソールアプリケーションのプロジェクトです
下記のコードをビルドして実行すると点数の表示が-184563みたいに変な数字になってしまいます
どうすればちゃんとしたのを作れるでしょうか?
Visual Studio 2008 コマンドプロンプトからコンパイルすれば思ったとおりの結果になります
#include<stdio.h>

int main(void)
{
int score;
printf("点数を入力してください:");
scanf_s("%d",&score);
if (score > 100) score = 100;
printf("あなたの点数は %d 点です。");
return 0;
}

320 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:18:11 ]
printf("あなたの点数は %d 点です。",score);


321 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:58:10 ]
>>320
できました
ありがとうございます

322 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:10:32 ]
C言語なら俺に聞け(入門篇) Part 29
pc11.2ch.net/test/read.cgi/tech/1212329099/

323 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 11:29:24 ]
>>317 どうやるの?

324 名前:デフォルトの名無しさん [2008/06/05(木) 20:28:29 ]
CStringってATLでも使えるようになったんだ
MFCじゃなくてもOkになってたとは

325 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:41:55 ]
>>323
CALLBACK関数には、クッキーと呼ばれる自由に使っていいパラメータが用意されている場合が多い。そこにインスタンスのポインタを乗せて渡したりする。





326 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:13:37 ]
textBoxに内部処理で得たchar型の2次元配列を表示させるにはどうしたらよいのでしょうか?

textbox->text = 配列変数名

だと型がcharをstringにできないとコンパイルエラーが出てしまいます。
環境は.Net2008です。
よろしくお願いします。

327 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:19:44 ]
>>326
どんな風に出したいのか詳細に決めたら、一気にプログラムを書く

328 名前:326 mailto:sage [2008/06/05(木) 22:42:30 ]
今思いついたんですけど、
ループで1文字ずつstring型変数に入れて文字列にしてからtextBoxに
入れるしかないんですかね?

329 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:56:16 ]
整形しなくてよければまとめて出せるだろ
文字列だって配列なんだし

330 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:58:38 ]
そもそもなんで二次元配列なんだよ

331 名前:326 mailto:sage [2008/06/06(金) 01:07:32 ]
読み込むデータが最大64個で
4ビット区切りの16進数が12個並んでるからです。
EE000FF00002みたいな。

それをテキストボックスに1行ごとに表示させたいんです。

332 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:02:58 ]
VC++っていうよりも、C/C++の話なのかもですが。

自作のクラスを.cpp/.hで作って、
それらのファイルをプロジェクトには追加せずに、
.hをインクルードするだけで使うことはできませんか?

イメージは、stdio.hをインクルードしてprintfを使う、みたいな感じで。

ツール→オプション→VC++ディレクトリ、でパスは通してあります。

宜しくお願いします。

333 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:09:07 ]
ライブラリにする

334 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 06:28:07 ]
全部hに書けばいいじゃんw

335 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 07:39:01 ]
www.auction.co.jp/mem1/item/mem_itm_item.asp?LOT=1138644



336 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:29:31 ]
>>332
printfと同じようにするなら>>333のいうとおりライブラリにする
ついでに、pragmaいれとけばlibのファイル名指定はいらなくなる
適切な場所にlibをおく必要はあるが。

337 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:38:52 ]
VC++で作ったexeファイルをネットワークドライブに置き、
繋いである他PCから起動するとエラーが発生します。
HDDにコピーせず直接起動させるのにはどうしたら良いでしょうか?
パソコン自体に設定するのではなく、ファイル自体に設定したいので
よろしくお願いします。


エラー内容
問題が発生したため、.exeを終了します。
ご不便をおかけして申し訳ありません。

338 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:12:33 ]
deki.psv.org/JoyToKey.htm
みたいなツールを作ろうと思い、keybd_eventでキーイベントを発生させてみたのですが、
MHFでキーイベントを認識してくれません.(JoyToKeyは認識する.)
どうすればよいでしょうか?

339 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:22:08 ]
ここって何でも相談室だっけ?

340 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:47 ]
>>333
>>336
ありがとうございます。
やっぱりライブラリにするべきなんですね。

なるべくならライブラリにはしたくなかったんですが、
とりあえずその線で行くことにします。

341 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:35:45 ]
>>339
答えられるものだけ答える側が判断して答えればおkなんじゃないの?

342 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:07:01 ]
遠まわしにスレ違いを指摘してやってるだけだろ

343 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:21:30 ]
MinGWにて作成したDLLをVC++にて呼び出そうと下記のようなソースをコーディングしました。
DLL作成側で生成したポインタのハンドラを呼び出し側に渡そうと
引数にて受け渡ししようとしていますが、
呼び出し側で確認をすると、ハンドラの値は0のままです。
DLL連携をすると引数受け渡しは不可能なのでしょうか?

■DLL作成側(MinGW)
●cpp
extern "C" __declspec(dllexport) int __stdcall GeoOpen(char* chrLicence, char* chrGeoDBDir, char* chrNormalize, long* lngHandler) {
Geo *geo = new Geo();
lngHandler = (long*)geo;
return 1;
}

■DLL呼び出し側(VC++)
●h
typedef int (__stdcall *GEOOPEN)(char*, char*, char*, long*);
●cpp
GEOOPEN geoOpen = (GEOOPEN)GetProcAddress(hGEOCODERDLL, "GeoOpen@16");
long* lngHandler;
if (geoOpen != NULL) {
int intRes = (*geoOpen)(chrLicence, chrGeoDBDir, chrNormalize, lngHandler);
}

344 名前:デフォルトの名無しさん [2008/06/06(金) 19:59:22 ]
そもそもDLL側で作成したポインタのハンドラ貰っても
またDLLに渡す頃には消失されてる・・・のかな?


345 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:05:56 ]
>>343
int型の値を引数で返すには、引数をint*やint&にするだろ。
それと同じで、long*型の値を引数で返すには、long**やlong*&にしないといけない。



346 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:41:03 ]
>>340
プロジェクトに属するcppファイル内で使用したいcppをインクルードするという方法を
ときどき使ってる。

347 名前:346 mailto:sage [2008/06/06(金) 20:42:35 ]
プロジェクトに属するcppファイル内で、
使用したいcppをインクルードするという方法をときどき使ってる。

// CppIncluder.cpp
#include "included.cpp"

348 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 08:20:23 ]
>340
DOS時代はコンパイルだけしといて
バッチファイル内のリンカのコマンドラインにobjファイル追加してた。

今はVCなのでプロジェクトに追加するだけ。

349 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:41 ]
まあそのうちprintfがどこに入ってるかを知ることになるだろう

350 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:36:34 ]
Visual Studio 使ってる場合で、ちょっとした言語仕様とか
確認するために簡単なプログラムを書いて試したい時、
どうしてますか?

351 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:58:15 ]
コマンドラインから cl してるな。俺は。

352 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:06:16 ]
テスト用に使ってるプロジェクトがある

353 名前:350 mailto:sage [2008/06/07(土) 15:31:37 ]
>>351
>>352
ありがとうございます。

コマンドラインで cl することにしました。
こりゃいいですね。こういうの無いと辛いです。


354 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:15:40 ]
const int size = (int)pow( (double)2, (double)10 );
int ary[size];

上記のようなコードを書いたところ、コンパイルエラー
error C2057: 定数式が必要です。
となりました。
sizeはconst指定なので問題ないように思ったのですが、
何か解決策はありますでしょうか?

355 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:40:36 ]
vector じゃだめ?



356 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:46:54 ]
>>354
pow

357 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:48:44 ]
>>354
#define POW2_10 (1024)

358 名前:354 mailto:sage [2008/06/07(土) 19:56:24 ]
そうですね。おとなしくvectorを使うことにします。
gccでは通ったのでVCでもと思ったのですが…。
ありがとうございました。

359 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:40:22 ]
int main()
{
CoInitialize(NULL);

// 内部でCOMを使うクラス
COMClass cClass

CoUninitialize();
return 0;
}
ってやった場合先にCoUninitialize();が呼ばれそうですが
cClassのデストラクタでRelease()出来ますか?


360 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:44:41 ]
>>358
一応言っておくが、VCではなぜダメかというと
C99に対応してないので可変長配列が使えないから。

361 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:52:21 ]
>>360
可変長配列が普通の配列と同じように宣言できるの?
それってヤバくね?

362 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:01:18 ]
>>359

int main()
{
  class inner_
  {
  public:
    inner_() { CoInitialize(NULL); }
    ~inner_() { CoUninstialize(); }
  }

  inner_ in;

  COMClass cClass;
  return 0;
}



363 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:03:21 ]
>>362
なるほど!ありがとうございます!

364 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:45:55 ]
>>358
可変長配列の話じゃなくて、constつけてるのになぜ定数にならないかという話だと思う。

365 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:52:15 ]
>>364
関数呼び出しは静的じゃないからな。
constexpr を待ってくれとしか。

まあ、2の累乗ならビットシフトでできるから
そっちでやればいいけどね。



366 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:25:26 ]
strcat(a, b);

ってやると aのサイズが1で
bのサイズが1を超えててもおKみたいなんだけど
勝手にaのサイズをかえてくれるってことでつか?
勝手にサイズ変えてくれるならどんなサイズでも問題ないよね?
って思ってどんどんstrcatしつづけるとそのうち原因不明のエラーが
で、aのサイズを増やすとエラーでなくなる

367 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:28:08 ]

バッファを超える文字列入れると
他の変数の置いてあるメモリを破壊するぜ。

368 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 08:43:30 ]
>>366
たまたまエラーにならなかっただけでしょう。

369 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 13:09:28 ]
>>367 368
トンクス やっぱりそれなりのサイズを用意しないとだめですか
そろそろstd::stringかCStringあたりを使うのを検討したいと思います

C#からきたのでString型でたいがいのことが済んでしまう環境に慣れてて
辛いです


370 名前:366 mailto:sage [2008/06/08(日) 16:16:52 ]
最初はつらいでしょうね。使える環境であればstd::stringの使用を勧めます。

371 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:35 ]
370は366でなく368

372 名前:デフォルトの名無しさん [2008/06/09(月) 11:01:21 ]
visual studio 2005のWindowsフォームアプリケーションで作成中です。

String^ str = "12345";

この文字列を数値に変換する方法を教えていただけませんか?


373 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:24:24 ]
int num = int::Parse(str) ;

374 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:10:37 ]
ありがとうございます。
無事解決しました。

375 名前:デフォルトの名無しさん [2008/06/09(月) 17:20:01 ]
質問させて下さい。
以下のような2つのクラスを作成しました。
目的は clbBクラス を clsAクラス に包含させるためです。
これをコンパイルすると C2061 エラーが発生します。
どなたか問題点とその対応を御教授いただけると幸いです。

//--------------------------------
// clsA.h
//--------------------------------
#include "clsB.h"
class clsA
{
public:
clsA();
virtual ~clsA();
private:
clsB m_b;
}

//--------------------------------
// clsB.h
//--------------------------------
#include "clsA.h"
class clsB
{
public:
clsB();
virtual ~clsB();
private:
clsA m_a;
}




376 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:23:43 ]
>>375
勉強しなおすことをお勧めするよ。(マジデ)

377 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:36:24 ]
無限に巨大なクラスインスタンスを作成しようとしている人がいると、飛んで来ました。
クラスが無限ループしている…ブルブルガクガク…

378 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:00:30 ]
【初心者歓迎】C/C++室 Ver.54【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1210694402/

C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/


379 名前:デフォルトの名無しさん [2008/06/09(月) 19:09:09 ]
恥ずかしながら375です。
これではどうなのでしょうか?だめなら↑に行きます・・・
よろしくお願いします。
//--------------------------------
// clsA.h
//--------------------------------
#include "clsB.h"
class clsA
{
public:
clsA();
virtual ~clsA();
private:
clsB m_b;
}

//--------------------------------
// clsB.h
//--------------------------------
class clsA;
class clsB
{
public:
clsB();
virtual ~clsB();
private:
clsA m_a;
}


380 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:19:14 ]
逝ってこい

381 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:51:18 ]
>>379
スレで聞いて解決というレベルの話ではなく>>376の言うとおりだと思うよ

382 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:38:23 ]
AはBを持っていて、そのBはAを持っていて、そのAはBをもっていて、そのBは(ry

383 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:33:13 ]
関数の中で文字列の長さを取得しようとしているのですが、
どんな文字列を入れても「4」しか返ってきません。
関数は
int func(char*strName, char strValue[])
の様にして、関数内で
int intValue1 = (int)sizeof(strValue1);
としています。
関数の外で(int)sizeof(strValue1)する分には正しい数値が得られます。
どうしたら関数内で正しい文字列の長さを取得できますでしょうか?


384 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:48:04 ]
strValue1って何を指してるんだか
strValueのことだとしても、関数の外(呼び出し元ってことだよね?)だろうが中だろうがsizeofでは文字列長は取れない
文字列の長さなら素直にstrlenでも噛ませばよかろう

つーか、VC++じゃないよね
>>378の方が勉強になるんじゃない?

ついでなので
>関数の外なら正しい数値が得られる
文字列長ではなくて多分配列長(文字列長+終端文字の1バイト)が取得できていると思われる


385 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:55:43 ]
>>384
ありがとうございました。

strlenでうまくいきました。

配列長が関数の引き数からは

うまくとれないのは渡し方の問題

ですかね?初心者スレで検索・質問

してみます。



386 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:33:12 ]
つくづく思うんだが、なぜ先に質問しようとか考えるんかね?
俺だったら自分で調べようと思うが

387 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:58:00 ]
ググったりすると、それに関連した事も書いてあったりして
知りたい情報に関連する知識も得られたりするよね。

388 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:00:00 ]
sizeofはコンパイル時に確定するが、
その関数じゃ実行時にしか長さわからんだろ。

389 名前:MFC始めて2週間目 [2008/06/10(火) 14:58:06 ]
CEditView で
Rect を指定してテキストを印刷するとき
行間値の調整はどうするの?

390 名前:デフォルトの名無しさん [2008/06/10(火) 15:08:20 ]
vs2005 使ってるんですが、デバッガ変数ウィンドウで
配列の全要素を並べて表示することは出来ないのでしょうか?
変数一個一個しか確認できないので配列の全要素の値を追いたいときにすごく面倒なんです


391 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:09:47 ]
配列名だけ書いておいたら勝手にツリー表示されないか?

392 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:17:07 ]
ああ勘違いしてました。
配列じゃなくて、ポインタにnewした複数個のデータの表示法でした。
某CWだとツリー表示することが出来るので、VSでも出来ないのかなと・・・

393 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:20:26 ]
最近答えたんだけど、このスレじゃなかったかな。
ウオッチ式のとこ、ポインタ,要素数 でやってみ。
p,100 とか

394 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:25:48 ]
すみません。何をしろと言ってるのかわかりません

395 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:27:57 ]
自分が何やってるのか書き出してみろよ



396 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:32:08 ]
>>393
言ってることがやっとわかりました。
ポインタ変数の名前の後に ,100 と追加すればいいんですね
いや、ポインタ、要素数でググれってことか勘違いしました
見れました。ありがとうございます。
しかし、これってただvc使ってるだけだと気付かないですよね?
ヘルプも見たんですけど、載ってなかったような・・・
こういう機能ってどこで知ったんですか?

397 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:34:10 ]
オレはヘルプたどってってみつけた。

398 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:39:36 ]
ありがとうございました。
自分の調査能力が足りないみたいです

399 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:45:10 ]
ちょっとわかりにくい位置かもね。
この話出たの2008のスレだった。
そこで出たリンクに↓があるのでみてみて。
ttp://msdn.microsoft.com/ja-jp/library/75w45ekt.aspx

400 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:49:17 ]
書式指定のところかあ
書式指定でどうこう出来るもんだとは全然思わなかったのでスルーしてました
ありがとうございました

401 名前:デフォルトの名無しさん [2008/06/10(火) 20:38:31 ]
VisualC++の頂点を極めあらゆる質問に答えて下さる皆さんに質問があります。

VS2003のVC++のGDI+なんですが、
Font font = new Font(dc, &logfont);
とするとフォントをインスタンス化できますけど、logfontのフォント名に
"@MSゴシック" のように横に傾くフォントを指定すると、うまく指定され
ないように思われます。

たとえば

LOGFONT lf1, lf2;
lf1.lfFaceName = "@MS ゴシック"
Font* font = new Font(dc, &lf1);
font->GetLogFontW(&graphics, &lf2);

というように確認してみると、lf1には確かに"@MS ゴシック"がセットされて
いるのに、lf2には"@"が外れて"MS ゴシック"がセットされてしまいます。

私は何を勘違いしてるでしょうか?

402 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:54:05 ]
ぐぐったらサンプルいっぱい見つかるから
動くの使えばいいんじゃないか?

403 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:25:47 ]
@が付くフォントと付かないフォントって何が違うんだっけ?^^;

404 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:28:47 ]
@が付くと90度振られる

405 名前:401 [2008/06/11(水) 09:30:19 ]
>>402
何というキーワードでググったんですか?



406 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 09:59:41 ]
名前よりも優先度の高い項目のセット忘れとか?

407 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:08:30 ]
つーか、変な省略しないできちんと検証したときのコード書けよ。

408 名前:ごー [2008/06/11(水) 14:49:52 ]
Visual C++ (2003) のデバッグモードで、
プログラム側からコールスタックの情報を取得することってできる?
__FILE__ と __LINE__ だけでは、その場所の情報しか取れないのが不満。

409 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:34:23 ]
できなきゃプログラム動いてない

410 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:33:26 ]
www.codeproject.com/KB/threads/StackWalker.aspx
こういう話か?

411 名前:デフォルトの名無しさん [2008/06/12(木) 22:14:37 BE:280248454-2BP(380)]
class test {
public:
test(void){};
~test(void) {};
};


#include <stdio.h>
#include "test.h"

int main() {
test x = new test();
printf("Hello World! \n");
}

1>c:\documents and settings\default\my documents\visual studio 2005\projects\test\test\main.cpp(7) :
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'test *' (or there is no acceptable conversion)
なにこれ?

412 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:16:31 ]
test* x = new test();
にしろといってるんだろ

413 名前:デフォルトの名無しさん [2008/06/12(木) 22:35:32 BE:1008893489-2BP(380)]
やだ! test x = new test(); にしたいびょん オペレ〜タ定義しないといけないにょ?

414 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:41:21 ]
GerDlgIntの戻りがおかしい

unsigned short ss =
(u_short)GetDlgItemInt(
hDlg,
IDC_TBX,
&FLG,
FALSE
);

と書いてるのにIDC_TBXに入力された値と違う値を返すときがある
数値が10000超えたあたりからおかしい


415 名前:デフォルトの名無しさん [2008/06/12(木) 23:26:03 BE:672595968-2BP(380)]
こういうのって ありびょん?
test x = *(new test());



416 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:37:06 ]
>>415
だめだぴょん

417 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:58:50 ]
>>414
エスパーさんの出番です

418 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:01:42 ]
つーか、65535を越えるとおかしくなるんだろ。

419 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:41:21 ]
>>415
#define test* Test

420 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:28:16 ]
これならおk。
test &x = *(new test());

421 名前:デフォルトの名無しさん [2008/06/13(金) 22:36:17 ]
>>411
test x = new test();

test *x = new test();

422 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:41:25 ]
今ずっとttp://www.kumei.ne.jp/c_lang/intro/no_54.htmこれを読んでます。
Visual C++でやってるんですが、ライブラリのファイル?の作り方を教えてください。

423 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:52:05 ]
ライブラリのファイルって?
.libのプロジェクトを作りたいってのなら、
Win32のウィザードでスタティックライブラリを選ぶだけだが。

424 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:20:11 ]
>>423
ごめんなさい。初心者なんで全然わかんないんです。
スタティックライブラリは選びました。プロパティでもスタティックライブラリって
なってるんですが、プロジェクトのファイルの中に.libのついたついたのは
Debugフォルダの中に1つだけあります。それでいいんですか?
.cppのはビルトできたのですが、ライブラリってそれをどこからでも使えるってことですよね?
もしかして新しいプロジェクトではそれをincludeしても使えないんですか?

425 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:03:16 ]
>>424
インクルードするのはlibファイルじゃなくてヘッダ。
ライブラリに入れた関数の、プロトタイプ宣言やらなんやらのヘッダは自分で作らないと駄目。
(あるソースの関数を、別のソースから参照する時と一緒)
libファイルはリンカで結合するものなんで、
VC++のIDEなら、プロジェクトの構成プロパティのリンカ→入力→追加の依存ファイルに
追加しとけばリンクしてくれる。

他にもソース中に、#pragma comment(lib, "hoge.lib") とか書く方法もある (VC++依存)。



426 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:13:34 ]
正直、自分用のプログラムをlib化する意味なんて
ほとんど無いと思うんだが。

427 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:59:09 ]
>>425
すいません。全くできません。上のページの次のページの
#include <time.h>〜 return (day_of_week[mytime->tm_wday]);
}を.cppに、int get_time(int *, int *, int *);とchar *get_date(int *, int *, int *);
を.hに、プロジェクト名は1です。構成の種類はスタティックライブラリ。
そしてprivateという別の(構成の種類は実行)プロジェクトのcppに
#include <stdio.h> #include "1.h"〜 return 0;}を、(hは空です)とやっている
のですが、1.hをincludeできませんNo file みたいなのになるんです。
そもそもどうなるのかさえわかりません。追加の依存ファイルも候補みたいな感じで
出てきませんし、手打ちで入力してもビルドしても同じ結果です。

428 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:55:24 ]
ライブラリの作り方がわからないんじゃなくて
ライブラリの使い方がわからないんじゃないか?

429 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:01 ]
質問です。一応、自分でも調べてみたんですが、分からなかったので・・・
長いので2つに分けます。申し訳ない。

/* windowsapp.h */
class CWindowsApp{
  /* 中略 */
public:
  void Initialize(HINSTANCE,INT,char*,int,int);
  bool CreateWindow(); // 53行目
}
/* windowsapp.cpp */
bool CWindowsApp::CreateWindow() // 48行目
{ // 49行目

  /* 中略 。やってる事は、WNDCLASSを作ってCreateWindowEx()を使って
   ウィンドウを表示させるという流れ */
}
/* script.cpp */
bool initialize(){
  /* 中略 */

  // ウィンドウの作成。成功or失敗をそのまま返す
  // g_WindowsAppInstは、既述したCWindowsAppクラスのインスタンス
  return g_WindowsAppInst.CreateWindow(); // 76行目
}

430 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:41 ]
/* エラー */
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : error C2059: 構文エラー : 'constant'
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : error C2059: 構文エラー : ','
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : error C2059: 構文エラー : ','
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2143: 構文エラー : ';' が '{' の前に必要です。
C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2447: グローバルスコープで中カッコ ({) が見つかりましたが、対応する関数ヘッダーがありません。

関数のオーバーロードは、引数が異なれば可能というのは調査済みだったのでやってみたら、こんなエラーが・・・
しかし、このCreateWindow()関数の名前を、CreateWndとかCreateWindowCという名前に変更したら、すんなりコンパイルしてくれました。
どうしてこのようなエラーが出るのでしょうか。オーバーロードの条件について、何か勘違いをしているのでしょうか・・・

431 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:33:59 ]
>>430
CreateWindowはマクロでCreateWindowA/CreateWindowsWのどちらかになるが、
さらにCreateWindowAとWの両方ともCreateWindowExAとWを呼ぶ関数マクロになっている。

つまり、関数でないCreateWindowに多重定義は無理だから、ほかの名前にするしかない。
たとえばMFCやATLみたいにCreate()とか。

432 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:42:03 ]
なるほど、そもそも関数のオーバーロードとは少し異なる原因だったのですね。
迅速な対応、ありがとうございました!

433 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:18:12 ]
>>427
プログラミング以前にフォルダとかパスとか判ってなさそう・・・

434 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:24:59 ]
>>433
すいません。
ようするにどうやったら違うプロジェクトで
あるプロジェクトで作った関数を使えるようになるかってことなんですけど。


435 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:57:49 ]
ソースファイルをプロジェクトに追加する。



436 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:06:25 ]
>>435
つまり同プロジェクト内で作った関数のソースファイル、それを
一般化?したヘッダファイルの一対がライブラリってことですか?

437 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:13:07 ]
ヘッダは何のためにあって誰がどこで使ってるかわかってる?

438 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:17:20 ]
>>437
いろんなソールファイル内の関数をメインのソースで使うためのまとめ役?橋架け役?
みたいな感じじゃないんですか?

439 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:21:54 ]
ググれ

440 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:22:25 ]
入門書ぐらいは読め

441 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:26:20 ]
スコープとか理解してるのかな?

442 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:29:17 ]
www.nitoyon.com/vc/tutorial/project/build_detail.htm
ビルドは何をしている? [VC++の使い方]

443 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:31:50 ]
とりあえず、>>427については、

lib と .h を使うプロジェクトのフォルダにコピーするか、
プロジェクトのプロパティの、
「追加のライブラリディレクトリ」と「追加のインクルードディレクトリ」を設定するか、
#includeと「追加のライブラリファイル」でパスまで指定するか、

好きなの選べ。

最後のは、あんまり推奨しないが・・・

444 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:00:09 ]
>>439めちゃググリましたよ 逆にヘルプでわからなくなった感じです すいません。
>>440入門者のゲームプログラム作る本とか他にも入門書はいくつかやりました。
>>441変数のスコープは知ってますが関数のスコープはわかってないかもしれません。
    ゲームプログラムの本の経験も含めて、1つのプロジェクト内でcppとhを対にしていくつも作る、
    それで各対の関数を引き出す?そしてメインで使うみたいなのはできてるんです。
    要するに疑問というか想像なのは、標準ライブラリみたいにcppとhの対が見えない、タグが無いというか・・
    内部にしまわれてるというか、そうゆう状態で、どのプロジェクトでもhをincludeすれば
    使えるようになる のを作るのがライブラリを作るってことではないのですか?
>>442ありがとうございます!わかりやすかったです。


445 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:10:42 ]
>>443
ありがとうございます。
プロジェクトのプロパティの、「追加のライブラリディレクトリ」に今なにも入ってない状態なんですが、
参照で見ていっても条件に一致するファイルはありません。となります。
そもそもここにどうゆう拡張子のものを追加できるかもわからないので、なぜ、どんな候補が無いかも
全くわからない状態です。



446 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:28:39 ]
なんで候補があるとか思うのか・・・

フォルダの指定だから、ファイルの候補は無くていいんだよ。

447 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:39:48 ]
>>446
今フォルダごと追加のライブラリ ディレクトリに指定しましたが、やっぱり<1.h>をincludeできません。となります。>>427
の状態です。

448 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:52:49 ]
ライブラリとインクルードは別物だし
全然別の場所に置いて使うのが普通

449 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:56:38 ]
釣りじゃないなら、
ライブラリ作成に挑戦するのは、
もうちょっとプログラミングそのものが
判ってからにした方がいいと思うよ。

個人的なライブラリなら、
別にソースファイルのコピーでも十分だし。


ちなみにヘッダをインクルード出来ないのは
ちゃんと.hファイルのあるインクルードディレクトリとファイル名を指定出来て無いだけで、
ライブラリとか関係無いからね。

450 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:04:41 ]
ライブラリとインクルードは全然別の場所に置いてあると考えて下さい。
たまたま同じ場所にあってもいいけど

451 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:20:10 ]
>>448
>>449
>>450
みなさんありがとうございます。ライブラリからincludeしたhの関数を探し出してくる
ぐらいに考えてたのですが、違うようですね。
もうちょっと総合的な本を読んでみたいと思います。

452 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:35:12 ]
いや違わないけど・・
(正確には、includeした関数じゃなくて、
 実際に呼び出しされてる外部関数を探し出す)

君がひっかかってるのは、それ以前の
ヘッダファイルとライブラリファイルの
ディレクトリ指定段階でしょ。

イロハで言えばイ以前だよw

453 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:22:51 ]
>>452
>ヘッダファイルとライブラリファイルのディレクトリ指定段階
こうゆう風に言うんですね。ありがとうございます。

454 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:12:25 ]
#include<1.h>

#include"1.h"
の違い理解してる?

455 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:19:35 ]
高学歴の俺の意見
お前と関わるにおいて高学歴であることが何の意味もなさない(位お前とかどうでもいい)
お前の前で本当の自分(頭がいいこと)でいてもメリットが無い。アホなふりしてるほうがマシ、失敗を笑いにできるから。
お前から吸収できることがないと思われてるってこと。知り合いとしての優先順位の潜在的低さがでてる。
まだ情で関わってもらえるだけ有り難いと思え。



456 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:28:35 ]
コンパイラ・リンカについて勉強するべし。

457 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:32:43 ]
>>454
知りませんでしたが、調べました。自作のhは""で囲むんですね。
ゲーム作りの入門本に似たようなのがあって、
ツール→オプション→ディレクトリを表示するプロジェクトで
ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、
そうすると、未解決のシンボルというエラーに変わりました。

458 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:48:26 ]
>ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、
ディレクトリを指定するところにファイルを追加するというのはどうかと(単なる記述ミス?)。

その関数が記述されてるソースをプロジェクトに追加するのが一番楽。

1.プロジェクト開いてる状態でソースファイルをドロップ。
2.開いたソースウィンド上で右クリック→プロジェクトへファイルの挿入。

これで出来んかな?

459 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:04:55 ]
>>458
ありがとうございます。コマンドプロンプト的なので軽く見た程度
なのでディレクトリ=ファイル=フォルダぐらいな感じの理解しかないんです。

したのやり方ですがもう少し具体的に書いていただけませんでしょうか?
それと既存項目の追加とは違うのでしょうか?

460 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:08:34 ]
いいかげんにしろよ。

461 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:22:57 ]
つーか、ゲームとか作る前にC言語とVCの使い方を習熟するのが先だよチミィ。
そのレベルで教えて君じゃ、ゲーム出来てもバグだらけで遊べんだろうよ。
何のために本やグーグル先生があると思ってるんだね?
味噌汁で顔洗って出直してこい。

462 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:52:50 ]
>>461
わっかりました!みなさんいろいろありがとうございました!

463 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:57:29 ]
習熟までは行かずとも、ある程度使えれば特に問題ないんじゃね


464 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:08:19 ]
>ディレクトリ=ファイル=フォルダ
ダメだこりゃ。

ディレクトリ=フォルダ≠ファイル


465 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:44:33 ]
ディレクトリとフォルダは違う



466 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:04:26 ]
フォルダとは 【folder】 - 意味・解説 : IT用語辞典

省略

WindowsやMac OSではフォルダと呼ぶが、UNIXやMS-DOSでは同様の概念を「ディレクトリ」と呼ぶ。

467 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:11 ]
Windows ではシェルから見える物がフォルダ、
シェルを通さず見える物がディレクトリと区別している。

468 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:55 ]
してねーよ。

469 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:06:10 ]
してるよ。

470 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:09:29 ]
パスをアイテムIDリストで扱う関数名ではFolderが使われ、
C:\みたいな形で扱う関数名ではDirectoryが使われている。

471 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:10:59 ]
してねーよ。
普通にNTFSフォルダとか言うから。

472 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:11:51 ]
フォルダとディレクトリの違い

一般的な解釈
Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。
二つは同義です。

細かく言えば
物理的に存在していて、絶対URI(file:///C:/WINDOWS/ とか)を使って場所を示せるのがディレクトリ。
ディレクトリに、あたかもディレクトリのように見える仮想的なものをあわせたのがフォルダ。
マイコンピュータに入っている「コントロールパネル」などは、フォルダではあるけれど、ディレクトリではありません。


Mac OS: フォルダ、ディレクトリ、パス名について
“フォルダ”とは、ディレクトリを見てわかるように表現したものです。
Finder(図 2 参照)と合わせてフォルダを使うことにより、ファイルシステムを見たり、操作することが理解しやすくなります。
Finder でフォルダからある項目を出したり入れたりすると、基本的なディレクトリが変更されます。
“フォルダ”と“ディレクトリ”という用語は、特に区別する必要がない場合は、同じ意味で使用されることがあります。


面倒だから同じ意味でいいよ。



473 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:13:16 ]
そろそろ>>468=471の弁明が欲しい所だな。

474 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:15:56 ]
>シェルを通さず見える物がディレクトリと区別している。

少なくともこれは間違いだな。

475 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:16:48 ]
この中に意味を理解し、普段から正確に使い分けている人がいるのだろうか…。



476 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:17:32 ]
>>474
シェルって何なのか分かってないんだろうな。

477 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:18:28 ]
>>476>>474がWindowsの言う所のシェルって何なのか分かってないという主張。

478 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:26:40 ]
判ってないのはお前。
ファイルシステムの段階で、フォルダって言ってるんだから、
Windowsシェルは関係無い。

479 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:02:12 ]
こうなると思ったw

480 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:09:52 ]
CreateDirectory
ディレクトリを作成します。ファイルシステムがファイルとディレクトリのセキュリティをサポートしている場合は、
指定されたセキュリティ記述子を新しいディレクトリに適用します。

BOOL CreateDirectory(

LPCTSTR lpPathName, // pointer to a directory path string

LPSECURITY_ATTRIBUTES lpSecurityAttributes

// pointer to a security descriptor

);



481 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:22:22 ]
ディレクトリっていってんじゃん

482 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:23:50 ]
誰もディレクトリとは呼ばないなんて言ってないような。

483 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:33:04 ]
プログラミング環境では慣習や過去からの互換性から、
Directoryを使ってるだけでしょ。
普通は、

>一般的な解釈
>Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。
>二つは同義です。

で問題無いよ。

484 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:40:57 ]
マイコンピュータをディレクトリとか言うのはナシだろ

485 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:51:04 ]
みんなオナホのために争わないで!



486 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:34:28 ]
>>484
Macの真似してフォルダにして無かったら、
パネルとか言ってたかもよ。
3.0時代からあった、コントロールのフォルダは
コントロールパネルだし。

487 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:55:49 ]
C++でグラフの描画をしたいんですがなにから手を付けていいのかまったくわかりません
アドバイスまたは参考になるサイトとかあれば教えてください・・・

488 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:04:27 ]
C++にグラフなんてない

489 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:28:11 ]
えーとそれはGUIがどうのこうのって話になってくるのでしょうか?


490 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:32:15 ]
棒グラフ
****************
*******
*************************
************

491 名前:デフォルトの名無しさん [2008/06/14(土) 22:24:44 ]
今度 C++ でタイピングゲームを作ることになったのですが、

if,printf,switch,while,int,char

これしかまだ知らないのにできるわけがない。。。


と、いうわけで誰か教えてください(つω・`)

492 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:28:21 ]
>>491
ifとwhileが出来れば大丈夫
プログラムなんてどんなえらそうなこと言っても順次・選択・繰り返ししか出来ないんだから。
それが分かってるんなら後はC++独特の方言を覚えるだけ。

C++の簡単な入門書とかサイトでじっくり勉強してみなよ

493 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:31:29 ]
>>491
あと、キーの読み取り方と、文字の表示方法さえ知ってれば何とかなる。

494 名前:デフォルトの名無しさん [2008/06/14(土) 22:41:26 ]
できればサイトのURLお願いします!

495 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:48:48 ]
最初に本を買うことを薦めるぞ。




496 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:34:09 ]
>>484
シェル特殊フォルダ

497 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:54:27 ]
フォルダは概念でディレクトリは実装ってことでいいよ、もう。

498 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:47:18 ]
違うからw

499 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:27:08 ]
マイクロソフトがMacに対するコンプレックスを解消するために、ディリクトリをフォルダーに読み替えたり、拡張子の表示を隠してみたりした。

500 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:13:51 ]
シェルネームスペースではフォルダ
ファイルシステムではディレクトリ

501 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:49:23 ]
ファイルシステムでもフォルダだよ

502 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:02:34 ]
FAT、HPFS、NTFS ファイル システムについて
support.microsoft.com/kb/100108/ja

フォルダなんかどこにも出てこないけど?

503 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:16:57 ]
ググればNTFSフォルダと言ってる例がいっぱいひっかかるが。

504 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:22:38 ]
マウントはレジストリ使うんじゃなかったかな?
よくトラぶって起動しなくなるらしい

505 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:33:53 ]
DOSやWindows 3.1やWindowsNT → ディレクトリ
Windows95以降 → フォルダ

NTFSはWindowsNTで作られた物だから、
解説ではディレクトリと言う事も多い。

今では、区別なくフォルダと言っている。
例えば、圧縮フォルダはNTFSの機能だけど、
あんまり圧縮ディレクトリとは言わない。



506 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:40:31 ]
つまりディレクトリとフォルダは違うものなんだ

507 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:48:49 ]
>>491じゃないけど作ってみたyo〜
#include <stdio.h>
#include <conio.h>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR sKey[] = _T("test") ;
printf("plz enter [ %S ] \n", sKey) ;
unsigned int nCount = 0 ;
for(;;)
{
if(::_getch() == sKey[nCount])
{
printf("hit! [ %C ]\n", sKey[nCount]) ;
if(_tcslen(sKey) <= ++nCount) break ;
}
else printf("miss\n") ;
}
printf("\(^o^)/") ;
return 0;
}



508 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:54:19 ]
あれだろ、
昔からDOSやWindowsでプログラミングやってる老人が、
ディレクトリをフォルダって言う事に抵抗感じるって事でしょ。

509 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:14:24 ]
もうフォルダとかディレクトリとかどうでもいいよおまえら
専用スレでも立ててほかでやれ

と思ってるやつが何人いるんだろう
一人もいないのか?

510 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:24:26 ]
どうでもいいよ

511 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:34:16 ]
他人の間違いに一々噛み付くのはアマチュア。
脳内で的確に修正し、さりげなく指摘できるのがプロ。
間違いを訳のわからん理論で正当化しようとするのは厨ニ病。

512 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:49:51 ]
>>511
で、君はそれのどれ?

513 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 01:30:08 ]
悪いのはいちいち名前を変えて同じ物をローテーションしてるMSだろ
俺たちゃ振り回される被害者だってばよ!

514 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:29:55 ]
Express Edition 使っているんですけど
ソリューションにソリューションを追加できないものでしょうかね
自分は MFC や ATL を使わないので
この機能のためだけに Standard 買うのもちょっと…

515 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 09:54:43 ]
Stdにだってそんな機能はありませんよ
異なる言語のプロジェクトをひとつのソリューションで扱えるだけ
なんでそんな要求が出るのかしらないけど
MSBuildあたりを調べればなんか代替案出てくるんじゃない?



516 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 10:19:18 ]
>>461
>何のために本やグーグル先生があると思ってるんだね?

何のために2chに初心者質問スレがあると思ってるんだね?
という発想。

517 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:06:46 ]
EEには無いがSEには有るというなら多分ソリューションフォルダのことだろう。

518 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:21:37 ]
VS2008 MFC使用です

CStaticオブジェクトに絵を描いています。
OnPaint()でLineTo()等を組み合わせて絵を描いているのですが、
ウィンドウの大きさを変えたとき、OnSize()で描画領域の大きさも変えて、絵も拡大縮小するような処理を行っています。
しかし、絵を拡大したとき、新たに描画されるところは拡大されて表示されるのですが、
既に表示されている部分の再描画が行われません。

これが処理を早くするための工夫(仕様?)であるところまでは調べられたのですが、
実際にどのように対処したらいいかがわかりません。

OnSizeでサイズを変更したときに全体が再描画されるようにするにはどうしたら良いでしょうか。

519 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:25:46 ]
>>518
Invalidateで全体が無効領域だということをシステムに教えてやる

520 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:26:40 ]
けちけちしないで全体を再描画すればいいだけじゃん。

521 名前:518 mailto:sage [2008/06/16(月) 18:48:09 ]
>>519
Invalidateを初めて知りました。ありがとうございます。
OnSizeでInvalidate(TRUE)
OnExitSizeMoveでInvalidate(FALSE)
とする事で対処しました。

522 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:43:55 ]
ダイアログクラス間での、構造体データのやりとりで悩んでいます。

[ダイアログA]から、作成した登録ボタンを押して[ダイアログB]を開き、
Typdef struct Data
{
int Number;
char Name[10];
}stDATA;
をそれぞれに用意した2つのエディットボックスで入力して登録するもの
なのですが、UpdateData(TRUE);で取得したデータを、[ダイアログA]の保存ボタンを
押したときにファイルに保存するための処理が作れません・・・。
[ダイアログB]でファイルオープンし、そのまま保存することならできる
のですが、ダイアログAの保存ボタンで保存したい場合は、構造体のデータ
をどのようにやりとりすればよろしいでのしょうか?

もしかしたら、MFC以前の問題なのかもしれないのですが、
C言語とC++を初めて1か月半なので、なにとぞよろしくお願いします。

523 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:06:50 ]
失礼しました。ファイルへの保存は、
FILE *fp でファイルを開いて、fprintfで保存します。

524 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:10:10 ]
fwriteでメンバを一個ずつセーブ
freadで一個ずつロード

525 名前:デフォルトの名無しさん [2008/06/17(火) 11:33:24 ]
Visual Studio2005のC++を使っています.
複数のフォルダーを取得するにはどうしたらいいでしょうか?

複数のファイル名を取得するにはCFileDialogを使って、Shift+
マウスクリックで複数ファイルを同時に選択できました.
それと同じようなことをフォルダーに対して行いたいのです。
BROWSEINFOを使って一個のフォルダは選択出来ますが、
同時に100以上のフォルダーを選択したいので、Shiftやcntlなどを
使ってさくっとやりたいです。

なお、フォルダー選択後、各フォルダー内にあるデータファイルを
順番に全て処理していきます.



526 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:36:10 ]
>>522
ダイアログBが生きてるなら、Bのパブリック変数なりゲッタなりで。
Bが消えるなら、消える前に上記。あるいは、AのポインタをBに渡しておいて
BからAのパブリック変数に代入なりセッタなりで。

527 名前:デフォルトの名無しさん [2008/06/17(火) 16:14:55 ]
VisualC++2005でMFCアプリケーションをダイアログベースで作成しています。

メイン画面からサブ画面を開くのに
 DoModal();
を使って開いているのですが、
このときサブ画面のエディットボックスなどに初期値を入れたいです。

メイン画面ではOnInit関数内でセットできたのですが、
サブ画面ではどこに記述して良いかわかりません。

初歩的な質問で申し訳ありませんがよろしくお願い致します。

528 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:19:44 ]
サブ画面のダイアログのクラスにOnInitDialog()を作れ。
クラスビューからクラス選択してプロパティでオーバーライドをクリックして
OnInitDialogを探せ。

529 名前:527 [2008/06/17(火) 16:48:10 ]
>>528
おぉ☆★☆
早速のレスありがとうございました!!

早々に解決できました。
ありがとうございましたm(_ _)m

530 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:24:34 ]
>>524
>>526
まだ完成はしていないのですが、無事解決しそうです。
どうもありがとうございました。

531 名前:デフォルトの名無しさん [2008/06/17(火) 20:59:57 ]
すいません。すごく今困ってます。
今先生から内緒でCDに焼いてもらったVisual Stadioなんですが、

#include <stdio.h>

void main(void)
{

printf("Hello");
}

これを実行すると

プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。

ってなるんですが、どうしたら良いですか??
お願いします。

532 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:06:54 ]
とりあえずMSにメールしといた

533 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:07:26 ]
環境変数のpathに %SystemRoot%\system32 を追加。
PCを再起動

コピーは良くない。逮捕されるぞ
Visual studio のアカデミック版は安いんだから、買え。
一番基本的なバージョンは無料ダウンロードできるんじゃなかったっけ?


534 名前:デフォルトの名無しさん [2008/06/17(火) 21:11:24 ]
>>533

あの・・・すいませんが
環境変数ってどこですか?;

535 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:18:50 ]
流石にこれにはレスしない方向にしたいな



536 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:21:23 ]
無料で使えるExpressEditionがあるのになぜこの程度の
事をするのにコピーしてもらうのかと、そもそも学校の課題とかなら
EEでも十分すぐる

537 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:36:30 ]
ていうか先生に聞けよw

538 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:04:52 ]
ていうか、学校名晒せよ。

539 名前:デフォルトの名無しさん [2008/06/17(火) 23:17:23 ]
>>531 これはさすがにまずいな、まして教職者がやる行為ではないね








TV用

540 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:21:19 ]
内緒って書いてあるな、 約束を破っちゃいかんよ

541 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:26:19 ]
これはすごい釣りですね

542 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:35:27 ]
国際学生証作ればMSから正規にタダでダウンロードできるだろう

543 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:36:00 ]
MouseButtons & Windows::Forms::MouseButtons::Right ;
Noneになるクソワロタ
あれ・・・?

544 名前:デフォルトの名無しさん [2008/06/18(水) 10:50:59 ]
こんにちは!
ボタン押しでファイル保存をしたいのですが、エクセルやワードを保存するときのように、
フォルダを選べて、名前をつけて保存したいです。
まず、その画面はどうやって表示したら良いでしょうか??

環境はVisualC++2005のMFCです。よろしくお願いします。

545 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:54:23 ]
CFileDialogで検索



546 名前:デフォルトの名無しさん [2008/06/18(水) 12:21:17 ]
クラスについての質問です。

class MakeWindow
{
public:
char Name[256];
int Width;
int Height;
int Bit;
int ScreenMode;
}

MakeWindow mWindow = new MakeWindow("A", 640, 480, 32, SELECT_MODE);

このようにしてオブジェクトを作成したのですが、
エラー 2 error C2661: 'MakeWindow::MakeWindow' : 5 個の引数を伴うオーバーロードされた関数はありません。(Line 6)

と表示されます。
受け取り側の変数も5個で設定しているのですが、何が原因なのでしょうか。

547 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:35:09 ]
コンストラクタでググれよ

548 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:50:11 ]
エラーをよく見ろ
'MakeWindow::MakeWindow'という関数はないと言ってる
そのまんま

549 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:54:28 ]
548はアホ
スレ違いだから終了

550 名前:デフォルトの名無しさん [2008/06/18(水) 16:01:45 ]
質問させていただきます。

Microsoft Visual C++ .NET
でアプリケーション (.exe)作成しました。

void main()を実行した所
実行画面が立ち上がりません。
出力の表示は
”XX.exe: ネイティブ' はコード 0 (0x0) で終了しました。”
となっています。

実行画面が表示されれば
Sleep(2000)が入っているの目視できるはずです。

ステップインで実行した所次のようになっていました。
・appmodul.cppの_tWinMainが実行
・crtexe.cのif ( !managedapp )でmanagedapp=0
・exit(mainret)が実行

ここで終了しているようです。
何とかmainの中身を実行させたいのですが何が原因なんでしょうか?

当方のスキル:社内プログラマ1年目
申し訳ありませんが何とかお力を御貸し頂きたいと思います。

551 名前:MFC始めて3週間目 [2008/06/18(水) 16:12:49 ]
CEditView でフォントを設定するのはどうするの。
ちなみに以下ではできない。

int CDeepPurpleView::OnCreate(LPCREATESTRUCT lpcs)
{
if(CEditView::OnCreate(lpcs) == -1)
return -1;

CDC* pDC = this->GetDC();
CFont screenFont;
screenFont.CreatePointFont(600,"MS ゴシック",pDC);
CFont* pOldFont = pDC->SelectObject(&screenFont);

return 0;
}


552 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:33:42 ]
>>550
MFCのプロジェクトを選んでいないか?main関数から始まるプログラムを作りたいなら、
Win32コンソールアプリケーションのプロジェクトを選ばないといけない。

あるいはMFCを使いたくてそうしているのなら、
プログラムの実行開始はmain関数でないというのがMFCの流儀。

553 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:40:41 ]
フォントの寿命がOnCreate終わるまでなんだろ

554 名前:550 mailto:sage [2008/06/18(水) 17:10:31 ]
>>552
ありがとう御座います。
MFCを使用しないため
Win32コンソールアプリケーションで
プロジェクトを組みなおした所
問題が解決しました。

ありがとう御座います。

555 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:15:45 ]
mag.autumn.org/Content.modf?id=20060122170124
SetWindowsHookExのサンプルをvc++2008でコンパイルしてみたんだけど、
フックされる気配がない・・・どこか間違ってるの?



556 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:25:08 ]
>>554
そういえばvoid main()は普通やらない。int main()にしろ。

557 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:44:35 ]
>555
そのあとに、NyaRuRuセンセが「CLR上でフック動かすとか無謀すぎ」
って書いてるのに、何でコンパイルしたの?

558 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:30:55 ]
>>543
MouseEventArgs^ a = (MouseEventArgs^)e;
a->Button == MouseButtons::Right
こうですか!わかりません><

559 名前:デフォルトの名無しさん [2008/06/19(木) 04:09:40 ]
MFCで使われるCrectをCLRでも使いたいんですけど代わりのものってありますか?

560 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:41:04 ]
代わりって言うと微妙かもしれないけどRectangleとかかな?

561 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:37:53 ]
>>551
まず、CFontが破棄されないように自動変数はやめてメンバーにでもして、
↓でどうよ。
int CDeepPerpleView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEditView::OnCreate(lpCreateStruct) == -1)
return -1;
screenFont.CreatePointFont(600, _T("MS ゴシック"));
SetFont(&screenFont);
return 0;
}

562 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 17:46:53 ]
TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
のdw1とdw2って、ドキュメントには予約って書いてあるけど、実際には使えないの?

563 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:51:27 ]
そこに値設定する方法無いのに、どうやって使うつもりなんだ。

564 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:38:13 ]
予約領域のある関数や構造体なんてイヤというほど有るぞ。

565 名前:デフォルトの名無しさん [2008/06/19(木) 23:02:34 ]
みなさんすみません。5日前からC++を始めた初心者です。
>383さんと関連するのかもしれませんが、下記のコードを実行すると、
期待した結果と異なる(結果は同じになると思うんですが)出力されます。
関数の引数を値渡しすると、初期化と同じとテキストに書かれているので、
こういう結果がなぜ起こるか分からないのです。

Visual Studio 2008 Express Edition
Windows Vista


void Print(char str[])
{
cout << "サイズは" << sizeof(str) << endl;
}

int main()
{
char str[] = "Test";
  cout << "サイズは" << sizeof(str) << endl;
cout << "サイズは" << sizeof("Test") << endl;

Print("Test");
Print(str);
}


結果:
サイズは5
サイズは5
サイズは4
サイズは4



566 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:16:26 ]
>>565
"Test"の文字列を長くしたらどうなるか見てごらん。


567 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:17:31 ]
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1213466622/
C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/


568 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:18:45 ]
はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/

569 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:40:00 ]
>>565
Print関数にはポインタを渡してるに過ぎない。
サイズが4なのはポインタのサイズ(32ビット)

570 名前:デフォルトの名無しさん [2008/06/20(金) 11:36:05 ]
>>569
>>566
565です。ありがとうございます。そういうことなんですね。
すっきりしました。


571 名前:デフォルトの名無しさん [2008/06/20(金) 11:43:06 ]
こんにちは!

現在VisualC++2005のMFCでプログラムを組んでいます。
Cのstr関数を使用しているのですが、下記のような警告が出ます。

warning C4996: 'strcat' が古い形式として宣言されました。

string.hを見ろって言われて見たのですが、
まだまだ未熟な為、よくわかりません。

一応動作は問題なくできるのですが、気になったので教えて頂けませんか?
自分としてはこの警告を、

問題はありませんが、古い形式で宣言されてるので新しい形式にした方が良いよ。

というニュアンスでとらえています。
それでOKでしょうか?また、OKな場合新しい形式とはどういう形式でしょうか?

よろしくお願いします。

572 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:53:54 ]
これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。

新しい形式は、strcpy_s を調べてね

573 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:54:41 ]
strcat だったか、こっちに対応するのはもちろん strcat_s ね

574 名前:デフォルトの名無しさん [2008/06/20(金) 14:45:50 ]
>>572
ありがとうございます。
確かに _s をつけたら警告がなくなりました。

ANSIではstrcatとかですが、
VisualC++では _s を付加した新しい形式になってるってことでいいんですか?

ちなみに
>これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。
やってみたんですが、警告は消えませんでした・・・orz

575 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 14:53:05 ]
ISOのCライブラリ標準にはなってるから、そのうちANSIにも入るかもしれないが、わからんな。
CRT のセキュリティ強化
ttp://msdn.microsoft.com/ja-jp/library/8ef0s5kh(VS.80).aspx



576 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:33:10 ]
標準入力をファイルへリダイレクトした時のデバッグ
(コマンドから[c:\hoge.exe < c:\hoge.txt]と入力した時のhoge.exeのデバッグ)
をするにはどうしたらいいですか?

プロジェクトのプロパティ→デバッグ→コマンドライン引数 に" < c:\hoge.txt"を足せばいいかと思ってやってみたのですが、上手くいきません。

577 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:38:56 ]
>>576
それでうまくいくはずだけど、どうなるの?

578 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:16:56 ]
>>577
hoge.exeの中身です↓
int _tmain(int argc, _TCHAR* argv[])
{
 std::string line;
 while (std::cin)
 {
  std::getline(std::cin, line);
  std::cout << line << std::endl;
 }
 return 0;
}

hoge.txtの内容が出力されるはずですが、何も出力されないのです。
(コマンドプロンプトから[hoge.exe(のフルパス) < c:\hoge.txt]とした場合は内容が出力されます。)
引数は
argv[0] --- hoge.exe (のフルパス)
argv[1] --- <
argv[2] --- hoge.txt
になっているのですが・・。

579 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:34:17 ]
それがコマンドライン引数で出来たのは
VisualStudio6以前だけ。

リダイレクトはシェルの機能なんで
コマンドライン引数には書けない。

580 名前:574 [2008/06/20(金) 17:42:07 ]
>>575
ありがとうございます。
参照させていただきました。

ネットだと、_CRT_SECURE_NO_WARNINGS を
ヘルプだと、_CRT_SECURE_NO_DEPRECATE を

定義すれば良いとありますが、どちらを定義しても警告が消えません。
ちなみに

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES を 1 として定義する

もやってみましたが警告が消えません。
もしかして定義する場所が違っていますか?
str関数を使用しているファイル内で定義してるのですが。。。



581 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:50:22 ]
>>580
多分、<string.h>をインクルードする前に
定義しないと駄目だと思うぞ。

582 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:51:46 ]
>>578
VC++のバージョンは?
こっちでやってみたら、VS2005だとそのまま動作して2008だと無理だな

583 名前:579 mailto:sage [2008/06/20(金) 18:06:32 ]
あれ、2008のヘルプにも出来るって書いてあるな。
>>579は取り消し。

584 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:07:43 ]
ヘルプには両方できるって書いてあるんだけど、2008はできなかった。
2005だとそのままでできるから設定がいるか、ヘルプが間違ってるか、どっちかかもね

585 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:22:52 ]
なんか、2008でも「デバッグ無しで開始」だとうまくいった。
バグっぽいな。



586 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:29:38 ]
Sleepとダミーの行置いてデバッグ無しで開始してからプロセスにアタッチしたら
なんとか動いたw

587 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 19:51:09 ]
VC2008で作成したDllをVC2005をインストールしているPC上から呼び出したところ
dlがありませんといわれました。
VC2005で作り直すとちゃんと呼び出せるdllができます。なにが原因でしょうか?

VC2008で作ったdll→VC2008のPCでは動くがVC2005では認識されない。
VC2005で作ったdll→VC2005のPCでもVC2008のPCでも動く

588 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 20:00:08 ]
他に依存しないなら単体で動く

589 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 21:22:39 ]
VC入れてないと使えないんじゃ普通の人には使えない

590 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:12:11 ]
featurepackどうですか?

591 名前:578 mailto:sage [2008/06/20(金) 22:34:52 ]
>>582
バージョンはVS2008です。

皆様の言うとおりデバッグ無しでは動作しました。
バグ?ですかね。あきらめつつ設定でできないか頑張ってみます。
レス下さった皆様ありがとうございました。


592 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:32:27 ]
>>587
dllがないなら、dll入れればいいじゃん


593 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:47:42 ]
DLL自体じゃなくてプロジェクトのことだというオチじゃないだろうな?
2005のプロジェクトは2008でも読めるが、逆はできんぞ。
まあソリューションとプロジェクトのヘッダ書き換えればほぼイケるけど。

594 名前:デフォルトの名無しさん [2008/06/21(土) 22:51:53 ]
本当にくだらない質問だとは思うんですけど

Visual C++っていうのはソフトなんだよね?
それはれっきとした売り物でフリーじゃないよね?
そしてプリグラムを勉強したかったら何かしらのプログラミングソフトを購入することが必要?

595 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 22:54:22 ]
>>594
フリーの開発環境もあるからググレ




596 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:08 ]
>>594
マイクロソフトのホムペを隅から隅まで確認しろ

597 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:56 ]
>>594
Visual C++ 2005/2008 Express Edition はフリー

598 名前:デフォルトの名無しさん [2008/06/21(土) 23:08:12 ]
ありがとうそれを落としていろいろ勉強してみるわ

599 名前:デフォルトの名無しさん [2008/06/22(日) 01:36:36 ]
>>597のを落として実際にプログラムをサイトからみたの拝借して打ち込んでるんだけど再現できない

#include <iostream.h>

void main()
{
int i;
i = 5 + 15;
cout << "計算すると";
cout << i;
cout << "になります。" << endl;
}

これなんだけどなぜだろうか?

600 名前:デフォルトの名無しさん [2008/06/22(日) 01:56:16 ]
>>599
iostream.hはC++標準の一部ではありません。
現代的なCompilerの多くではサポートされません。
VC7以降も同様です。

601 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 01:58:20 ]
#include <iostream>
using namespace std;

602 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 04:56:11 ]
都合上 using namespace std; してるところが多いけど
本当は using namespace は使わない方がいい。
今は気にしなくていいけどな。

603 名前:599 [2008/06/22(日) 07:52:34 ]
ということは<iostream.h>を<iostream>にかえれば大丈夫になるわけかな?

604 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 09:28:13 ]
ここはC++を教えるスレじゃないよ

605 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:14:40 ]
std::endl; を書くのがめんどくさいです(><



606 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:21:21 ]
>>605
>>601

607 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:25:51 ]
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1213466622/

C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/

はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/

608 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:31:19 ]
前から気になってたんだけどC++の話駄目だとこのすれってどんな話題が主なの?
Win32やMFCもNGだよね?
そうすると環境の設定とか?w

609 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:37:13 ]
>>608
よくわかってるではないか。

610 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:00:13 ]
VCの入門書よりC/C++の本を読んだ方がいいやつは、そういうスレヘ行った方がいいだろ

611 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:01:50 ]
そうだな

612 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:28:02 ]
>>606
でも>>602って(><

613 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:02:24 ]
std::e と打った時点でインテリセンス効いてない?

614 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:26:01 ]
>>612
今は気にするな

615 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:53:47 ]
大量に発生するC4146の山
VCは素晴らしいコンパイラ



616 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:36:17 ]
>>612
今は気にしなくていいけどな。

617 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 19:51:06 ]
今VC++2008勉強してるんだけど、これって標準のC++と全然違う?
string型使おうと思ったらPTSTRに変換できないって何だよそのエラーorz
最終的にはstringのdataメソッド使えば問題無かったけど・・・
Win32APIとか難しすぎるぜ!

618 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:12:20 ]
c_str 使え。

619 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:17:01 ]
PTSTR は Unicode 環境を対象とする設定でコンパイルする場合は
wchar_t* で typedef されるので wstring を使う必要があると思うんだが、
VC++2008 ってデフォルトで Unicode 環境を対象にしてなかったっけ?
今手元に環境が無いから何とも言えないが。

620 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:38:36 ]
>>618->>619
セックス!
今までPerlとかPHPとかスクリプト系のプログラミングしかまともにしたことが無かったから
処理系(コンパイラ?)によって方言があるっていうのがなんとも理解しづらいorz=3

とりあえずなんか小さなアプリをチョコチョコ作ってそこから方言の意味を勉強していくよ。


621 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:41:21 ]
これは方言ってわけではないね。
言語仕様が変わってる訳じゃないから。

622 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 05:28:16 ]
VC++には何故 C99 標準の vsscanf が無いんですか?

623 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 17:55:58 ]
visual studio 2008のWindowsフォームアプリケーションでアプリを作成中です
groupboxの中に複数のcheckboxを配置し、
同じgroupboxの中にあるボタンを押すと、全部のチェックボックスがチェックされる、という仕組みを作ろうとしています。

とりあえず、ボタンが押された時にグループボックス内のコントロール分のループを回すところまでは上手くいったのですが、
1.そのコントロールがチェックボックスと判定するにはどうすれば良いのか
2.そのコントロールがチェックボックスだった場合、それにチェックを入れるにはどうすれば良いのか
が判りません。

if(groupbox1->Controls[i]がチェックボックス){
groupbox1->Controls[i]->Checked;
}
…みたいな感じのことがやりたいのですが、どうすれば良いのでしょうか。

624 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:04:48 ]
キャストが成功するかどうかで判定すれば?

625 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:23:31 ]
>>623、 〜->checked=true; でした。
>>624
ControlからCheckBoxへのキャストのやり方がわからないので困っているのです。




626 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:52:11 ]
>>625
ttp://msdn.microsoft.com/ja-jp/library/cby9kycs.aspx

627 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:21:32 ]
>>626
出来ました!ありがとうございます。

628 名前:デフォルトの名無しさん [2008/06/23(月) 20:00:03 ]
C++で作った『ハイ アンド ロー』のゲームで
ハイスコアを記録させたいのですが、
どうやったら記録できるのでしょうか??

本当に初心者なんでよろしくお願いします。

629 名前:デフォルトの名無しさん [2008/06/23(月) 20:55:11 ]
>>628

class CScore
{

~~~~
public:
void SetScore(int score)
int GetScore(void)

private:
int m_HiScore = -1;

};

// スコア登録関数
void CScore::SetScore(int score)
{
if (m_HiScore < score) m_HiScore = score;
}

int CScore::GetScore()
{
return m_HiScore;
}

630 名前:デフォルトの名無しさん [2008/06/23(月) 20:59:18 ]
VC++ 2008 Express で、どのあたりまで作れるの?
ウィンドウズアプリケーション作れる?
製品版とどのくらいの差があるのかな。

631 名前:デフォルトの名無しさん [2008/06/23(月) 21:04:43 ]
>>630
このページが参考になるかと
ttp://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx

632 名前:デフォルトの名無しさん [2008/06/23(月) 21:08:22 ]
>>631
ありがd

633 名前:デフォルトの名無しさん [2008/06/23(月) 21:40:57 ]
>>629

何が書いてあるのかさっぱりなんですが・・・

634 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 02:44:07 ]
ワロタ

635 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 09:16:00 ]
>ハイスコアを記録させたいのですが、
>>628 記録方法で、3点
・ハイスコアの出し方
・画面表示のしかた
・ファイルへの書き方

ファイルへの書き方のような気がする。間違ってたら言って。



636 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 12:48:20 ]
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1213466622/

C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/

はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/


637 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 14:05:47 ]
>>636
このコピペ野郎いい加減うざいな

638 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:59:17 ]
>>635
ハイスコアの保存(ファイル)に一票

639 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:22:10 ]
>>635

何が書いてあるのかさっぱりなんですが・・・

640 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:30:39 ]
>>639 の頭の中がかさっぱりなんですが・・・


641 名前:デフォルトの名無しさん [2008/06/24(火) 23:32:04 ]
質問です
VC++のMFCで計算したデータを、
作成しているExcelテンプレートの特定の文字列に上書きすることは可能ですか?


MFCのexe → テンプレート起動 → 「kekka」に計算結果を上書き → 別名で保存(テンプレートはそのまま)

こんな感じで

642 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:40:20 ]
poiがいいよ

643 名前:デフォルトの名無しさん [2008/06/24(火) 23:59:51 ]
>>642
JAVA?のほうがやり易いんですかね・・
ググってきます

644 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:30:38 ]
DirectXでゲーム作るのが目的でVC++始めた
よくありがちな厨房ですが

Win32APIなプログラムでオセロ作るのに1ヶ月もかかった馬鹿な漏れに
MFCとは一体何なのか勉強すべきなのかを教えてください

645 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:47:08 ]
・ExcelをCOM経由で叩く。ライセンスとプロセスの残りには注意

・Excelを純な「表」として使ってるなら、ODBCドライバ。
 SQLの言う「テーブル」に当たらなければ涙目

・(Excel2007形式)、ドトネト3.0+OpenXMLSDK

・Java+POI

・Lotus123形式が扱いやすいってJoelがいってた



646 名前:641 [2008/06/25(水) 01:04:25 ]
>>645
Excelのバージョンでも違うみたいですね
ちょっとほかの方法を考えてみます。ありがとうございました

647 名前:デフォルトの名無しさん [2008/06/25(水) 02:30:52 ]
>>644
Studioに支援機能があったりして感じ大掛かりだけど、ぶっちゃけ、ただのWin32APIのラッパークラスだよ

だから、ちょっとしたツール作るには便利だけど、覚えたからと言って何か新しい事が出来る訳では無く、
知ってて困る事は無いけれど、知らないからと言って何か作れない訳じゃないって事で判断ヨロ。

648 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 03:58:27 ]
Visual Studio.NET2003を使っているのですが、リソースを開いたとき
プロパティが灰色で全く何も表示されなくなってしまいました。
戻し方はありますでしょうか?

もしくは、VCの設定を完全に初期状態に戻したいのですが、
どの辺をいじったら良いでしょうか?

649 名前:デフォルトの名無しさん [2008/06/25(水) 05:52:15 ]
>>644
MFCはWin32をラップするクラスを集めたライブラリではありません。
Windows上で動作する一般的なアプリケーションソフトは、win32API
だけで完成するものではありません。
簡単に理解できる例をあげると、ワードプロセッサーで範囲を選択し、
これをドラッグアンドドロップする。
ただこれだけの動作が、COMを必要とします。
そこで現在のMFCは、ビジネスソフトウエアにとって必要とされる機能を
含むフレームワークとして構築されています。
フレームワークが想定しているアプリケーションを開発する場合には、
とてもうまく機能すると思われますが、そうでない場合には不満も
あるでしょう。
フレームワークが対象としている開発対象の場合でも、標準の見た目や
コードの古臭さに不満を持つ場合も多いようです。
今後、それらの不満の一部が解消される可能性もあります。
Visual C++ 2008 Feature Pack について調べてみてください。

650 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:01:23 ]
Win32APIだけでもCOMは使えるんじゃなかったっけ?面倒なだけで。
MFCってのは、やろうとおもえば出来るが面倒だ、ってのを
わかりやすく、扱いやすいようにしたものだと思ってただ

651 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:11:34 ]
やればできるといっても現実的にはどうか
アセンブリ言語でWindowsアプリを作るみたいにつらい

652 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:38:53 ]
コメントで、

/*
*
*/

の部分が折りたためるのですが、「宣言」となります。
「宣言」の部分にコメントの概要を表示したいのですが、可能でしょうか?
可能なら記述の仕方を教えて下ください。環境は2008EEです。


653 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 09:40:38 ]
一度Win32アプリケーション プロジェクトでダイアログベースのアプリを作った後
MFCで同じものを作ると有難味がわかる。

654 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:07:11 ]
MFCはゲーム作るには要らないな
>>644にとって、ただの回り道でしかない

655 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:25:37 ]
ゲームつくるのにMFCほどクソなものはない



656 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:30:03 ]
ゲーム作るならC#がいいな






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef