■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

★初心者にVisual C++を教えるスレ★ Part8
251 名前:246 :03/10/06 21:41
>250
横(縦)軸の値をlogにするのはもちろんなのですが,
軸そのもののスケールをlogにしたいのです.

つまり,軸のメモリが1,10,100,1000と等間隔になるように
対数表示したいのです.

分かりにくい文章で,申し訳ないです.

252 名前:デフォルトの名無しさん :03/10/06 21:44
>>251
だったら、軸のメモリを1,100,1000のLogをとった値で線を引けばいいんじゃねーの?

253 名前:デフォルトの名無しさん :03/10/06 22:50
n番目のメニュー項目を消したいのですが
うまくいきません

HMENU hMenu = GetSubMenu(cs.hMenu,(n-1));
DestroyMenu(hMenu);

ではダメダメでした
どなたかご教示おねがいします

254 名前:デフォルトの名無しさん :03/10/06 22:57
>>246
セミログ・グラフ(片対数グラフ)
ログログ・グラフ(両対数グラフ)
どっちのことかいな?
どっちにしろ対数目盛りをlogの値のでとってけばいいのでは?
(もちろん、画面上の座標値に変換する必要がありますが)

255 名前:デフォルトの名無しさん :03/10/06 23:28
>>253
DeleteMenu

256 名前:デフォルトの名無しさん :03/10/07 20:59
もじゃーり

257 名前:253 :03/10/07 21:34
少し言葉足らずだったようです
ポップアップをまるごと消したいのです
DeleteMenuもやってみましたが
ポップアップ内の項目しか消せませんでした
何か指定の仕方があるのでしょうか

258 名前:デフォルトの名無しさん :03/10/07 21:41
仕事でVC++NETを使う必要が出てきたのですが、
VC++6とインタフェースがかなり違っていてとまどってます。
Static Libraryを作成するプロジェクトはどうやって
作成すればいいのでしょうか?
VC++6なら新規作成でStatic Library作成のプロジェクトが
あるのですが、NETでは見あたらなくてどうすればいいのか
わかりません。教えてください。

259 名前:デフォルトの名無しさん :03/10/07 21:47
>>257
DeleteMenu

260 名前:デフォルトの名無しさん :03/10/07 21:54
>>258
Win32アプリケーションからだったと思う

261 名前:デフォルトの名無しさん :03/10/07 23:41
質問です。
VC++.NETでCGIを作りたいのですが、
CGIを作る場合も、普通のプログラムと同じように
コンパイルしていいのでしょうか?
それともCGIの場合のやり方があるのでしょうか?
どうもUNIX系(gcc)の解説は見かけるのですが、Windowsの場合が
よくわからないです。あと、Windowsの場合はCGIの拡張子は
exeでいいのでしょうか?

262 名前:デフォルトの名無しさん :03/10/07 23:43
>>261
サーバーの設定による
普通はexeでいいんじゃない?

263 名前:デフォルトの名無しさん :03/10/08 00:04
ちょっと待て、CGIを作るって、WebServerからアプリケーションを呼び出す仕掛けを作るんじゃないのか?

264 名前:デフォルトの名無しさん :03/10/08 00:11
>>263
何を言っているのか理解できないが、少なくとも apache とIIS は
普通に EXE を呼べる。

265 名前:デフォルトの名無しさん :03/10/08 00:20
CGI=CommonGatewayInterface≒呼び出されるモジュール

266 名前:デフォルトの名無しさん :03/10/08 00:23
>>263
言いたいことはわかるが、まぁまぁ。

>>264
CGIを作るって行ったらApacheでいうところのmod_cgiを作るってことだな。
この板だったら特に。

>>265
それじゃあ意味わからんだろ。

267 名前:デフォルトの名無しさん :03/10/08 00:30
つーか、CGIアプリケーションのことをCGIと呼ぶんですよ。

268 名前:デフォルトの名無しさん :03/10/08 00:57
>>267
上の人は分かっていて意地悪なことを言っているんだろうけど、本当に分からなかったらそれはそれでアホだよね。

269 名前:デフォルトの名無しさん :03/10/08 15:02
あの〜すみません。
接続しているディスプレイの名前と、ディスプレイがいくつ接続されているかを
知りたいのですが、どうしたらいいでしょうか?
APIを調べたのですが、見つからなくて、レジストリから取得しないと
駄目なのかなと思ってるのですが、できればレジストリからでない方がよくて・・。

どなたかご存知でしたら教えてください。

270 名前:ごめん。 :03/10/08 16:26
puts( "How many displays were connected?" );
scanf( "%d", &display_count );
display_name = malloc( sizeof(char*) * display_count );
for( i = 0; i < display_count; i++ ) {
    display_name[i] = malloc( sizeof(char) * 100 );
    puts( "Input %d%s display name." );
    scanf( "%s", display_name[i] );
}

271 名前:デフォルトの名無しさん :03/10/08 18:34
>>270
すみません。
入力させるのではなく、プログラム内で調べて取得したいのです。

272 名前:デフォルトの名無しさん :03/10/08 19:01
EnumDisplayDevices

273 名前:デフォルトの名無しさん :03/10/08 19:18
まちがった。
EnumDisplayMonitors

274 名前:デフォルトの名無しさん :03/10/08 21:14
イロイロ処理を行って画面に文字などが出力されている画面で
また一番上から文字を出力させたい場合はどうすればいいんですか?

275 名前:デフォルトの名無しさん :03/10/08 21:19
>>274
まずお前がどんな方法でプログラムしてるのか言え!

276 名前:274 :03/10/08 21:31
どんな場面でもいいんだけど・・・・例えば
void main(void)
{
 printf("僕は・・・\n");
 Sleep(1000);
 printf("正常です");
}
こうやったら当たり前だけど、二個目のprintfは二列目に来るんですけど、
それを1行目に表示するのはどうやってやるのかなぁっと思って。
また一番上から描画しはじめるやり方があると思うんですがね・・・

277 名前:デフォルトの名無しさん :03/10/08 21:33
system("cls");が比較的楽かな。
まあ、その例なら、最初の\nを\rにするのが正解か。

278 名前:274 :03/10/08 21:38
>>277thx

279 名前:デフォルトの名無しさん :03/10/08 21:52
>>277
それはクリスってよむのかな。

280 名前:デフォルトの名無しさん :03/10/08 22:06
printf("あああああああああああああああああああああああああああああああああああああああ");
ってやると文字が小さくても作ってるとき横に長くなってスクロールしないと見れなくなってしまいます。
上のを作る上で見やすくするために2行にすることってできるんですか?

281 名前:デフォルトの名無しさん :03/10/08 22:43
>>280
\nを入れれば?

282 名前:デフォルトの名無しさん :03/10/08 22:45
長くて見えないのはソースの話で、
printf("ああああ"
"ああああ");
って事では?

283 名前:デフォルトの名無しさん :03/10/08 22:59
>>282
なるほど。そうやるのか。
char[3][100]={"あああああああああああああああああああああああああああああああああああああああ","い","う"};
とか言う場合は無理なのかな・・・

284 名前:デフォルトの名無しさん :03/10/08 23:10
何が無理だって?
282で文字列は任意に分割できる、ということを示しただろう。

285 名前:デフォルトの名無しさん :03/10/08 23:17
あ・・・やべぇ、何素っ頓狂な事言ってだ俺。普通に282見れば分かるのに・・・・スンマソ

286 名前:デフォルトの名無しさん :03/10/09 01:04
こんなことも可能

MessageBox( NULL,
"  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  \r\n"
"< しいたけですが、何か?\r\n"
"  \_________  \r\n"
, "IE の中止ボタンがしいたけに見えて困る", MB_ICONSTOP );


287 名前:デフォルトの名無しさん :03/10/09 08:04
>>286
XPのはもろしいたけ?

288 名前:デフォルトの名無しさん :03/10/09 09:37
現在プリンタキューに入っている、
プリンタスプールを削除するプログラムを作成したいのですが、
MSDN等を参考にしても今一つわかりません。
なにかよい手立てはありますでしょうか?

289 名前:デフォルトの名無しさん :03/10/09 12:58
超初歩でスミマセン。
Win32Appricationの単純なWin32アプリケーションで作った雛形なのですが
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
if(hPrevInstance)
return(0);
//Winアプリの初期化
if(!InitApplication(hInstance))
return-1;
//メインウィンドウの初期化、生成、表示
  if(!InitInstance(hInstance,nCmdShow))
return-1;
returnRun(); //サブルーチン
}
としたのですが、メインウィンドウが一瞬表示され消えてしまいます。
どこがダメですか?

290 名前:デフォルトの名無しさん :03/10/09 16:12
>>288
SetPrinterかな
>>289
猫でも〜

291 名前:デフォルトの名無しさん :03/10/10 01:39
Doc/Viewわけわか

292 名前:デフォルトの名無しさん :03/10/10 14:56
>>272
どうもありがとうございます。
助かりました。

293 名前: ◆kPmitmMo1A :03/10/10 16:01
エラーで下のように出ました。意味が分からないので教えてください。
LINK : fatal error LNK1104: ファイル "Debug/step.exe" を開けません。


294 名前:デフォルトの名無しさん :03/10/10 17:06
>>293
HDの故障だな。

295 名前: ◆kPmitmMo1A :03/10/10 17:08
>>294
どうすれいいのですか?

296 名前:デフォルトの名無しさん :03/10/10 17:10
step.exeが実行中なんだろ

297 名前:デフォルトの名無しさん :03/10/10 18:18
>>295
一度msdevを終了する

298 名前:デフォルトの名無しさん :03/10/10 18:34
step.exeが見当たらなかったらタスクマネージャでstep.exeプロセスを終了しる

299 名前:デフォルトの名無しさん :03/10/12 23:37
ソースコードの行番号表示ってどうやるんですか?

300 名前:デフォルトの名無しさん :03/10/13 00:00
中古でVC++5.0エンタープライズ版が
3000円で売ってたので買ってきますた。
で、インストールしたんですが使い方が分かりません。
つーか、どこがビジュアルなのかと小一時間、、、


301 名前:デフォルトの名無しさん :03/10/13 00:02
いくらC/C++が分かっててもドキュメントービューが分からなければ話にならんわな

302 名前:デフォルトの名無しさん :03/10/13 00:03
そのてんC++Builderはまだ分かりやすいと思うよ

303 名前:デフォルトの名無しさん :03/10/13 00:48
>>300
ダイアログやメニューの作成のところだろ。

304 名前:デフォルトの名無しさん :03/10/13 01:00
チェックボックスを最初からチェックした状態で作るにはどうしたらいいですか?

305 名前:デフォルトの名無しさん :03/10/13 03:32
>>304
誘導されたからってそのまま書いたらマルチと思われるぞ。

チェックした状態で作るのではなく、作った直後にチェックしちゃいけないのか?
そもそもどうやって作ってるのか分からないのに答えようがないぞ。

306 名前:デフォルトの名無しさん :03/10/13 05:51
>>305
そのような方にはお答えいただかなくて結構です

307 名前:デフォルトの名無しさん :03/10/13 06:24
勿体つけてああだこうだと文句を言う馬鹿ってさむいな。
さっさと答えかけばか。

308 名前:デフォルトの名無しさん :03/10/13 06:50
>>300
VC5は持っていないが、VC6の場合は、スタート→プログラム→VC→
新規作成(プロジェクト)(Win32ConsoleApprication等)→新規作成
(ファイル)(Main.cpp等)→エディタにコードを書く→ビルド、
見たいな感じだが、似たような感じだと思う。

めんどくさい場合は、右クリック→新規作成→テキストファイル
→名前の拡張子をcかcppにする→ファイルが使えなくなるかもをはい→
そのファイルを開く、エディタにコードを書く→ビルド、でも、
コンソールプログラムなら作れる。

309 名前:デフォルトの名無しさん :03/10/13 09:36
>>306
生意気だな。何様のつもりだ?
>>307
お前のような奴に誰が教えるか。

310 名前:デフォルトの名無しさん :03/10/13 09:57
早速一匹釣れてるよ...。
(まあ、俺が二匹目なわけだが。)

311 名前:デフォルトの名無しさん :03/10/13 20:16
C#の方が最強だよ
http://pc2.2ch.net/test/read.cgi/tech/1066038651/




312 名前:デフォルトの名無しさん :03/10/14 12:34
CDドライブの名前(型番?)を調べたいのですが、
どうしたらいいでしょうか?
ドライブの中に入ってるCDの名前ではなく、
CDドライブ自体の名前がほしいのです。

よろしくお願いします。

313 名前:デフォルトの名無しさん :03/10/14 13:04
>>306
荒らすなよー。
お世話になってるの、あんただけじゃないんだぞ!
>>312
コントロールパネル>システム>デバイスマネージャ>CDドライブ
の中の名前じゃダメなの?
オブジェクトの名前の変数か何かで使うの?
だとすると、これじゃないかもしれない。
ファイル指定して実行でregeditでレジストリのディレクトリの中の
HKEY_LOCAL_MACHINE\Enum
あたりにハードウェア情報入ってるよ。
でも、この名前でよいのかも分からない。
もし、レジストリの内容使うなら、PCの危ないからバックアップは採っておいた方が良いような...

314 名前:デフォルトの名無しさん :03/10/14 14:47
>>313
デバイスマネージャで表示される名前を、
APIでとることができないかなと思いまして。
レジストリからとるしかないんですかね?
APIで用意されてると思うんですが、
名前を取るAPIが無くて・・・。

315 名前:デフォルトの名無しさん :03/10/14 16:53
コンソールアプリで
SetTimerで作るみたいなタイマを使いたいのですが
何かないですか?

316 名前:デフォルトの名無しさん :03/10/14 17:13
SetTimer使えば?
コンソールアプリでも使えるぞ。

317 名前:315 :03/10/14 17:31
>>316
HWND hWnd, // handle of window for timer messages
とかコンソールアプリではどうするんですか?

318 名前:デフォルトの名無しさん :03/10/14 17:34
>>317
そのコメントをどこから拾ってきたのかは知らんがMSDN嫁

319 名前:315 :03/10/14 17:38
>>318
If this parameter is NULL, no window is associated with the timer
and the nIDEvent parameter is ignored.
ってありましたすいません
メンバ名見ただけで判断してました

320 名前:デフォルトの名無しさん :03/10/14 18:45
>>315
自分もやり方が分からないのでこう言うのを使っている。
#include <stdio.h>
#include <windows.h>
#define TIMER 10
int LoopWait(long miriByou)
{
  long now=GetTickCount();
  static long keep=0;
  if(keep==0) keep=GetTickCount()+miriByou;
  if(keep<=now) {keep=0;return 1;}
  return 0;
}
int main(void)
{
  int t;
  for(t=0;t<TIMER;)
  {
    if(LoopWait(1000))
    {t++;printf("%d\n",t);}
  }
  return 0;
}

321 名前:315 :03/10/14 20:05
>>318
やっぱりコンソールで使うときHWNDをどうすればいいのか
わからなくなってしまいました.
NULLにするとまともに動いてくれなくて

>>320
それをスレッドでってことですか?
時間はずれませんか?

322 名前:デフォルトの名無しさん :03/10/14 20:10
>>321
ウィンドウプロシージャ-作ってウィンドウを作成したら?
確か出来たはず。

323 名前:デフォルトの名無しさん :03/10/14 20:27
#include <windows.h>
#include <stdio.h>

VOID CALLBACK OnTimer( HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime )
{
static int i;
printf( "%d\n", i++ );
if ( i==10 ) PostQuitMessage( 0 );
}
int main(void)
{
SetTimer( NULL, 0, 100, OnTimer );
MSG message;
while( GetMessage( &message, NULL, 0, 0 ) )
DispatchMessage( &message );
return 0;
}

324 名前:デフォルトの名無しさん :03/10/14 22:45
VC++6.0についてるMSDNのCDは1枚だけ?

325 名前:315 :03/10/14 23:45
>>323
それいいですね
ありがとうございます

326 名前:312 :03/10/15 16:06
駄目です!
CDドライブのモデル名をとる方法がどうしても見つかりませんっっっ。
色々調べてみたのですが、どうしても見つけられないです。
誰か知ってる人教えてください〜〜い。


327 名前:なーお :03/10/15 17:36
ピクチャボックスにタイマー処理の中で1sごとに描画しているのですが、
途中で「リソースが使用できません」のエラーメッセージがでてバグってし
まします。どなたかアドバイスもらえませんか?

328 名前:デフォルトの名無しさん :03/10/15 17:40
>>327
http://pc2.2ch.net/test/read.cgi/tech/1066206822/
削除以来よろ

329 名前:デフォルトの名無しさん :03/10/15 17:47
VCでwindows mediaエンコーダを操作したいのですが・・・。
お願いします。

330 名前:デフォルトの名無しさん :03/10/15 17:49
>>312
やっぱ、カーネルのレジストリのAPI関数使うしかないんじゃないかなぁ。
'存在するキーを開く
LONG RegOpenKey(
HKEY hKEY, //開いている親キーのハンドル(例えばHKEY_LOCALMACHINEとか)
LPCTSTR lpSubKey, //開くべきサブキーの名前
PHKEY PHKEY phkResult //開くことに成功したサブ・キーのハンドル
);
'データ読み込み
LONG RegQueryValueEx(
HKEY hKey, //キーのハンドル
LPCTSTR lpValueName, //レジストリエントリ名
LPDWORD lpReserved, //予約済み
LPDWORD lpType, //データ型が格納されるバッファ
LPBYTE lpData, //データが格納されるばっふぁ
LPDWORD lpcbData, //データのバッファのサイズ
);
キー閉じる
LONG RegCloseKey(
HKEY hKey
);

取得するKEYはregeditで探して、おそらく>>313の場所にあると思う。

331 名前:デフォルトの名無しさん :03/10/15 18:13
ASPIを叩くのはどうか。

332 名前:デフォルトの名無しさん :03/10/15 19:32
>>327
死ね!

333 名前:デフォルトの名無しさん :03/10/16 14:59
スレッドの質問です

MFCによるダイアログベースでボタンを押したらスレッドを走らせようとしたのですが
スレッドなメンバを作るのは無理なのでしょうか?

Class DLG : CDialog{
 void OnButtonToThreadStart();//ボタン殴打時にthread_func起動
 static DWORD WINAPI thread_func(LPVOID pParam);//スレッド本体
}

 
 

334 名前:デフォルトの名無しさん :03/10/16 15:05
>>333 それでいけると思うけど?

335 名前:デフォルトの名無しさん :03/10/16 15:14
>>334
AfxBeginThread(test_func,0,THREAD_PRIORITY_NORMAL,0,0);
スレッドテスト2Dlg.cpp(182) : error C2665: 'AfxBeginThread' : 2 のオーバーロードは 1 番目の引数を 'unsigned long (void *)' から要求の型に変換できません

なぜかエラーがでます
また、スレッド本体がメンバとして外れているようです。(this->これが反応しない)

336 名前:デフォルトの名無しさん :03/10/16 15:35
pfnThreadProc
ワーカー スレッドの制御関数を指します。NULL は指定できません。この関数は次のように宣言される必要があります。
UINT MyControllingFunction( LPVOID pParam );

337 名前:デフォルトの名無しさん :03/10/16 15:35
>335
thread_funcをtest_funcと間違えてるから?

...というケアレスミスは置いといて、thread_func宣言する場合に
WINAPIって必要なの?
漏れ、付けたコト無いけど

338 名前:デフォルトの名無しさん :03/10/16 15:47
>>336
戻り値を受けたが原因は別にあるようです。

>>337
コピペミスですw
WINAPIはふるいパソコンだけ必要みたいです・・
www.microsoft.com/japan/mobile/developer/technicalarticles/multithreaded.asp
マイクロソフトとかみてたら、今の書き方がまずいことはわかりました


339 名前:デフォルトの名無しさん :03/10/16 17:12
VC++で
math.hをインクルードすると
atanf, atan2f, cosf, sinf, sqrtf関数のところで
floatは不要ですってエラーが出るんですけれども
何が原因でしょうか

これらの関数は使ってないので
コメントアウトするとコンパイル通るんですが
math.hを書き換えるのって好ましくないと思うので
なんとか解決したいのですが

340 名前:339 :03/10/16 17:18
言い忘れましたが
インクルードを行ってるファイルはC++のファイルです.
VC++であってもCのファイルではこのようなことは
起きません.

341 名前:312 :03/10/16 17:47
>>330
う〜〜ん。
やっぱりそれしかないですかね〜。
あるような気がしないでもないんですけどね〜。

わかりました。もうちょっと探して見て、駄目ならレジストリですね。
どうもありがとうございました。

342 名前:デフォルトの名無しさん :03/10/16 20:03
>>333 DWORDじゃなくてUINTじゃないと通らない罠

343 名前:デフォルトの名無しさん :03/10/16 21:56
>>333
どうでもいいことだけど
ボタン殴打するのはかわいそうなのでやめてね

344 名前: :03/10/16 22:39
Windows2000、VisualC++6.0にサービスパック5を当てようとすると、
「msvcp60.dllが開けません。別のアプリケーションで使われてます。」
とでて失敗します。

他のプログラムを起動しないようにしてるのに出てしまいます。
どうしたら言いのですか?
DLLを使ってるプログラムを特定することができるのですか?

345 名前:デフォルトの名無しさん :03/10/17 01:00
>>344
それ、よくなるよね。SRCpyってツールで再起動時に置き換えてる。

346 名前: :03/10/17 02:33
>>345
どうもありがとうございます。
どれと置き換えていいのかわからないから(サービスパックが展開されたフォルダにはmsvcp60.dllがなかった)、
SRCpyでmsvcp60.dllを削除してからサービスパックのセットアッププログラムを走らせてみました。
ちゃんと新しいmsvcp60.dllがシステムフォルダにできてるのでうまくいったと思います。

でもVCからヘルプ→バージョン情報でバージョン情報表示しても、サービスパック当てたことが表示されないけど大丈夫かな?
ウィンドウズOSや他のプログラムはサービスパック当てたら分かるようになってるのに。
もしかして失敗してるのかな?

347 名前:デフォルトの名無しさん :03/10/17 07:52
vcは何故か表示されないのです……

348 名前:デフォルトの名無しさん :03/10/17 08:09
>>342
うん。コンパイルが通ったYO。
しかし、メンバスレッドから他のメンバ変数にアクセスできないよぉ〜

>>343
初心者なもんでつい「パチィーン パティーン」ってなるのはどうしてでしょう・・・

349 名前:348 :03/10/17 08:41
自己スレ
スタティックメンバから非性的メンバにアクセスできないってことで
thisポインタ受け取るしかないということですか?

350 名前:デフォルトの名無しさん :03/10/17 08:57
>>346
問題ないハズ。うちも表示されないし。

VB だったら、起動ロゴのところに "SP5" とか入ってて
分かりやすいんだけどねぇ…

351 名前:デフォルトの名無しさん :03/10/17 09:22
__stdccall,__cdecl,fastcallってどういう意味ですか?

352 名前:デフォルトの名無しさん :03/10/17 09:26
>>351
「呼び出し規約」で調べて見れ。

353 名前:デフォルトの名無しさん :03/10/17 11:12
>>352
わかったことは__cdeclが標準でAPIが__sddcallぐらい
呼び出し規約を意識するときってどんなときですか?

354 名前:346 :03/10/17 11:44
>>347 >>350
ありがとう。安心しました。

355 名前:デフォルトの名無しさん :03/10/17 12:53
>>353
主に混合言語でプログラミングする時かな。

356 名前:デフォルトの名無しさん :03/10/17 18:20
プログラム以前の問題ではありますが、
visual C++.net Standardをこの度購入致しまして(安かった)、
で、あるスレで「最適化が出来ない」らしきことを聞いたのですが、
最適化が不可能なことによる弊害とは何なのでしょうか?
そもそも最適化とは?

こんな質問ではありますが、ご教授下されば幸いです。


357 名前:356 :03/10/17 18:21
追記

最適化とは「コードの最適化」らしいのですが。

358 名前:デフォルトの名無しさん :03/10/17 18:37
【最適化前】

356: デフォルトの名無しさん sage 03/10/17 18:20
プログラム以前の問題ではありますが、
visual C++.net Standardをこの度購入致しまして(安かった)、
で、あるスレで「最適化が出来ない」らしきことを聞いたのですが、
最適化が不可能なことによる弊害とは何なのでしょうか?
そもそも最適化とは?

こんな質問ではありますが、ご教授下されば幸いです。

357: 356 sage 03/10/17 18:21
追記

最適化とは「コードの最適化」らしいのですが。

【最適化後】

visual C++.net Standardでコードの最適化ができないデメリットは?

359 名前:デフォルトの名無しさん :03/10/17 18:40
俺もvisual C++.net Standard買ったんだが、コンパイルの仕方がわからん・・・
本だとメニュー部分にコンパイルって項目があるのに。

どうすればよいのでしょうか?

360 名前:356 :03/10/17 18:51
>>358ありがとうございます。

文意を汲み取るに、
打ったコードをソフトのほうで単純化等してくれる、
ということでよろしいでしょうか?
開発してそれを動かすということが出来ないわけではないようですね。


361 名前:デフォルトの名無しさん :03/10/17 18:58
速度やサイズが有利になるように微調整してくれるとでも思っておけ

362 名前:356 :03/10/17 19:01
>>361わかりました。
これで(ある程度は)安心して勉強に臨めます。
本当にありがとうございました。

363 名前:デフォルトの名無しさん :03/10/18 01:17
>>359
VC++のメニューは開いているファイルやフォーカスのある位置で変わる。
プロジェクトに含まれるファイルを開いていればコンパイルも表示されるはず。
ただし実行可能ファイルを作るのはコンパイルじゃなくてビルドだよ。

364 名前:359 :03/10/18 12:05
>>363
あ、なんとなくつかめてきました。
どうもです

365 名前:デフォルトの名無しさん :03/10/18 22:06
前にも質問したのですが
VC++のエディタに行番号表示機能ってないんですかね・・・

366 名前:デフォルトの名無しさん :03/10/18 22:16
>>365
ない

367 名前:デフォルトの名無しさん :03/10/18 22:27
>>365
2003買え。

368 名前:365 :03/10/18 22:59
やっぱりないんですね。
何行目にエラーがあるって出てるのに、それがどこか分からない歯がゆさ。
もしかしてこれがVC++の本質ですか?

369 名前:365 :03/10/18 23:01
ていうか右下見れば分かりますけど・・・
全体的な雰囲気でアレなんです。アレ。あれれ?

370 名前:デフォルトの名無しさん :03/10/18 23:01
エラーメッセージダブルクリックしる

371 名前:デフォルトの名無しさん :03/10/18 23:11
初心者は文句言う前に使い方覚えろ

372 名前:デフォルトの名無しさん :03/10/19 00:51
今現在、DirectXを勉強中なのでありますが、

error LNK2001: 外部シンボル "_D3DXVec3Normalize@8" は未解決です
error LNK2001: 外部シンボル "_D3DXMatrixPerspectiveFovLH@20" は未解決です
error LNK2001: 外部シンボル "_D3DXMatrixLookAtLH@16" は未解決です
error LNK2001: 外部シンボル "_Direct3DCreate8@4" は未解決です
error LNK2001: 外部シンボル "_D3DXCreateTextureFromFileA@12" は未解決です
error LNK2001: 外部シンボル "_D3DXLoadMeshFromX@28" は未解決です
fatal error LNK1120: 外部参照 6 が未解決です。

ってな状況に陥って困っております。

[ツール]→[オプション]→[ディレクトリ]の設定はしっかり行いました。

似たようなエラーが出て解決した人など居りませぬか?。。。

環境は、
OS WindowsXP
CPU 1.6GHz
メモリ 512MB
VC++6.0
DirectX 9.0 SDK
です。


373 名前:デフォルトの名無しさん :03/10/19 01:04
LIBはプロジェクトに入れてるの?

374 名前:372 :03/10/19 01:15
>>373
レスどうもです。

[ツール]→[オプション]→[ディレクトリ]の中で、
[インクルードファイル]→C:\DXSDK\Include
[ライブラリファイル]→C:\DXSDK\Lib
ですよね。

一応、DirectXの勉強に参考にさせてもらっているサイトのソースはコンパイルできるので、
設定でミスはないと思うのですが・・。

375 名前:372 :03/10/19 01:17
訂正、追記
>ソースはコンパイルできるので、
ソースはコンパイルから実行までできるので、

重ねて質問ですが、プロジェクトを新規作成するときに
あることをやっておかなければ上記のようなエラーが出ることなどありますか?。。。

376 名前:デフォルトの名無しさん :03/10/19 01:22
>>374
ディレクトリを指定してるだけじゃん。
リンクしなきゃダメだよ。

377 名前:372 :03/10/19 01:30
>>376
解決しました。
初歩的なことだったようで、まことに申し訳ない。

>>376氏、>>373氏、まことにありがとうございました。

378 名前:デフォルトの名無しさん :03/10/19 07:55
>>365
そんなもん要らんし。
N88-Basicじゃねーんだからよ。

379 名前:デフォルトの名無しさん :03/10/19 17:20
すいません。かれこれ一週間格闘してるのですが、お願いします。
classcString{
private:
char*m_str;
intm_len;
voidSetLength();
public:
int&SetMessage(char*);
int&PrintMessage(int);
};

voidmain(){
cStringmessage;
     message.SetMessage("JIKKEN");
message.PrintMessage(10);
}

これで、コンパイルは通るのですが、ビルドで
APPENDIXAp368.obj : error LNK2001: 外部シンボル ""public: int & __thiscall cString::PrintMessage(int)" (?PrintMessage@cString@@QAEAAHH@Z)" は未解決です
APPENDIXAp368.obj : error LNK2001: 外部シンボル ""public: int & __thiscall cString::SetMessage(char *)" (?SetMessage@cString@@QAEAAHPAD@Z)" は未解決です
Debug/APPENDIXAp368.exe : fatal error LNK1120: 外部参照 2 が未解決です。
とでます。リビルドしても同じです。
それから、cStringのメンバ関数の定義で「&」をはずしても全く同じエラーがでました。
どこがおかしいですか?または、エラーログからどの辺がおかしいか分かりますか?
どうか、どうか、お願いしますーーー!
(´д`;);ヾ
(\ノ)
 ((

380 名前:379 :03/10/19 17:37
(´д`;);ヾ
(\ノ)
 ((
あぁぁ、TABが抜けてしまったので改めて書き直します。
すみません。
すいません。かれこれ一週間格闘してるのですが、お願いします。
classc String{
private:
char *m_str;
int m_len;
void SetLength();
public:
int &SetMessage(char*);
int &PrintMessage(int);
};

void main(){
cString message;
     message.SetMessage("JIKKEN");
message.PrintMessage(10);
}

これで、コンパイルは通るのですが、ビルドで
APPENDIXAp368.obj : error LNK2001: 外部シンボル ""public: int & __thiscall cString::PrintMessage(int)" (?PrintMessage@cString@@QAEAAHH@Z)" は未解決です
APPENDIXAp368.obj : error LNK2001: 外部シンボル ""public: int & __thiscall cString::SetMessage(char *)" (?SetMessage@cString@@QAEAAHPAD@Z)" は未解決です
Debug/APPENDIXAp368.exe : fatal error LNK1120: 外部参照 2 が未解決です。
とでます。リビルドしても同じです。
それから、cStringのメンバ関数の定義で「&」をはずしても全く同じエラーがでました。
どこがおかしいですか?または、エラーログからどの辺がおかしいか分かりますか?


381 名前:デフォルトの名無しさん :03/10/19 17:41
class String
なのに、 cString とは、これいかに。

382 名前:デフォルトの名無しさん :03/10/19 17:43
>>380
↑が単なるスペルミスとしたら、単にメンバ関数が
見つかんねぇよ、このヴぉけ!ってコンパイラ様が
お怒りになられたってこった。

383 名前:379 :03/10/19 17:46
class cString{
です。すいません。
(´д`;);ヾ
(\ノ)
 ((


384 名前:デフォルトの名無しさん :03/10/19 18:08
つか、2003で付いてくるMSDNにCStringのメンバ関数が
載ってないのはこれいかに?

CStringTとは、違うよな…

>>383
>>382

385 名前:デフォルトの名無しさん :03/10/19 18:11
>>379
単純に関数の実体が無いんじゃねーのか?

386 名前:379 :03/10/19 18:17
CStringではありません。
新たに作った、cStringです。
VC++6.0に付いていたプログラミング入門のP368です。

>単純に関数の実体が無いんじゃねーのか?

そういう事なのでしょうか。上記以外は何も書いてません。

387 名前:233 :03/10/19 18:52
遅レスですが、おっしゃるとおりインターバルを調整したら解決しました
有難うございます。

388 名前:379 :03/10/19 19:16
>>385さんの「実体が無いんじゃ」の言葉にハッと思いつき、下を試しに入れてみました。
すると、コンパイル、ビルドとも通りました。
SetMessage、PrintMessageともに勝手に作ったcStringの関数なので勝手に文字をセットしたり、出力したりなんてことはしないんですね。
まさしく、実体が無かったようです。
voidcString::SetLength(char*s)
{
m_len=(s!=NULL)?strlen(s):-1;
}

voidcString::SetMessage(char*s)
{
SetLength(s);
m_str=newchar[m_len];
strcpy(m_str,s);
}

voidcString::PrintMessage(intn)
{
printf("%.\n",min(n,m_len),m_str);
}

単純なことで、お騒がせしました。
有難うございました。

389 名前:379追加 :03/10/19 19:29
void SetLength();の()内をchar*を入れて、
int &SetMessage(char*);
int &PrintMessage(int);
をともにvoid型にして、&を取り除きました。
ドモでした。
(´д`;);ヾ
(\ノ)ヾヘコヘコ・・
 ((


390 名前:デフォルトの名無しさん :03/10/20 11:13
>>384
今のCStringはCStringTのtypedefだよ

391 名前:デフォルトの名無しさん :03/10/20 19:10
>>390
レスサンクス。
だけど、CString のいくつかのメンバ関数の説明が
見つからないんですよ。GetBuffer()とか。

392 名前:デフォルトの名無しさん :03/10/20 20:22
C++.NETで外部ファイルを実行していくプログラムを作っています
ESCボタンを押しながらプロセスを終了した場合、プログラムが終了するように
したいのですがいい方法がありませんでしょうか?
(修飾子キーならControl::ModifierKeysでできるんですが・・)

393 名前:デフォルトの名無しさん :03/10/20 20:28
while(1)
{
//対象パス取得
pInfo->FileName=Str_Key1;

//プロセス実行
Process* Key1 = Process::Start(pInfo);

//プロセス終了まで待機
Key1->WaitForExit();

Application::DoEvents();

if(Control::ModifierKeys==Keys::Alt)
{
//アプリケーションを終了する
Application::Exit();
break;
}
}

394 名前:392 :03/10/20 22:40
訂正:
対象のファイルに対応するアプリケーションがアクティブの時でも
ESCボタンが押されたらプログラムを終了するようにしたいです
(ESCボタンが無理な場合ほかのボタンCtrlボタンでもかまいません)

よろしくお願いします

395 名前:デフォルトの名無しさん :03/10/20 23:14
c言語の勉強始めたばかりの初心者ですが、ここの掲示板初めて見たけどみんな凄いですね。
何かこんな問題聞くの恥ずかしい気もしますが誰か教えてくれませんか?
以下のような実行結果になるようなプログラムを勉強中なんですが、whileの所の意味がサッパリ分かりません?
誰か"詳しく"教えてくれませんか?

whileの所はwhile(*p='\0')では駄目なんですか?
一応実行してみたらエラーは無かったけど何も表示されませんでした。

プログラム--------------
#include<stdio.h>
main()
{
char st[]="ABCDEFG";
char *p;

p=st;
while(*p){
printf("%7s\n",p);
++p;
}
}

実行結果----------
ABCDEFG
BCDEFG
CDEFG
DEFG
EFG
FG
G
Press any key to continue

396 名前:デフォルトの名無しさん :03/10/20 23:24
>>395
板内を「宿題」で検索。そして氏ね。

397 名前:デフォルトの名無しさん :03/10/20 23:43
>>395
>whileの所はwhile(*p='\0')では駄目なんですか?
ダメです。

398 名前:デフォルトの名無しさん :03/10/20 23:48
http://www006.upp.so-net.ne.jp/candynar/visualc/visualc_begin.htm
ここのLESSON1のソフトなんですが計算を押すと値が2回返ってくるんですが・・・・・

399 名前:デフォルトの名無しさん :03/10/21 00:39
実行時にリダイレクトで
> a.txt
みたいに格納したいのですが、
どこでどうすればできるのでしょうか?


400 名前:399 :03/10/21 00:42
バージョンは6.0です。おねがいします。

401 名前:デフォルトの名無しさん :03/10/21 01:01
>>399
コマンドラインでどうぞ。
VisualStudio内から指定したいならプロジェクトのプロパティで設定可能。

402 名前:デフォルトの名無しさん :03/10/21 01:24
freopen("a.txt", "w", stdout);

403 名前:デフォルトの名無しさん :03/10/21 01:31
>>395
まぁここあたりでも。
http://homepage1.nifty.com/toshio-k/prog/c/

404 名前:399 :03/10/21 02:06
>>401さん
単にCプログラムするのだと過程としては
ファイル→新規作成→c++ソースファイル
ででてきたウィンドウにソース打って
ビルド→コンパイル→はい→保存(コンパイル完了)→ビルド→実行
という順番ですよね。

>VisualStudio内から指定したいならプロジェクトのプロパティで設定可能。
と仰るのは、プロジェクト→設定→デバッグ・・・あたりのタブでやるんでしょうか?
どこにどう入れたらいいのか、ぜひお願いします。

405 名前:デフォルトの名無しさん :03/10/21 02:10
>>404
402は?

406 名前:デフォルトの名無しさん :03/10/21 02:13
>プロジェクト→設定→デバッグ・・・あたりのタブでやるんでしょうか?
そこの引数に > a.txt と入れば?

407 名前:デフォルトの名無しさん :03/10/21 02:23
>>395
代入と比較を勉強しなおせ!

408 名前:デフォルトの名無しさん :03/10/21 02:38
1つのCStringオブジェクトを真ん中で切って2つのCStringオブジェクトに分けて
表示したいのですが、日本語と半角英数が混じっているので真ん中で分けるこ
とができなかったり、文字化けしたりしてしまいます。
GetLength()で文字数を取得して真ん中で分けようとしているのですが、日本語
と半角英数が混じっているときでもGetLength()は8 ビット単位でカウントするの
でうまくいかないのだろうと思います。どうすれば日本語と半角英数が混じって
いるCStringオブジェクトをちょうど真ん中で切って2つのCStringにすることがで
きるようになるのでしょうか?

409 名前:デフォルトの名無しさん :03/10/21 02:43
一端UNICODEに変換するのがまぁまぁそこそこ楽かもしれないナ。

410 名前:デフォルトの名無しさん :03/10/21 02:49
>>409
こんなのは?

size_t len = s.GetLength();
LPCTSTR p = (LPCTSTR) s;
while (p - (LPCTSTR) s < len/2)
p = CharNext(p);

CString s1((LPCTSTR) s, p - (LPCTSTR) s);
CString s2(p);

411 名前:デフォルトの名無しさん :03/10/21 02:57
●●●マスコミの「盗聴/盗撮」は許されるの?その2●●● http://natto.2ch.net/mass/kako/988/988402795.html
605 名前: 文責:名無しさん 投稿日: 2001/05/18(金) 20:36
>>595
>その子は盗聴され始める前から近所に住んでた子なの?
ナイスです。声が、どの家からしたかは特定できない...としておきます。
しかし、大体どの家並みかは、わかります。

マスコミから盗聴・盗撮などされているのでは、と思い始めた頃、その家並みはまだ空き地でした。
やがて、マスコミからの公共の電波を使った嫌がらせが相次いだ頃、その空き地で建築工事が始まりました。
もし、自分が盗聴側の人間だったとしたら...しかも大きい後ろ盾があるとしたら、
これは好機だな、と思いました。
(もちろん、”馬鹿馬鹿しい、非現実的な考えだ”とも思いましたが)
そして、現実として、妙なことを言うガキがいる..。

色々言ってくれますよ、そのガキ。
警察に宛てた文章(長文)を数日かけて作製していたんですが、上手く行かずに途中で止めました。すると、
「さくぶんは、もぉ、おしまいかぁ〜〜い」
うちの犬がゲロ吐いたので「ゲロッピーだなぁ」と言うと、翌日家の前を通りながら
「”げろげろっぴー”ってのは、だめかぁ〜い」
その1だったかにも書いた「ぼくたちには、きみが、ひつよーなんだぁ」も。
オナるとまた面白いリアクションが来るんですな。(お下品で、失礼(ワラ)
「あぁ、あぁ、きもちいぃいいい〜〜」
とか。ガキが言うんですぜ、これを。(笑
「マヨネーズが、白いマヨネーズが、ぴちょ、ぴちょぴちょ...」
とか。
夜中、そぉ〜っと紙ひっぱってオナるとですな。翌日、「カサッ、カサッ、カサカサカサ...」

指示を出している親のこと考えると、泣けますな。アホだわ。

412 名前:デフォルトの名無しさん :03/10/21 03:10
>>409>>410
レスサンクスです。
>>410さんのやりかたでうまくいきそうです。
ありがとうございました。

413 名前:デフォルトの名無しさん :03/10/21 15:04
うちのはあるけど・・・

414 名前:デフォルトの名無しさん :03/10/21 16:26
VisualStudioのインストール時にWin2kなのに、NTのデバッグシンボルが
どうのこうのというメッセージが出るのですが、セットアップしないと
デバッグ出来ないんですか?
無視して進んで、一見なんとなく動いているように見えるんですが、実は正しく
動作してないのでしょうか?

415 名前:デフォルトの名無しさん :03/10/21 16:36
シンボルを使ったデバッグはできない

416 名前:414 :03/10/21 16:49
シンボルを使ったデバッグというのは、VCで普通にやるブレークポイントを
設定して値を見たり、そこから順にトレースしたりというのとはまた違う
やり方でしょうか?(デバッグといえばこれしか知らないもので・・・)
その方法はどういうときに使いますか?

417 名前:デフォルトの名無しさん :03/10/21 17:05
たぶん414には必要ない。

418 名前:デフォルトの名無しさん :03/10/21 17:07
WinXP VS2003 で VC++ の勉強をしています。
スタティック ライブラリ(.lib) を適当に作ってみたの
ですが、このライブラリを使う方法がわかりません。
かなり基本的なことだと思いますが、どなたか
教えていただけませんか。


419 名前:デフォルトの名無しさん :03/10/21 17:12
今日はじめてVC使いました。(Java派なもんで)
で、int型の変数を文字列(char[]?)に変換したいのですが、
どうやったらいいですか?

420 名前:デフォルトの名無しさん :03/10/21 17:17
>>419
forなりwhileでまわしながら、
intの中身を1桁ずつchar1文字に置きかえる。

421 名前:デフォルトの名無しさん :03/10/21 17:23
>>420
例えば、どう書いたらよい?
よくわからないもんで。

422 名前:デフォルトの名無しさん :03/10/21 17:47
sprintfの方が早くね?
標準関数だからネットでもリファレンスあるし、知らないと上達しない。

423 名前:デフォルトの名無しさん :03/10/21 18:34
>>419
お前がどうしたいのかにもよるが、
文字列に変換したいのなら_itoaが簡単かな。

424 名前:399 :03/10/21 19:13
>>399です。
>>401さんの言っているコマンドラインは>>404の私の過程では
どこでできるのでしょうか?

425 名前:ここm(−−)m :03/10/21 19:24
文字列を入力として受け付けて、その文字列中に含まれる数字の合 値を求めよ。
例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力する。




426 名前:ここm(−−)m :03/10/21 19:26
問題

文字列を入力として受け付けその文字列中に含まれる数字の合計値を求めよ。
例: a1b23g4 と入力された場合、1+2+3+4 で10 を出力する。




427 名前:デフォルトの名無しさん :03/10/21 21:07
宿題は自分でやれ!

428 名前:デフォルトの名無しさん :03/10/21 21:59
マターリ解いてみろ(;´Д`)y-~~

429 名前:デフォルトの名無しさん :03/10/21 22:24
>>426
int foo(const char* p) {
return isdigit(*p) ? (*p - '0') + foo(p+1) : *p ? foo(p+1) : 0;
}


430 名前:デフォルトの名無しさん :03/10/21 22:27
print eval(join('+',($input =~ /\d/g)));

431 名前:401 :03/10/21 22:45
私がVisualStudio使ってもそういう手順にならないんだが。

それはさておき、デバッグができると言うことは実行モジュール(*.exe)ができているということだろうから、
それをコマンドラインで起動すればよろしい。

まさかとは思うが、リダイレクトでファイルに落としたいと言いつつ、
コマンドラインとは何か理解していないわけではあるまいな?

432 名前:399 :03/10/22 00:29
>>401さん
ms-dosプロンプトでやればよかったんですね。
どうもありがとうございますた!

433 名前:デフォルトの名無しさん :03/10/22 00:31
ちなみに、単純なCプログラムを作る場合には、
ツールバーの最左にある新規作成ボタンで出てくるウインドウに
ソース打ってやればいいんですよね?

434 名前:デフォルトの名無しさん :03/10/22 00:33
>>432
なんじゃそりゃ。
リダイレクトという言葉を知ってる奴が気付かないものなのか・・・

435 名前:399 :03/10/22 00:36
>>434
ご教授おながいします(TT)

436 名前:デフォルトの名無しさん :03/10/22 02:51
ウィンドウがコマンドラインから立ち上がるってのはなかなか
気が付かないものだよ。いまだに違和感がある・・・。

437 名前:デフォルトの名無しさん :03/10/22 09:22
意味分からん!(・∀・)

438 名前:デフォルトの名無しさん :03/10/22 09:31
>>437
激しく同意。

439 名前:デフォルトの名無しさん :03/10/22 10:16
すみません、知恵をお借りしたいのですが…、

bRet = GetPrinter(hPrinter,2,NULL,0,&dwBytesNeeded);
pi = (PRINTER_INFO_2*)GlobalAlloc(GPTR,dwBytesNeeded);
bRet = GetPrinter(hPrinter,2,(LPBYTE)pi,dwBytesNeeded,&dwBytesReturned);
bRet = SetPrinter(hPrinter,2,(LPBYTE)PRINTER_CONTROL_PURGE,0);

というプログラムを作成したのですが実行すると、
「ハンドルされていない例外はWINSPOOL.DRVにあります」
と出て正しく実行できません。
Winspool.drvはプリンタスプール関係だとはなんとなくわかりますが…。

440 名前:デフォルトの名無しさん :03/10/22 11:24
あるディレクトリ(今はdata)にファイルを保存したい場合
data\\ファイル名
このように書いてるんですけど、うまくいきません。
間違ってますか?

441 名前:デフォルトの名無しさん :03/10/22 11:33
はい。

442 名前:デフォルトの名無しさん :03/10/22 11:33
どう直せばよいですか?

443 名前:デフォルトの名無しさん :03/10/22 11:36
フルパスで指定する。

444 名前:デフォルトの名無しさん :03/10/22 11:40
フルパスでもだめだったんですけど。

445 名前:デフォルトの名無しさん :03/10/22 11:43
あきらめなさい。

446 名前:デフォルトの名無しさん :03/10/22 11:49
1つのファイルが2MBで、それを複数書き込もうとするのが
よくないのでしょうか?

447 名前:デフォルトの名無しさん :03/10/22 12:06
char *filename = ファイル名;
char path[] = "data\\";
char *filename2 = strcat(path,filename);

こういうプログラムなんだけどダメ?

448 名前:デフォルトの名無しさん :03/10/22 12:39
全然ダメ。

449 名前:デフォルトの名無しさん :03/10/22 12:39
どこがだめ?

450 名前:デフォルトの名無しさん :03/10/22 12:52
strcatは、第一引数で指された領域に文字列を追加する。
だから、必ずバッファオーバーフローする。


つーか、
初心者はCの文字列操作用の標準関数を使わないほうが無難だよ。
オーバーインデックスの危険性をはらむものが多いし、
そうでないものは文字列を'\0'でターミネートしてくれなかったりする。
文字列の"外側"までコピーするものもある。

なんか”掃き溜め”見たいになってる。

451 名前:デフォルトの名無しさん :03/10/22 13:19
文字列の外側までコピーする、ってのは間違い。

452 名前:デフォルトの名無しさん :03/10/22 14:44
VC6,MFCなのですが、初心者という事でこちらへ質問させ
ていただきます。
ダイアログ(CFormView)、それらに貼り付けたコントロー
ル(CTabCtrlやCButton)のサイズを固定にするにはどのよ
うに行えばよいでしょうか?
画面のプロパティでシステムのフォントサイズを小さい
フォント/大きいフォントのどちらの時も同じサイズにし
たいのです。
設計自体云々の話はご勘弁を。
よろしくおねがいします。

453 名前:デフォルトの名無しさん :03/10/22 20:28
>>447
てか何がしたいのこれ?

454 名前:デフォルトの名無しさん :03/10/23 10:08
c++使ってんだったら、素直にstd::stringを使ったほうが良い気がする。

455 名前:452 :03/10/23 11:46
スレ違いなようですので、MFCスレの方へ移動させていただきます。
申し訳ございませんでした。

456 名前:デフォルトの名無しさん :03/10/23 14:10
VC++.NET 2003を使ってるんですが、
IDEのウィンドウに張り付いているウィンドウ(出力とか、検索結果とか、ソリューションビューとか、...)や
ツールバーがポコポコ外れて気持ち悪いです。

ウィンドウの構成(?)を固定するのはどうすればよいのでしょう。

457 名前:デフォルトの名無しさん :03/10/23 16:03
あぁ・・・俺もよくツールバー動かしちまう。
メニューバーの上まで行ったりして、
しかも他のエディタのツールバー表示まで全て狂う。
固定したい。

458 名前:デフォルトの名無しさん :03/10/23 20:18
質問です。
VC++6.0でプログラムを作りました。
しかし絵心が無いため、アイコンは知人に作ってもらいました。
32x32の256色bmp画像です。
早速その画像を組み込んだのですが、何故か白黒になってしまいます。
念のためIrfanViewで色情報を見ましたがきちんと256色bmpでした。

何か解決策はありますか?

459 名前:デフォルトの名無しさん :03/10/23 20:54
>>458
正規の物をご購入下さい。

460 名前:デフォルトの名無しさん :03/10/23 21:53
パレット潰れてんだろ。
Winのビットマップは256色だとパレットが必須だったはず。

461 名前:デフォルトの名無しさん :03/10/23 23:50
VC++6.0なんですが、ソースファイルのフォントが
大きく、画面に表示される文字数が少ないのが悩みです。
どうにかしてフォントを小さくできないのでしょうか?

あと特定のキーワードについて色を変えたいのですが、
VC++のエディタにそういう機能はないんでしょうか?
コメントや制御文はVC++エディタでも色変わりますけど、
他のも別の色にしたほうが見やすいので。

462 名前:デフォルトの名無しさん :03/10/24 00:02
>>461
後者は知らんが、前者はできる。
ツールメニュー辺りに環境設定関係のダイアログがあったと思うが忘れた。
少なくとも私は9ptにしているから間違いない。

463 名前:461 :03/10/24 00:05
>462さん
どうもありがとうございます。
早速明日やってみます。

464 名前:デフォルトの名無しさん :03/10/24 03:58
>>461
"UserType.dat" を、MSDNライブラリで検索してみ

465 名前:デフォルトの名無しさん :03/10/24 13:11
初心者です。お願いします。
ソースのフォントなのですが、Linuxなどで印刷した物は
大体Courier Newみたいなフォントですよね?

Visual C++に限らないのですが、あれと同じフォントは
何て言うのでしょうか?またどこで手に入れられますか?

466 名前:デフォルトの名無しさん :03/10/24 18:01
質問です。
以下の様にするにはどうしたら良いのでしょうか?

1. アプリAから、アプリBにテキストデータを送りたい。
2. さらに、テキストデータをアプリBに送られた事をアプリBに知らせたい。

宜しくお願いします。

467 名前:デフォルトの名無しさん :03/10/24 18:05
1 IPC
2 イベント



468 名前:466 :03/10/24 18:11
>>467
すみません、もう少し具体的に教えてもらえませんか?

IPCとはなんですか?
どうやって他のアプリのウィンドウハンドルを取得しますか?

469 名前:466 :03/10/24 18:36
自分で解決出来ました。
WM_COPYDATAメッセージで通信する事にしました。

470 名前:デフォルトの名無しさん :03/10/24 18:37
>>468
 IPC → プロセス間通信

パイプなり、共有メモリなり好きなのをつかってくれ。
 Windowsでもあるから。

ハンドルはどうやるんだっけ?GetWindowsあたり?
 

471 名前:デフォルトの名無しさん :03/10/24 18:57
Visual C++ .NET 2003 standardを使った
マルチスレッドアプリケーションのデバッグ方法についてなんですが。

AfxBeginThreadで起動したスレッド上で動いている処理にブレークポ
イントをおきたいんです。ま、IDEでソースコードの左端をクリックす
ると、ブレークポイントは確かに置けるんですが、そのブレークポイ
ントを踏むと、そのデバッグ中のアプリとIDEとWindowsが固まっちゃ
うんです。
( 固まるって言っても、まあ全体的にほんのり動いてるんですけどね )

そんで、以下の原因がありそうかな、って思いました。

1. VC++.NET 2003 Standardでは、AfxBeginThread()で起動したスレ
ッドでのステップ実行などのデバッグはサポートされていない

2. なんかブレークポイントの置き方に作法・コツなどがある

3. VC++.NET 2003のデバッガのバグ

4. 漏れの作ってるソフトが変

5. その他

これらのうち、どれがもっとも望ましいでしょうか。

472 名前:デフォルトの名無しさん :03/10/24 21:01




毎年、約1万組の日韓結婚。
それに伴なう朝鮮化した混血児。
年間、日本の新生児約100万人のうち、
約1〜2万人の新生児に
容赦の無い朝鮮人の血が流し込まれている。

また、韓国朝鮮人の帰化が年間約1万人も!





473 名前:デフォルトの名無しさん :03/10/24 22:53
>>471
4に一票。
スレッドを山ほど起動してないか?

474 名前:466 :03/10/25 00:29
>>470
レスどうもありがとうございました。

一応最初、Atom系APIでやり取りしようと思ったのですが
それだと、変更を知らせたりするのが面倒だった為、
色々探しているうちに、WM_COPYDATAメッセージに辿り着きました。

ハンドルは、FindWindowで取得しました。

475 名前:デフォルトの名無しさん :03/10/25 11:29
>>471
俺も似たような経験がある……けどはっきりとした理由は分からずじまい。
ただ、デバッガ起動直後になりやすかったような。
とりあえず、デバグ用ランタイムは使ってるね?

それからこれは違うかもしれないが、グラボ(Canopus)のドライバを
入れ替えたらデバッガが不具合を起こしにくくなったこともあったよ。

476 名前:デフォルトの名無しさん :03/10/25 15:11
VisualC++ .netつかって
directXのゲーム作ってます。

何故かこのような現象が起きてしまいます。
普通のビルドをしているのに、なぜかビルド済みのファイルまで
毎回コンパイルしてしまう。
・実行やデバッグをしようとしたときに

Microsoft Developement Environment
これらのプロジェクトは古い形式で構成されています
ビルドしますか?

というメッセージがでるのです。

どうすればこれらの現象を回避できるのでしょうか?

477 名前:デフォルトの名無しさん :03/10/25 16:27
以前にVisual C++6.0を使っていたのですが。最近はいろんな物が出て混乱してます。
Visual C++.NETとVisual Studio.NETは違う物なんですか?分類がよく分かりません。
Visual C++6.0の同等以上の機能を含んで最新のツールはどれなんでしょう?

なんか変な質問してます?
系統や分類を説明してるサイトあったらお願いします。

478 名前:デフォルトの名無しさん :03/10/25 16:47
>>477
根本的に解ってないらしいが
Visual C++.NET⇒C/C++環境のみの開発ツール
Visual Studio.NET⇒VB、C/C++、C♯、J♯言語を全て使えるセットのような感じの開発環境。

アカデミック版のStudioは単品でC++等を買うよりも遥かに安い。
ちなみに6.0proとかの機能は.NETのpro版が単品で発売されてないのでStudio.NETproを買わないと使えない。

479 名前:デフォルトの名無しさん :03/10/25 17:27
学校でCの勉強が一段落したんで独学でVC++をやりたいのですがお勧めの本ありませんか?



480 名前:デフォルトの名無しさん :03/10/25 17:52
推薦図書/必読書のためのスレッド PART 13
http://pc2.2ch.net/test/read.cgi/tech/1066825927/

481 名前:デフォルトの名無しさん :03/10/25 19:51
DLLの関数をインテリセンスで表示させるにはどうすればいいですか?

482 名前:デフォルトの名無しさん :03/10/25 20:49
fstreamについて質問です。環境はVC++.net Windowsのアプリ開発です

std::fstream ofs;
ofs.open(Filename,std::ios_base::binary |std::ios_base::in);

この後、ファイルのサイズを知りたいのですが、どのようにすれば良いのでしょうか?
メンバの中にsizeのようなものも存在しないようですし (.で出るPOPUPウインド参照)
どうすれば良いのでしょうか?

1)fstreamの中にサイズが格納されているメンバが存在する

2)そんなもの無いから、ファイルの最後までシークしてサイズを得るとか...

3)WINAPIを使う

ヘルプのリンクが膨大すぎて、なかなか知りたい情報にたどり着けない_| |○
みなさんはどうしていますか?
クラスの中身を参照(HELP)する方法...



483 名前:デフォルトの名無しさん :03/10/26 06:51
this->でインテリセンスが表示される関数と表示されない関数があるんですけど、どうしてですか?

484 名前:デフォルトの名無しさん :03/10/26 08:11
>>483
VC++の既知のバグ

485 名前:デフォルトの名無しさん :03/10/26 09:04
>>484
表示されるときと表示されない場合の違いって何でしょうか?
また、どのようにすれば回避できますでしょうか?

486 名前:デフォルトの名無しさん :03/10/26 10:54
>>485
直接関数名を入力する。

487 名前:デフォルトの名無しさん :03/10/26 11:59
>>483
プロジェクトのフォルダの中の *.clw ファイルを手動で削除し、リビルドすると
直る可能性がある。
再度 *.clw ファイルを作る場合は、リビルドした後ClassWiardに入るといろいろ
聞かれるのでデフォルトのボタンを押していけばOK。

488 名前:デフォルトの名無しさん :03/10/26 12:19
環境が再現できないので確認できないけど、
 1.バッチビルド -> クリーン。
 2.VCを抜けて、.ncb .opt .clw を削除。
 3.VCを立ち上げてビルド。
で上手くいったことがあった。

489 名前:デフォルトの名無しさん :03/10/26 14:00
VC++6.0 MFCなんですがタブブラウザみたいなものを想定して
MDIでツールバーにReBarを加えてプロジェクトを作成しました。

そしてIDR_MAINFRAME上にタブコントロールを作り、対応した子フレームをアクティブに、
というプログラムを作ろうと思ったのですがタブコントロールをうまく作成することが出来ません。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vccore/html/_core_creating_the_tab_control.asp
http://www.hi-ho.ne.jp/hawk/mfc0401.html#control_tab

上のURL等を参照してある程度のことは試してみたのですが・・・。
他に分かりやすく解説されているサイトやヒントなど何でもいいので何かありましたら教えていただけないでしょうか。

490 名前:デフォルトの名無しさん :03/10/26 14:32
>>484 >>487 >>488
どうもありがとうございます。
お陰でうまくいきました。
スペシャルサンクス♪




491 名前:デフォルトの名無しさん :03/10/27 00:30
SDIで、ドキュメントビューを使わないでアプリケーションを作るのに
参考になるサイトがあれば教えてください。いろいろ探してるんですが・・・。


492 名前:デフォルトの名無しさん :03/10/27 01:37
3Dグラフィック系を(効率よく)描くプログラムを作りたいと思ったら、
VisualC++のどんな機能を使えば良いのでしょうか?
そのための良書とかありますか?
よろしければ教えてください。

493 名前:デフォルトの名無しさん :03/10/27 02:02
>>492
DirectGraphics(Direct3D)を使うのが一番楽だと思いますが。


494 名前:デフォルトの名無しさん :03/10/27 02:42
子ウィンドウにて入力した文字列を、親ウインドウ上に描画したいのですが、
グローバル変数を使って値を渡そうとしても上手くいかないようです

何か上手い方法は無いでしょうか?


495 名前:デフォルトの名無しさん :03/10/27 04:10
>>494
あきらめる

496 名前:デフォルトの名無しさん :03/10/27 08:20
>>494
グローバルでうまくいかないんならお前の組み方が悪い。

497 名前:デフォルトの名無しさん :03/10/27 09:10
>>494
グローバル変数に入れたとして、それをどうやって親ウィンドウに伝えているんだ?

例えば親ウィンドウのEditコントロールにSetWindowText()するだけで渡せると思うのだが。

498 名前:492 :03/10/27 09:41
>>493
ありがとうございます

499 名前:494 :03/10/27 17:58
>>497
親ウィンドウにDrawText()で描画するのが目的で、
子ウィンドウで入力した文字列をバッファに保存し、
strncpy()を使ってグローバル変数として宣言した文字列バッファに読み込み、
それを親ウインドウから読み込もうとしているのですが、アクセス違反になるのです。

親ウィンドウと子ウィンドウのプロージャは別ファイルに分けて記述し、
グローバル変数は子ウインドウ内でexternを使用して宣言しています。

500 名前:デフォルトの名無しさん :03/10/27 18:02
まずグローバル変数を使わない設計に改める


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.