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


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

★初心者にVisual C++を教えるスレ★ Part16
251 名前:デフォルトの名無しさん :04/12/15 06:11:01
>>248
ペゾルドは中でやってる。
グローバルでもローカルでも#defineでもリテラルでもなんでもいい。
スタティックだからローカルにこだわるメリットはない。

252 名前:デフォルトの名無しさん :04/12/15 08:00:25
とても参考になりました。
このような質問に答えてくださって、ありがとうございました。
嬉しかったっす。

253 名前:デフォルトの名無しさん :04/12/15 18:36:57
1+2+3,1+2-3,1-2-3,1*2-3,・・・・・・のように符号を変えていって値を
求めたいのですが、

char fugou[4]={'+','-','*','/'};
for(a=0; a<=2; a++){
cout<<1<<fugou[a]<<2<<fugou[a]<<3<<endl;
}

COUTからどのようにして答えを出せばいいのでしょうか?



254 名前:デフォルトの名無しさん :04/12/15 18:40:51
すいませんC++スレと間違いました

255 名前:デフォルトの名無しさん :04/12/15 23:10:28
>>249
別にいいよ?北朝鮮と戦争になったら
自衛隊に志願するから。おまえも工作員なら
工作員らしく行動しろよ。馬鹿丸出しkkkk

256 名前:255 :04/12/15 23:12:07
すみません。書く所
間違えました。

257 名前:デフォルトの名無しさん :04/12/15 23:18:19
このスレには北朝鮮の工作員がいる悪寒

258 名前:デフォルトの名無しさん :04/12/15 23:19:11
実行画面のコマンドプロンプトに
スクロールバーが付いてなくて1画面分の情報しか見れないのですが
何とかならないでしょうか?
OSはMEです。

259 名前:デフォルトの名無しさん :04/12/15 23:33:06
dir |more
のような感じ

260 名前:デフォルトの名無しさん :04/12/16 00:35:41
Meなんて使うな!

261 名前:デフォルトの名無しさん :04/12/16 00:45:14
dir /p

262 名前:258 :04/12/16 01:23:09
>>260
やっぱMEの仕様ですか?
どうにもなりませんかね?

263 名前:デフォルトの名無しさん :04/12/16 06:45:24
ビットマップファイルを合成したいのですが、どうすればいいですか?
合成というのは、二つの.BMPファイルを読み込んでそれらを繋げて一つ
のビットマップにしようとしています。

264 名前:デフォルトの名無しさん :04/12/16 07:56:15
・ω・)つ ペイント

265 名前:デフォルトの名無しさん :04/12/16 09:42:33
ビットマップ 論理演算

266 名前:デフォルトの名無しさん :04/12/16 12:37:57
つなげるっつっても
□□ □
    □

とかあるじゃん。
どんな風につなげるの?
ファイルの形・サイズは同じでいいんだよね。

267 名前:デフォルトの名無しさん :04/12/16 12:45:35
>>266
知らないなら黙ってろ

268 名前:デフォルトの名無しさん :04/12/16 12:48:52
>>263
ペイントを2つの画像分開いて、範囲選択モード(点線のやつ)にして、
片方をコピーしてもう片方に貼り付ける。
たしか、貼り付ける位置は指定できなかったから、貼り付けられる方の画像を、
貼り付ける画像ぐらいのスペースをあらかじめ開けておく。
後は、範囲選択モードでドラッグしてつなげればいい。

269 名前:268 :04/12/16 12:51:13
あっ、スレ的に言うとプログラムでって事か。すまんorz。
ちょうどゲームのチップセットを同じような感じで並べていたから・・。

270 名前:デフォルトの名無しさん :04/12/16 15:11:57
>266
そうです。ファイルの形・サイズは同じでいいです。
繋げ方はAのパッチのとBのパッチを上下に並べて繋
げようとしています。
あと、どなたかビットマップの加工でよいホームペ
ージがあったら教えていただけませんか?

271 名前:デフォルトの名無しさん :04/12/16 15:14:50
今度はD3DXCreateSphereでメッシュを作り、
そのメッシュの頂点を動かしてみようと思ったのですが、
また強制終了して原因がよくわかりません。
下のようにしてみましたが、何所かおかしいでしょうか。
何か根本的に間違ってますでしょうか?

LPDIRECT3DVERTEXBUFFER9 pVB;
WORD* pV;
DWORD FVFSize
D3DXVECTOR3 *v;

//球メッシュ生成
D3DXCreateSphere(pd3dDev,1,20,10,&m_pMesh,NULL);

FVFSize = D3DXGetFVFVertexSize( m_pMesh->GetFVF() ); //fvfのサイズを取得
m_pMesh->GetVertexBuffer(&pVB); //頂点バッファ取得
pVB->Lock(0,0,(void**)&pV,0); //頂点バッファロック
//+y方向に移動してみる
for(int i=0;i<m_pMesh->GetNumVertices();i++)
{
v = (D3DXVECTOR3*)(FVFSize * i);
v->y+=1;
}




272 名前:デフォルトの名無しさん :04/12/16 15:43:27
くだらない質問ふえたな
そろそろ学校休み?

273 名前:デフォルトの名無しさん :04/12/16 22:09:53
>>270
>264のメール欄にあるライブラリなら応用例はいくらでも出てくると思うが。

274 名前:デフォルトの名無しさん :04/12/17 00:00:33
おにいちゃん、助けて下さい。
MFCでダイアログベースのアプリをいい感じの所まで作ったのですが、
メニューに表示される文字を、コード上で後から変更する必要が出てきました。
UPDATE_COMMAND_UIハンドラでのSetText()は効かないし・・・
今さらFormView等で作り直せないです・・・
多少回りくどい方法でも良いので、メニューの文字変えられませんでしょうか(><)

275 名前:デフォルトの名無しさん :04/12/17 00:08:46
>>274
CMenuのメンバ関数を使ってできないかな?

276 名前:マイク ◆yrBrqfF1Ew :04/12/17 00:15:01
>>272はまさか社会人なのか?

277 名前:274 :04/12/17 00:32:01
>>275
動的に追加はできました。
これからCMenuでいろいろ試して見たいと思います。
ありがとうございます。

278 名前:デフォルトの名無しさん :04/12/17 06:32:30
フリーのVisual C++を使おうとしているWinプログラマ初心者です。 あるソースを
落としてきてビルドしようとしているのですが、途中でNMAKEが以下のエラーを
吐きました。
NMAKE : fatal error U1071: cycle in dependency tree for target 'c:\Documents'

ファイルはC:\Documents and Setting\washi\..... の下に置いているのですが、
ファイルパス名に空白が入っているのをNMAKEがチョチョギっているような
気がします。 どう対処したらよいのでしょうか? 

279 名前:デフォルトの名無しさん :04/12/17 08:17:11
nmakeってフリー版に付いてたのか?
前,雑誌で付いてないって書いてあって手出してないんだが。

280 名前:デフォルトの名無しさん :04/12/17 08:22:52
>>278
""でパスを囲む

281 名前:デフォルトの名無しさん :04/12/17 09:20:01
>>278
>>280
・ショートネームのパスで作業する。
・c:/usrでも作ってそちらで作業する。

282 名前:278 :04/12/17 10:48:56
>>279
http://pc5.2ch.net/test/read.cgi/tech/1086287039/2

> Q. nmake/rc/cvtresは?
>  A. PSDKのbin/win64フォルダ以下に。もしくは.NETのを使え。

とありましたがWinXP SP/2のPSDKにはそのフォルダが見当たりませんで
.NETのPSDKの中に見つけて使ってます。

>>280 >>281
サンクス。 色々な手がありますね。 

283 名前:278 :04/12/17 10:50:57
>>282
「.NETのSDK」でした。


284 名前:デフォルトの名無しさん :04/12/17 11:34:35
C++は全くやったことない初心者です。
前任者がVC++で作ったプログラムを修正しないといけないんですが、
バージョンが「VC++ v7.10」って書いてあるんです。
これってVC++.NET2002なのか2003なのか教えてください。
あとVC++.NETとVC++.NET2002って同じものなんですか?

285 名前:デフォルトの名無しさん :04/12/17 11:47:41
VC7.1 == 2003
VC7.1 == 2003
VC7.1 == 2003

VC++.NET == VC++.NET2002
VC++.NET == VC++.NET2002
VC++.NET == VC++.NET2002

286 名前:デフォルトの名無しさん :04/12/17 11:57:07
Visual C++を始めてまだ1週間足らずのものです。お兄さん方教えてさい。

http://homepage3.nifty.com/ishidate/vcpp6_g16/vcpp6_g16.htm
↑ここのサイトのサンプルを作成したのですが、
表示が1ポイントずつ表示され遅いです
画像の表示を早くする方法はありますか?

またファイルの読込を初めからファイル指定&readする方法を教えてください。

つまり
Serializeでやってるようなことが
View::OnDrawで出来様にしたいです

まだまだ初心者なので質問内容も変な点があるかと思いますが
よろしくお願いします。


287 名前:284 :04/12/17 12:01:14
>>285
ありがとうございます。
でもそうすると、今VC++.NET2003でコンパイルエラーとなっている
のが理由がわかんないんですが...

JVM g_jvm;

って部分に
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2146: 構文エラー : ';' が、識別子 'g_jvm' の前に必要です。
ってエラーが出てるんですが...


288 名前:デフォルトの名無しさん :04/12/17 12:05:17
>>286
DICOM画像用のライブラリかなんかがあるんじゃないの?
少なくともVC単体では無理。

289 名前:デフォルトの名無しさん :04/12/17 12:07:15
>>287
エラーはそれ一つだけ?

290 名前:286 :04/12/17 12:42:44
>>288
上記の遅いってのはVCでdllを作りVBにハンドルを渡そうって思っています。
早くする方法ないかなと思ったのですが・・・。

下記のファイルを初めから指定する方法は無理なのでしょうか?

291 名前:デフォルトの名無しさん :04/12/17 13:03:45
>>289
いや、山ほどあります。
いちばん最初のがこれで。

とりあえず最初の6行だけ
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2146: 構文エラー : ';' が、識別子 'g_jvm' の前に必要です。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2501: 'JVM' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(32) : error C2501: 'g_jvm' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2143: 構文エラー : ';' が '*' の前にありません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2501: 'ServiceCFG' : 識別名を宣言するのに、型が指定されていません。
c:\work\KibanSeigyoSvc\KibanSeigyoSvc.cpp(35) : error C2501: 'g_pConfig' : 識別名を宣言するのに、型が指定されていません。

32行目
JVM g_jvm;
35行目
ServiceCFG *g_pConfig;

292 名前:デフォルトの名無しさん :04/12/17 13:09:37
JVMとかServiceCFGが定義されてる
ヘッダファイルをインクルードしなさい。

293 名前:デフォルトの名無しさん :04/12/17 13:25:41
>292
インクルードは
#include "stdafx.h"
としていて、stdafx.hの中で
#include "JVM.h"
#include "servicecfg.h"
としているんですが。

294 名前:デフォルトの名無しさん :04/12/17 13:35:52
突然なんですが、この式をstatementにするにはどうやって記述すればいいでしょうか?

      rate*(1+rate)N
payment = ━━━━━━━━━
      ((1+Rate)N-1)

ちなみにNの部分は自乗です。
どうもわからないのでよろしくお願いします。


295 名前:デフォルトの名無しさん :04/12/17 13:36:54
>>290
>早くする方法

CreateDIBSection()で描画領域と同じ大きさのHBITMAPを作成する。
HBITMAPをSelectObject()したHDCにSetPixcel()していく。
OnDraw()ではそのHBITMAPを使って描画する。

296 名前:デフォルトの名無しさん :04/12/17 13:39:13
>>294
payment = rate*pow(1+rate, N) / (pow(1+Rate, N) - 1);
こういうこと?

297 名前:デフォルトの名無しさん :04/12/17 13:43:40
>>293
リビルドすればOKだったというのはよくある話。

298 名前:デフォルトの名無しさん :04/12/17 14:07:23
>>297
リビルドすると違うエラーが出ますねえorz

とにかく全面的にVC++.NET2003のコンパイル方法がわからない
んでお手上げ状態です。
MSDN見ても何が何やら...
どこかにコンパイル方法について書いてあるHPってありませんか?
本だとやっぱり公式解説書がいいんでしょうか?

299 名前:デフォルトの名無しさん :04/12/17 14:10:25
好きな数字を10入力して
最後に一番大きい数字を出力する
プログラムなんですが
最後に出力される数字が明らかにおかしいです。
プログラムのどこがおかしいでしょうか?
実行は可能なんですが・・・
以下に書きます。

300 名前:286 :04/12/17 14:10:45
>>295
ありがとうございます。がんがってみます。

よかったら初めから該当ファイルをLOADする方法が分かりましたら教えてください。

301 名前:299 :04/12/17 14:10:45
#include<stdio.h>
void main()
{
int numbers[9];
int i;
for(i=0;i<9;i++)
{
printf("好きな数字を入力して下さい。\n");
scanf("%d",&numbers[i]);
}
for(i=0;i<=9;i++)
{
if(numbers[i]>=numbers[0] &&
numbers[i]>=numbers[1] &&
numbers[i]>=numbers[2] &&
numbers[i]>=numbers[3] &&
numbers[i]>=numbers[4] &&
numbers[i]>=numbers[5] &&
numbers[i]>=numbers[6] &&
numbers[i]>=numbers[7] &&
numbers[i]>=numbers[8] &&
numbers[i]>=numbers[9])
{
printf("一番大きな数字は%dです。\n",numbers[i]);
break;
}
}
}

302 名前:デフォルトの名無しさん :04/12/17 14:36:09
>>299
プログラムの間違いは,
printf("一番大きな数字は%dです。\n",numbers[i]);
ここで,number[i]のiって,forで使用しているから必ず9でしょ.
だから出力は最大値とか関係なくnumber[9]が出る.

最大値を求めるならば,
int max = intの最小値;
int j = 0;
for(i=0;i<=9;i++) {
if(number[i]>max) {
max = number[i];
j = i;
}
}
printf("一番大きな数字は%dです。\n",numbers[j]);
こういうのが普通と思うよ.

303 名前:デフォルトの名無しさん :04/12/17 14:37:22
間違いを指摘する方が面倒臭い。
#include<stdio.h>
int main()
{
  int max = 0;
  int i;
  for (i = 0; i < 9; i++)
  {
    int num;
    puts("好きな数字を入力して下さい。");
    scanf("%d", &num);
    if (num > max)
    {
      max = num;
    }
  }
  printf("一番大きな数字は%dです。\n", max);
  return 0;
}


304 名前:294 :04/12/17 14:39:38
>>294なんですが、以下の問題が解けません。どうか力を貸していただけないでしょうか?
よろしくお願いします。

Problem: 以下の処理を実行する対話型のC++プログラムを書いてください。
Input: cinを使って、以下のプログラムにキーボードからの次のデータおよび入力を、
    Coutを使って以下のように出力するコードを書きなさい。

a.the interest rate
b.the number of payments
c.the amount of the loan

次の式を使用して、ローンの毎月の支払額を計算してください。
Rate * (1+Rate)N
Payment = ━━━━━━━━━━━━ * L
((1+Rate)N-1)
Rate は monthly interest rate の事で、年間12%で、月間にすると1%
N はnumber of payments の事
L は amount of the loan の事

Output: 出力フォーマットの例は次に記します。次と同じ出力が出来るプログラムを完成させてください。

Loan Amount : $ 10000.00
Monthly Interest Rate : 1%
Number of Payments : 36
Monthly Payment : $ 332.14
Amount Paid Back : $ 11957.15
Interest Paid : $ 1957.15

305 名前:デフォルトの名無しさん :04/12/17 14:48:05
質問が続いているところ申し訳ない。

自分がCreateProcessしたプロセスを安全に終了させる(終了して貰う)にはどうすればいい?
少なくともTerminateProcessでは巧くいかないらしいことと、タイトルでウィンドウを特定できないことはわかっている。
自分がCreateしたんだからプロセスハンドルやプロセスIDは判っているので何か手はあると思うのだけど。

306 名前:299 :04/12/17 14:51:43
>>302-303
ありがとうございました

307 名前:デフォルトの名無しさん :04/12/17 15:12:36
>>305
PostThreadMessage()でWM_QUITを投げてみたらどう?

308 名前:305 :04/12/17 15:15:46
>>307
うい、試してみます。Thx!

309 名前:286 :04/12/17 15:25:01
再度質問
http://homepage3.nifty.com/ishidate/vcpp6_g16/vcpp6_g16.htm
ここでやっているファイルの読込部分を(Serialize)
初めからファイルを指定し(c:\\aaa.dcmなど)起動直後に行いたいです。

どうのような方法で行ったらよいですか?

310 名前:デフォルトの名無しさん :04/12/17 15:57:44
MFCならCWinApp::OpenDocumentFile

311 名前:デフォルトの名無しさん :04/12/17 16:01:05
>>305
「TerminateProcessでは巧くいかないらしい」
これのソースは?


312 名前:305 :04/12/17 16:08:30
>>311
死ぬには死ぬんですが、資源の後始末ができないのです。
で、CreateProcessで得たスレッドIDに対してPostThreadMessageでWM_QUITを投げる方法でよさそうです。

313 名前:デフォルトの名無しさん :04/12/17 16:44:06
>>311
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_terminateprocess.htm
> 特別な状況でのみこの関数を使ってください。

314 名前:286 :04/12/17 17:16:29
>>310
確かに・・・。必死こいて調べたら何とかできました。
ただdllを作成したかったのでシリアライゼーション部分も変更しなければなりませんね・・・。
(↑Serializeもまだあまり分かってない・・・初心者なもんで・・・。)

やりたいことは、VBからファイルを指定してdllを呼び
DICOM画像を表示したいってな奴を作りたいのです。
どうやったら・・・助けてください


315 名前:デフォルトの名無しさん :04/12/17 19:07:21
>>299のネタに付き合う香具師は、みんなわざとボケてるのか?

int numbers[9]; // ← 10にしろ
for(i=0;i<9;i++) // ← i<10 か i<=9 にしろ

>>302さん、エディタにペーストしてタブつけてみればわかるよ。

316 名前:デフォルトの名無しさん :04/12/17 20:54:46
>>315
VCスレなんだからスルーして流せよ

317 名前:デフォルトの名無しさん :04/12/18 00:28:21
VC6から.netに乗り換えたのですが
STLを使ってコンパイルした物をバイナリエディタで開くと
failure@ios_base@std@@・・・・
のようなゴミ?が沢山くっつきます。VC6のときはくっつかなかったんですが
これは一体なんなのでしょうか?また消す方法はありますでしょうか?

318 名前:デフォルトの名無しさん :04/12/18 00:29:40
>>317
ついたら何かまずいのか?
何がしたいのかよくわからん。


319 名前:デフォルトの名無しさん :04/12/18 00:41:07
名前空間とかそういうもののようですが、
Releaseビルドなのにデバッグ情報が残っているのではないかと思うのですが。
それって、まずくないですか?

320 名前:デフォルトの名無しさん :04/12/18 00:53:29
すいません、質問です(初心者的質問で恐縮です)
現在、自分はVC++.NET2003でフォームアプリケーションを作ろうとしていて
ビルドを何度行っても、成立しません・・・(当然か)
ソースコードは間違っていません。
エラー内容が↓
エラーの結果が 'resgen.exe' より返されました。(エラー番号なし)
でした。試しに、何も生成してないフォームアプリをビルドしても
このエラーが出てきます。おそらく、自分の開発環境自体に問題があるのでしょうが
さっぱりわかりません。MSDNで関連事項を調べてもさっぱりなのです・・・
このエラーわかる方、いっらっしゃいましたら、ご指導ください
お願いします

321 名前:デフォルトの名無しさん :04/12/18 02:27:56
エスパー伊藤君出番だよ〜

322 名前:デフォルトの名無しさん :04/12/18 02:41:24
あははは。ま、週末だから運がよければ現れてくれるかもね。

323 名前:デフォルトの名無しさん :04/12/18 03:23:12
>>321
×伊藤
○伊東

324 名前:デフォルトの名無しさん :04/12/18 05:23:15
>>320
インストールに失敗してるんじゃないの?

325 名前:デフォルトの名無しさん :04/12/18 07:33:45
以前はできたのだが・・

326 名前:デフォルトの名無しさん :04/12/18 07:58:29
ソースくらい出せよ

327 名前:デフォルトの名無しさん :04/12/18 10:58:47
ユーザ権限が違うとか。

328 名前:デフォルトの名無しさん :04/12/18 17:26:59
英語版のVCで日本語入れると文字化けしてしまうんですけど解決法
ってあるんでしょうか? やっぱ日本語版買わないといけないんでしょうか。

329 名前:デフォルトの名無しさん :04/12/18 17:31:01
そんなことはない

330 名前:デフォルトの名無しさん :04/12/18 17:33:43
コンパイラとかは同じだろ
日本語の部分はテキストエディタで編集すればいけるはず

331 名前:デフォルトの名無しさん :04/12/18 17:36:53
もしかするとフォント設定すればいいだけかも

332 名前:デフォルトの名無しさん :04/12/18 17:37:26
それふぉんと?

333 名前:デフォルトの名無しさん :04/12/18 18:07:01
 ( ´д)ヒソ(´д`)ヒソ(д` )ヒソ

334 名前:デフォルトの名無しさん :04/12/18 18:55:15
楽しいね

335 名前:デフォルトの名無しさん :04/12/18 19:47:12
両手をたたくと

336 名前:デフォルトの名無しさん :04/12/18 20:02:25
痛い、

337 名前:デフォルトの名無しさん :04/12/18 20:24:41
328です。
説明不足でした。VC++上では日本語きっちり表示されるんですけど、
コンパイルすると化けて出るんです。

338 名前:デフォルトの名無しさん :04/12/18 20:26:11
化けて出るんならお払いすればいいじゃない

339 名前:デフォルトの名無しさん :04/12/18 20:27:22
まずはソースを出せ。
話はそれからだ。

340 名前:デフォルトの名無しさん :04/12/18 20:32:08
328です。恥ずかしながらどの部分のソースを出せばいいか分かり
ません。

341 名前:デフォルトの名無しさん :04/12/18 20:34:49
全てをアーカイブしてその辺りのアップローダに放り込め。

342 名前:デフォルトの名無しさん :04/12/18 21:14:28
リソーススクリプトの中で言語やフォントを指定してるから

343 名前:デフォルトの名無しさん :04/12/18 21:21:01
そういえば外国語のソフトを日本語化して香具師もいるわけだし
たぶんソフト板で聞けば教えてくれるだろ

344 名前:デフォルトの名無しさん :04/12/18 22:46:54
328です。
 みなさんに頂いたレスを参考にいろいろ試した結果解決しました。
 例えばダイアログにボタンを配置した場合、リソースビューに出てくる
ダイアログのリソース名がIDD_DIALOGS_DIALOG[English(U.S.)]となってた
ので、プロパティーで言語をJapaneseにしてみましたところ解決しました。
 アプリウィザードの時には言語をEnglishにしか指定できないようになって
いるので、個別のリソースで指定できるとは思っていませんでした。
 日本語版を買おうか真剣に迷っていたので助かりました。
 ありがとうございました。

345 名前:デフォルトの名無しさん :04/12/18 23:23:10
VC++6.0sp6を使用しています。
ダイアログエディタでダイアログにコンボボックスを配置して適当なデータを
入れた状態でダイアログのテストをしてみるとコンボボックスの選択欄が
下がらず、テストで入れたデータも選択できません。

コンボボックスの設定もいろいろ替えてみましたが、やはり下がらないの
ですが、どこらへんに気をつければいいのでしょうか?

346 名前:デフォルトの名無しさん :04/12/18 23:34:11
三角のところをびろーーーーーんと伸ばせるよ
簡単だけど文章じゃうまく説明できない

347 名前:デフォルトの名無しさん :04/12/18 23:48:16
>>346
レスありがとうございます。
とりあえずびろーんと下げられました。

・・・と思ったら新たな問題が・・・・
 for( i = 0; i < gDevNum; i++){
  SendMessage( GetDlgItem( hWnd, IDC_LIST1), LB_ADDSTRING, 0, (LPARAM)gAllDev->description);
  SendMessage( GetDlgItem( hWnd, IDC_COMBO1), LB_ADDSTRING, 0, (LPARAM)gAllDev->description);
 }
のコードでIDC_LIST1のリストには文字が表示されるのですが
IDC_COMBO1のコンボボックスには文字が表示されません。
コンボボックスはソートにチェックを入れているのでこれで問題ないはずなんですが、
なぜ表示されないのでしょう??

348 名前:デフォルトの名無しさん :04/12/18 23:51:06
もしかして
http://pc5.2ch.net/test/read.cgi/tech/1102753497/
ここで質問してたひと?

349 名前:デフォルトの名無しさん :04/12/18 23:55:11
>>347
コンボボックスはテキスト+リストだから
SetWindowTxtするか、リストを選択してやる

350 名前:デフォルトの名無しさん :04/12/18 23:56:36
>>348
違います。ここが初めての質問です。

>>349
早速やってみますね

351 名前:デフォルトの名無しさん :04/12/19 00:03:46
>>349
SetWindowTextもリスト(charのポインタ配列でいいのかな?)も試してみましたが
いずれもうまくいきません。

352 名前:デフォルトの名無しさん :04/12/19 00:06:55
MSDNライブラリを見ると、_lrotr という intrinsic があるようなのですが、
ROR命令が生成されず、無視されてしまいます。

VC6.0 SP6 と VS.NET 2003 の両方で試しましたが、NGでした。
これを使えている方いらっしゃいませんか?

ちなみに、インラインアセンブラで書けばROR命令は使えるのですが、
コンパイラがインラインアセンブラで書いた行を越えての最適化をできなくなるらしく、
出力されるコードが遅くなってしまい、>>と<<を使った代替方法のほうが速かったです。

353 名前:デフォルトの名無しさん :04/12/19 09:54:37
>>352
最適化オプションに /Oi を付けるかReleaseビルドにすればよろし。

354 名前:352 :04/12/19 21:00:14
>>353
ありがとうございます。
まさか・・・と思って、rorだけするテストプログラムを書いてみたら、ROR命令が生成されました。
間違いを探します。

/OiをつけなくてもReleaseのデフォルト(実行速度)では、ROR命令が埋め込まれました。
/Oiをつけると、前後で最適化が行われなくなりました。

355 名前:352 :04/12/19 21:13:21
大ポカしていました。

_asm ror x, n
をコメントアウトして、
_lrotr(x, n)
と書いてしまっていました。

x = _lrotr(x, n)
と書き直してうまくいきました。

すみませんでした。

356 名前:デフォルトの名無しさん :04/12/20 00:07:29
質問なのですがMFCを使ったプログラミングの本で入門者にお勧めの物ってありますか?
C、C++、WinAPIは一通りやってある程度理解できたのですが「C++ユーザーのためのWindowsプログラミングの基礎知識」と言う本を
読んだのですがさっぱり理解できなかったもので…
もしかしたらスレ違いかもしれません。すいません

357 名前:デフォルトの名無しさん :04/12/20 16:40:36
入門者向けなら林晴比古氏ので良いかな。
C、C++、WinAPIを一通りやってある程度理解できたのなら
簡単に理解出来るだろう。
ただ、本当に簡単なサンプルしか扱っていないので
それでまともなプログラミングが出来るようになるかと言われると
返答に困るが。コントロールの使い方とかMFC全般について万遍なく
触れているから入門には良いと思う。

358 名前:356 :04/12/20 23:57:36
遅くなりましたが
ありがとうございました。

359 名前:356 :04/12/20 23:59:06
>>358
誰ですか?w

>>357
ありがとうございます。買ってみたいと思います。

360 名前:デフォルトの名無しさん :04/12/21 13:09:06
Spy++でDOS画面の メッセージ を スパイ しようと思いました。そしたら、

『指定の ウィンドウ は スパイ できません。
Windowsは、この ウィンドウ に関する メッセージストリーム への アクセス を許しません。』

と、なります。
ではどうやって、メッセージを受け取って処理すれば、いいのでしょうか?


361 名前:デフォルトの名無しさん :04/12/21 13:18:46
>>360
何のメッセージを欲しいのか知らんが、難しいんで内科医?

362 名前:デフォルトの名無しさん :04/12/21 16:58:07
>>360
ひとりごとはチラシの裏にでも書いとけ

363 名前:デフォルトの名無しさん :04/12/21 18:07:01
>>360
外側の枠の辺りじゃ駄目かね。

364 名前:デフォルトの名無しさん :04/12/21 22:38:32
Visual C++ 6.0 で C4067 のエラーが出ました。

たとえば、次のようなコードでこの警告が発生します。
#endif NO_EXT_KEYS
/Ze オプションを指定してコンパイルするか、次のようにコメント デリミタを使用すると、この警告が発生しません。

この /Ze オプションはどうやって指定すればいいのでしょうか?

365 名前:デフォルトの名無しさん :04/12/21 22:44:35
>>364
コメントアウトしろ。

366 名前:デフォルトの名無しさん :04/12/21 22:46:11
そうします。

367 名前:デフォルトの名無しさん :04/12/21 22:47:33
本来はエラーになってもいいはず。

368 名前:デフォルトの名無しさん :04/12/22 00:45:42
かなり初歩的とは思うんですが
どうにも自分では解決できそうにないのでご教授くださいまし・・・

心理テスト風に複数の質問(switch文)からさらに複数の質問へ、というのがどうも出来ません。
どうしたらよいのでしょう・・・


369 名前:デフォルトの名無しさん :04/12/22 01:18:05
>>368
心理テスト風に複数の質問(switch文)からさらに複数の質問へ
というプログラムを書く。

370 名前:デフォルトの名無しさん :04/12/22 01:29:00
理屈は分かるんですが・・・
なぜかうまくいかない。

自分のやり方だと二回目の選択肢は選択する暇も無く、全部さらしてしまいます…

371 名前:デフォルトの名無しさん :04/12/22 01:36:12
caseの最後にbreakが無いんじゃないの?

372 名前:デフォルトの名無しさん :04/12/22 01:45:42
とりあえず、ソースでも晒したらどうだい?

373 名前:デフォルトの名無しさん :04/12/22 01:49:34
switchのcaseの中にswitchを入れ子にしようとしてる?

なら、中カッコで括ってみ。

374 名前:デフォルトの名無しさん :04/12/22 02:03:44
#include <stdio.h>
#include <conio.h>
main() { char neta;
int A;printf("質問文\n");
printf("a: b: c:>");
scanf("%c",&neta);
switch(neta){
case'a':printf("ハズレ\n");A=2;
break;
case'b':printf("ハズレ\n");A=2;
break;
case'c':printf("ハズレ\n");A=2;
break;
default:printf("あたり\n");break;}
getch();if(A==2){printf("GAMEOVER\n");
}else{printf("次の問い\n");}
return 0;}


375 名前:デフォルトの名無しさん :04/12/22 02:04:36
こんな感じのやつにswitch文を追加したいのです・・・

376 名前:デフォルトの名無しさん :04/12/22 02:24:40
インデントが汚すぎる。
多分scanfとgetch()の後にrewind(stdin)入れとけば解決する予感・・・

377 名前:デフォルトの名無しさん :04/12/22 02:27:40
指摘ありがとうございます!

さっそくやってみようと思います!

378 名前:デフォルトの名無しさん :04/12/22 02:32:06
解決しました!!
本当にありがとうございました!!

379 名前:デフォルトの名無しさん :04/12/22 08:20:06
会議中に ClientApp を クライアントアププ って読んだら激しく笑われました。どうしてくれるんですか?

380 名前:デフォルトの名無しさん :04/12/22 08:38:49
フォームのサイズを変更したときに、フォーム内に貼り付けているピクチャボックスのサイズをフォームの大きさに合わせて拡大する方法を教えてください。
あと、ボタンの位置をフォームの右端で固定したいです。フォームのサイズを変更してもボタンが右端にくるようにするにはどうしたらよいでしょうか?

381 名前:デフォルトの名無しさん :04/12/22 08:49:14
>>380
最初のクライアント領域のサイズを覚えといて
増えたり減った分だけコントロールのサイズを調整
ボタンの場合はサイズじゃなくて位置を直す

382 名前:デフォルトの名無しさん :04/12/22 08:54:59
>>381
早速レスありがとうございます
ピクチャボックスの方はGetClientRect()で現在のフォームサイズを取得して、
CWnd::MoveWindow()でうまいことやればいけそうですね

ボタンの方はどうやるのかしら?

383 名前:デフォルトの名無しさん :04/12/22 09:02:04
ボタンも同じ方法でいけました。ありがとうございましたーぁぁぁ
CWnd *myButton1 =(CButton *)GetDlgItem(IDC_BUTTON1);
myButton1->MoveWindow(cx-100, 10, 90, 20);

384 名前:デフォルトの名無しさん :04/12/22 09:56:44
>>383
今更かもしれんが、ResizerでCodeGuruを探すと参考になりそうな代物が出てくると思うよ。
#一個や二個なら自前で調整してもいいけどね。

385 名前:デフォルトの名無しさん :04/12/22 11:35:26
char buffer[10];
strncpy(buffer, "AAA", 3);
strncat(buffer, "               ", 25);
strncpy(buffer, "BBB", 3);

文字列にスペースを25個追加する時に、いちいち"    "と
記述しないといけないんでしょうか?

VBならSpace(25)でできますが・・・
うまい方法があったら教えて下さい。

386 名前:385 :04/12/22 11:37:02
うげ。修正します・・・。
char buffer[32];

387 名前:デフォルトの名無しさん :04/12/22 11:38:45
クラスにイベントハンドラを追加したらClassViewからそのクラスが消えちゃったよぅ(><)
cppファイルはちゃんとあって、イベントハンドラも追加されてるます。
どうやったらClassViewにクラスを表示させられますか?

388 名前:385 :04/12/22 11:47:21
さらに訂正します。ここはVC++スレなので他所へ書きます。
お騒がせしました。

389 名前:デフォルトの名無しさん :04/12/22 12:15:11
>>387
ncb ClassView でぐぐる

390 名前:デフォルトの名無しさん :04/12/22 12:21:02
こんにちは

VC++version2003ですが、
VC++6にあったClassWizardが見当たりません。

どこにあるのでしょうか?
(ちなみに、VC++6の場合、メニュー→表示→ClassWizardにあるのはいうまでもないです)

391 名前:デフォルトの名無しさん :04/12/22 12:34:19
>>390
そういう超基本的なことは
まずヘルプ嫁
馬鹿なら本買え

392 名前:デフォルトの名無しさん :04/12/22 12:36:39
>>391
ウルセーんだよ

393 名前:デフォルトの名無しさん :04/12/22 12:50:50
>>390
バージョン2003からは、表示→ClassWizardはなくなりましたよ。
なので、自分で追記するしかないです。
めんどうですが。

394 名前:デフォルトの名無しさん :04/12/22 12:53:04
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15695&forum=7

件名:VC++ .NET のイベントハンドラ

ジロボット


会議室デビュー日: 2004/02/29
投稿数: 4 投稿日時: 2004-10-14 18:02
--------------------------------------------------------------------------------
VC6++を使ってたのですが、今回初めてVC++.NETを使い始めました。

VC6++のMFC ClassWizardに相当するものはないのでしょうか?


395 名前:デフォルトの名無しさん :04/12/22 12:55:05
http://216.239.57.104/search?q=cache:IB__OWzSqOUJ:www6.ocn.ne.jp/~simuphys/CNET2.html+VC%2B%2B.net+ClassWizard&hl=ja&lr=lang_ja
Visual C++ 6.0 ではMFCアプリケーションを使い,ClassWizardを使うことが出来ましたがこのやり方は .NET ではうまくいかないようです。

396 名前:デフォルトの名無しさん :04/12/22 12:58:02
>>389
おおおおおおお
さんくす!!!!!!!!!!

397 名前:デフォルトの名無しさん :04/12/22 13:01:20
>>390
VC++6のClassWizardは
VC++.NETのプロパティーウィンドウ内に移りました。

>>391
教えないんじゃ、このスレッドの存在意義ないじゃん。
出て行きなさい。

398 名前:デフォルトの名無しさん :04/12/22 13:41:12
>>397
いやいや、ただ教えるより自分で調べるクセ付けさせたほうが
本当の意味で初心者向けのスレと言える。

399 名前:デフォルトの名無しさん :04/12/22 13:59:14
>>397
は?
ここのスレの質問の半分ぐらいは俺が答えてるんだけど

400 名前:デフォルトの名無しさん :04/12/22 14:01:16
>>399
どおりで糞レスが多いと思ったよ w

401 名前:デフォルトの名無しさん :04/12/22 14:11:17
器の差ですな

402 名前:デフォルトの名無しさん :04/12/22 14:54:01
>>397
なんだその説明は
MSDNにちゃんとした説明があるだろ

403 名前:デフォルトの名無しさん :04/12/22 15:19:09
>>385
std::string str;
str += "AAA";
str.assign(25, ' '); //CStringならstr += CString(' ', 25);
str += "BBB";

404 名前:デフォルトの名無しさん :04/12/22 15:42:01
●クルマが自転車にはねられた!9台目
ttp://hobby7.2ch.net/test/read.cgi/car/1103695847/
・・・・・・                      
               ,,,-''" ̄" ゙̄`''ヽ,  
    ,.-'" ̄ ̄" ̄`ヽ, ノ/  u      ヽ  そ、そんなことはありませんよ…。
  /゙  ノ --  u --ヾ l ●    ● i  \
 /   ,/  ●    ● | i ´(_▼_ )  u ;   ゙ヽ
 `ヽ,,_,,( u  ( _▼_ )`/ ヽ   |∪|  _ノ ヽ,,___,ノ
    ./    ヽノ   ヽ,/   ヽノ ⌒ヽ,
    /_,,  / ̄ ̄ ̄ ̄/       l  |
_____(__)/  I.N.U /_____/ /__
     \/____/       (u ⊃

405 名前:デフォルトの名無しさん :04/12/22 20:49:02
メモリデバイスコンテキストに書き込んで
画面更新用スレッドでInvalidateRectを送って
WM_PAINTでBitBltして画面デバイスにメモリデバイスから
描画しているんですが、描画量が多くなってきたら
画面に変なゴミが残って、描画されなくなってしまいます。
ビットマップ転送の為に途中で作ったデバイスコンテキストは
削除しているのですが、何か心当たりあられましたら
お教えください。

406 名前:デフォルトの名無しさん :04/12/22 21:20:11
>>405
マルチスレッドみたいだけど、複数スレッドからGDIにアクセスしていいんだっけ?

407 名前:デフォルトの名無しさん :04/12/22 21:32:02
>>406
すみません、スレッドは1つだけで、
そこから表示するビットマップの位置情報を
更新したりする関数を呼び出した後、メモリデバイスに
描画する関数を呼び出して、最後にInvalidateRectといった用に
しております。描画用スレッドという言葉に語弊がありました。
失礼しました。

408 名前:デフォルトの名無しさん :04/12/22 21:41:31
>>407
DCにSelectObjectしたものを元に戻さず削除してないか?

409 名前:デフォルトの名無しさん :04/12/22 22:08:10
VC.net
キーボードとマウスからの入力はWM_KEYDOWNなどを受け取るので分かりますが、
ゲームのコントローラーからの情報はどうやれば分かるのでしょうか。
spy++でやってもコントローラーからの情報は一切受け付けません(出力を全て選択していますが該当するものは元々なさそう)。
コントロールパネルのゲームコントローラーは正常に受け付けています。
ゲームのコントローラーは[PS2のコントローラー]-[コンバーター(USB接続)]-[PC]と繋いでいます。

410 名前:409 :04/12/22 22:12:20
1行目VC++.netの間違いです

411 名前:デフォルトの名無しさん :04/12/22 22:23:35
>>409
スレ違い
自分で作っててわからんはずがない

412 名前:デフォルトの名無しさん :04/12/22 22:30:12
>>408
確認したのですが、HPEN等は、
HPEN hPen,hOldPen;
hPen=CreatePen(PS_SOLID,1,RGB(0,0,0));
hOldPen=SelectObject(hBufferDC,hPen);
//ここで描画しています。
SelectObject(hBufferDC,hOldPen);
if(hPen)DeleteObject(hPen);
という様にやっております。
もしかしてhOldPen等も削除しなければいけないでしょうか。
後、ビットマップを描画する為に一時的に
オフスクリーンデバイスコンテキストに互換性のあるhMDCを
作成して、それをビットマップをロードしたhMBITMAPに結びつけて
オフスクリーンに転送しているのですが、
これを削除する時にも何かしなくてはいけないでしょうか。
長文すみません。

413 名前:デフォルトの名無しさん :04/12/23 01:05:10
>>412
SelectObjectで選択オブジェクトを変更したDCを破棄/解放するときは
元の状態に戻さなければならない。
DCに選択させたままのオブジェクト(ビットマップ、ペン等)を破棄してはならない。

414 名前:デフォルトの名無しさん :04/12/23 01:07:05
>>413
という事は、この場合でのhOldPen等は削除してはいけないのですね。
夜分遅くにすみません。色々試してみますね。

415 名前:デフォルトの名無しさん :04/12/23 08:59:55
クイライアントアププっw

416 名前:デフォルトの名無しさん :04/12/23 09:00:50
クライアントアププっ

417 名前:デフォルトの名無しさん :04/12/23 09:59:52
初心者に優しくないスレだなぁ。
正しく「アップップ」だって教えてあげればいいじゃん。

418 名前:デフォルトの名無しさん :04/12/23 10:03:33
クライアントアーッ!! ああーっ!!

419 名前:デフォルトの名無しさん :04/12/23 11:45:04
こうして『クライアントアププ』スレが出現し
変貌を繰り返し、今の「ぬるぽ」へ

420 名前:デフォルトの名無しさん :04/12/23 12:13:17
App ってあっぷっぷなの?プゲラウヒョーwww
あっぷっぷうぃざーどwwwwwwうはwwwww

421 名前:デフォルトの名無しさん :04/12/23 14:24:23
ビルドの時に以下の表示が出てIDEからビルドできません。
何が原因なんでしょうか…

LIBCD.lib(a_env.obj) : error LNK2019: 未解決の外部シンボル __imp__GetEnvironmentStrings@0 が関数 ___crtGetEnvironmentStringsA で参照されました。
Debug/EuclidStep2.exe : fatal error LNK1120: 外部参照 1 が未解決です。

422 名前:デフォルトの名無しさん :04/12/23 15:19:01
どっかでひろってきたソースがコンパイルできない
というなら完全なスレ違い。
自分で書いたソースなら何か心当たりがあるはず

423 名前:デフォルトの名無しさん :04/12/23 16:43:52
>>422
いや、自分の書いたソースが駄目だったんでVS付属のサンプルソースでも試して見たんですが駄目でした。
どのプログラムもビルドできないんです…

424 名前:デフォルトの名無しさん :04/12/23 17:30:40
>>423
とりあえず本でも買って勉強してください。
それでわからない時は掲示板で質問するといい。

425 名前:デフォルトの名無しさん :04/12/23 18:38:53
>>423
プロジェクトに〜.dllを参照する為に必要な〜.libをリンクしなければならない
機能を使っているかもしれないので、確認されてみてはどうでしょう。

426 名前:デフォルトの名無しさん :04/12/23 18:51:36
無意味にクライアントアププage〜

427 名前:デフォルトの名無しさん :04/12/23 18:55:18
はっきりいって初心者にVisual C++は使いこなせない
猫に小判
入門書の付録のコンパイラでも使ってなさい

428 名前:デフォルトの名無しさん :04/12/23 19:25:47
では何故にVC厨と言われてしまうのか

429 名前:デフォルトの名無しさん :04/12/23 19:41:02
派閥というか
VCを基準に発言すれば他から反感かうのは当たり前

430 名前:423 :04/12/23 21:24:52
自己解決しました。
ランタイムライブラリが原因だったようです。
マルチスレッドDLLにリンクしたらエラーが出なくなりました。

431 名前:デフォルトの名無しさん :04/12/23 21:33:04
>>430
>>425 のヒント見たんなら自己解決とは言わんが


432 名前:デフォルトの名無しさん :04/12/23 21:33:16
>どのプログラムもビルドできないんです…

なんだこれは
生まれて初めてVCでコンパイルしたようなこと言ってて
かまととか

433 名前:デフォルトの名無しさん :04/12/23 21:35:50
>>431
来てない間にレスあったんですね…orz

>>425
その通りでした、こんな質問にレスをしていただいて有難うございます。

434 名前:デフォルトの名無しさん :04/12/23 21:53:18
横からすまんがありがとう、>>425
サンプルをDLしてもデバッグで失敗するのはVC++のバージョンが違うからだと思っていたけど、libのリンクが関係してたのを初めて知りますた(;´Д`)
CMDでCを初めてコンパイルに成功したような感動を味わっているので思わずカキコ


435 名前:デフォルトの名無しさん :04/12/23 22:10:08
>>434
たいていのサンプルはそのままビルドすればOKですが
VS付属のサンプルなら当然なにもしなくてもOKだし
追加でリンクが必要ならそう書いてあるのが普通
なんか根本的に間違ってるのでは?

だいたいマルチスレッドDLLなんて追加でリンクするもんじゃないですよ

436 名前:デフォルトの名無しさん :04/12/23 22:21:23
>>435
MSDNの英語版は書いてあることすら知らなかったりするけど、一般サイトのサンプルは検索して出てきたところには無くて別のページにあったり・・
それともサンプルのcppを開くときの旧バージョン〜変換するときにそういったデータが飛んでいるのかな?

437 名前:デフォルトの名無しさん :04/12/24 05:47:26
任意で3点(x1,y1)、(x2,y2)、(x3,y3)の点を打ち、その点から中心点(cx,cy)と半径(r)を求め、
そして、基準点を(cx+r,cy) として(x1,y1)と(x2,y2)と (x3,y3)の各々の角度を計算し、
あと (x1,y1) から(x2,y2) を通り(x3,y3)までの円弧を求めるプログラムを作成していただ
けないでしょうか。

438 名前:デフォルトの名無しさん :04/12/24 05:54:02
>>437
意味不明
スレ違いだし。
宿題スレ行っても放置されるかも。

439 名前:デフォルトの名無しさん :04/12/24 16:01:10
すみません さっき別スレに書いてしまいました

VC++でMFCのプロジェクトを作っているんですが、
CSVファイルを読み込んで、1カラムずつ
取得してファイルの最後まで読み込むというロジックをつくりたいんです

@ Readfile で、 file のEOF 検出ってできますでしょうか?
A 1カラムずつの取得ってどうやるんでしょうか?
   readfile だと、バイト取得しかできないのでしょうか?

2点お願いします


440 名前:デフォルトの名無しさん :04/12/24 16:38:12
こんにちは。

プログラム全体の最適化オプション(/GL)をつけると、
アセンブリコ-ドが出来ないのですが、何故でしょうか。

441 名前:デフォルトの名無しさん :04/12/24 16:58:45
>>440
意味もわからんのにいじるな基地外

442 名前:デフォルトの名無しさん :04/12/24 17:02:09
>>439
MFCならCFile使うんじゃないか?

443 名前:440 :04/12/24 17:03:04
>>441
うるせー場可。困ってんだよ。
もうこねーよ ケッ(゚Д゚)パ-ヤ

444 名前:439 :04/12/24 17:23:38
>>442
なるほどです ていうか使ったことがなかったので
想像できませんでした
ちょっと、調べてこちらで作ってみます 
ありがとうございました

445 名前:デフォルトの名無しさん :04/12/24 17:30:41
>>444
こういうのとか
探せばサンプルみつかるよ
http://www.codeproject.com/file/importstringvalues.asp?print=true

446 名前:デフォルトの名無しさん :04/12/24 20:57:45
>439
ADOでできなかったっけ?

じゃなきゃ、1レコード毎(CRLF検出)にカンマ区切ってやるしかない?

447 名前:デフォルトの名無しさん :04/12/24 21:02:45
>445
そういう方法があったのね。
なるほど。


448 名前:デフォルトの名無しさん :04/12/25 02:29:41
VC6の比べて、VC7.1のコンパイラが異様に遅いのですが、何か工夫できることはありますか?

449 名前:デフォルトの名無しさん :04/12/25 02:38:19
>>448
メモリを増やす。
ディスクを置き換える。
CPUを(マザボごと)置き換える。
諦める。

450 名前:デフォルトの名無しさん :04/12/25 02:42:32
>>448
バックグラウンドで動いてるエロゲーを終了させる。
スタートアップメニューからエロゲーを削除する。

451 名前:448 :04/12/25 04:52:13
>>449
ディスクアクセスはほとんどないので、メモリもディスクもネックになっていないと思います。
タスクマネージャで見るとCPU使用率が100%なので、本当にコンパイラが遅いのだと思います。

CPUは・・・たしかに今時1GHzじゃダメですか・・・。VC6なら十分だったのに・・・。

>>450
そもそもエロゲーなんてインストールしてません。

452 名前:デフォルトの名無しさん :04/12/25 10:17:32
VC++で特定フォルダのファイルの書込み更新の監視プログラム
を作成しようと考えております。

http://www.athomejp.com/goldfish/api/filechangenotification.asp
を参考に行っているのですが、ファイルの書込みを行った時点でスレッ
ドが2重で実行されてしまいます。

これを回避する方法はあるのでしょうか?
Sleep等で時間調整を行ってもだめでした。

FindNextChangeNotificationで次期の監視を開始する際にうまく
いっていないような気がします。


453 名前:デフォルトの名無しさん :04/12/25 10:44:33
WindowsXPユーザーです。フォルジュに
rtf2latexのソースらしいものが落ちています。
これを拾ってうちのXPマシンで使いたい。

いえには、購入したのにインストールしてないVC++の
CDがあります。こいつをインストールして、うえのソースを
コンパイルするとRTF。。。。使えるようになりますか?
C言語系統はまったく初心者です。VBとかのコーディングは外部
装置を制御するためやらされてますが。
教えてください。

454 名前:デフォルトの名無しさん :04/12/25 10:46:26
http://sourceforge.net/projects/rtf2latex2e


rtf2latex2e is a program that translates RTF (rich text format) files into LaTeX
files. It translates text formatting, tables, figures, and equations. The resulting
LaTeX files are quite readable and suitable for editing.

License: GNU General Public License (GPL)
Programming Language: C
Topic: Word Processors
Translations: English
Project UNIX name: rtf2latex2e
Package Version Date Notes / Monitor Download
rtf2latex2e-win 1.0fc1 November 26, 2000 - Download


455 名前:デフォルトの名無しさん :04/12/25 11:56:17
>>454
誤爆?文盲?
UNIXと書いてあるだろ

456 名前:デフォルトの名無しさん :04/12/25 12:41:53
すまん。なかにバイナリファイルがあって、そこにRTFファイル
投げ込むだけでした。

457 名前:デフォルトの名無しさん :04/12/25 13:08:42
>>451
Debugビルド同士を較べても遅い?
Releaseビルドなら7.1の方がより最適化が細かいから遅いのも仕方ないと思うけど。
#つーか、問題になるなら分割すりゃいいじゃん。

>>452
ソース晒してみ。
私の場合は無限待ちじゃなくてPollingで実装した記憶がある。

458 名前:デフォルトの名無しさん :04/12/25 13:32:38
↓のコードでリソースファイルに書いたバージョン番号などを取得しようとしても失敗します。解決策を教えていただけないでしょうか
static BOOL OnInitDialog( HWND hWnd)
{
    char filePath[_MAX_PATH];
    char labelText[256], verInfo[512];
    char *buff;
    UINT size;

    GetModuleFileName( (HINSTANCE)( GetWindowLong( hWnd, GWL_HINSTANCE)), filePath, sizeof(filePath));
    GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductName", (LPVOID*)buff, &size);
    strcpy( labelText, buff);
    SetWindowText( GetDlgItem( hWnd, IDC_PRO_NAME), labelText);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\LegalCopyright", (LPVOID*)buff, &size);
    strcpy( labelText, buff);
    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\CompanyName", (LPVOID*)buff, &size);
    strcat( labelText, buff);
    SetWindowText( GetDlgItem( hWnd, IDC_COPYRIGHT), labelText);

    VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductVersion", (LPVOID*)buff, &size);
    sprintf( labelText, "Version %s", buff);
    SetWindowText( GetDlgItem( hWnd, IDC_VERSION), labelText);

    return TRUE;
}


459 名前:デフォルトの名無しさん :04/12/25 13:58:25
どんな風に失敗しているのかわからないので
対処のしようがありません。

↓次の方どうぞ

460 名前:458 :04/12/25 16:44:20
これは失礼を
VerQueryValue( verInfo, "\\StringFileInfo\\041104b0\\ProductName", (LPVOID*)buff, &size); 
でbuffに何も入ってきません(NULLになる)。

461 名前:デフォルトの名無しさん :04/12/25 17:01:52
>>460
> GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo);
成功してるのか?

462 名前:458 :04/12/25 17:19:54
GetFileVersionInfo( filePath, NULL, sizeof(verInfo), verInfo); 
関数は成功しているようです。(戻り値は1でした)

463 名前:デフォルトの名無しさん :04/12/25 17:37:40
>>460
> \\041104b0\\
言語とコードページの指定は本当にあっているのか?

464 名前:458 :04/12/25 17:40:53
言語コードやその後ろのProductNameなどはリソースファイルからコピペしたもので、
間違いはないと思います

465 名前:デフォルトの名無しさん :04/12/25 18:00:13
MSDNライブラリからのコピペ
一度このとおりにやってみたら?

--------------------------------------------------------
// 列挙された言語とコードページを格納するために使われる構造体。
struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
} *lpTranslate;

// 言語とコードページのリストを読み取る。
VerQueryValue(pBlock,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);

// 各言語とコードページのファイルの説明を読み取る。
for(i=0; i <(cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++)
{
wsprintf(SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\FileDescription"),
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);

// i 番目の言語とコードページのファイルの説明を取得する。

VerQueryValue(pBlock,
SubBlock,
&lpBuffer,
&dwBytes);

}

466 名前:デフォルトの名無しさん :04/12/25 19:07:05
>>452
それで普通。書き込み一回で二回の通知がなされる。
一回だったらむしろ異常。

467 名前:458 :04/12/25 19:29:41
使用している言語はVC++6sp6です。
うちのMSDNライブラリには>>465さんのコードが見当たりません。
また、このコードを実行してみましたが、
VerQueryValue(pBlock, 
TEXT("\\VarFileInfo\\Translation"), 
(LPVOID*)&lpTranslate, 
&cbTranslate);
でサイズ(cbTranslate)が0byteになります。もちろんforループもすっ飛ばして実行されません。
なんでなんだろうorz

468 名前:451 :04/12/25 20:52:48
>>457
Debug版のビルドでも遅いです。
分割してみたら、だいぶ速くなりましたが、まだまだ圧倒的に遅いです。

VC6では/Zmオプションをつけないとヒープ不足のエラーが出るので気がついたのですが、
VC7からコンパイラが動的にメモリを確保するようになって、大きなソースの処理時間が指数関数的に伸びたのかも。

469 名前:デフォルトの名無しさん :04/12/25 21:43:31
そりゃ関数が阿呆みたいにでかいんだろ。

470 名前:デフォルトの名無しさん :04/12/25 22:18:26
>>468
もっとカルシウムを摂取したらいいんじゃないの?

471 名前:デフォルトの名無しさん :04/12/25 22:19:41
>>468
プリコンパイルヘッダを有効に使うとか

472 名前:デフォルトの名無しさん :04/12/25 23:01:46
>>467
pBlock バッファを正しく初期化するために、VerQueryValue を呼び出す前に、
GetFileVersionInfoSize と GetFileVersionInfo の各関数を呼び出してください。

473 名前:デフォルトの名無しさん :04/12/25 23:40:46
ダイアログを必ず最前面にポップアップ表示したい思い、
プロパティのSetForegroundをTrueに設定しています。
親ダイアログが最小化されている時は、親は最小化のまま
目的のダイアログだけがポップアップ表示されますが、
親ダイアログが他の画面の裏に隠れている時は、目的の
ダイアログと一緒に表に表示されてしまいます。
後者の場合に目的のダイアログだけを最前面に表示させる
ことは無理でしょうか?

474 名前:451 :04/12/26 01:54:51
>>469
ちょっと大きくてたくさんあります。

>>470
気が短いのは確かですが、10時間越えるのでコンパイルは寝ている間にやってます。
翌朝になっても、まだ終わってなかったりするので、ちょっとイライラしています。

>>471
アドバイスありがとうございます。
プリコンパイルヘッダに含まれる範囲に共通部分を移してみたら、すこし軽くなったような気がします。

そもそも、何か重大な間違いをしているような気もします。

475 名前:デフォルトの名無しさん :04/12/26 02:31:13
面白いなぁ。あるプロジェクト(プロジェクトファイルと言う意味でなく仕事の)に含まれる
全プロジェクトをフルビルドしても恐らく一時間も掛からないんだがなぁ。
CPUクロックが1GHzでディスクも余り回ってないならメモリもそれなりなんだろうし…
どうやったら10時間もコンパイルさせ続けることができるのか寧ろ教えて欲しいや。

476 名前:デフォルトの名無しさん :04/12/26 03:11:08
>>474
10時間超えるコンパイルて……実はSystem-CからFPGAデータコンパイルしてるとかじゃないよな??

477 名前:デフォルトの名無しさん :04/12/26 04:37:51
ソースやワークディレクトリがネット上にあって300bpsで繋いでるとか


478 名前:デフォルトの名無しさん :04/12/26 04:50:11
分散コンピューティングをお勧めする

479 名前:デフォルトの名無しさん :04/12/26 06:06:36
マルチポスト違反で本当に済みません。
ttp://pc5.2ch.net/test/read.cgi/tech/1102900418/l50
で相手していただけなくなりまして。。。

>>コンソールアプリとしてプロジェクトを作り直したら?
そうしてみます。変更できないんですね。。。。
「変更」する方法はありますでしょうか?

別の質問を立て続けに申し訳ないですが、
test = delay_line(1, &wire_data0_bus[0][0], 0, 2, 256);
で、testの返値の設定が無いといけない理由と、
”&wire_data0_bus”と2次元配列での先頭アドレス渡しが出来ない理由を教えていただけないでしょうか。

480 名前:451 :04/12/26 06:29:50
だいぶスレの主旨から外れてしまっていて恐縮です。

>>475
どうしてこんなにコンパイルに時間がかかるのか、わかったらよいのですが・・・。
リリース版だとEXEのサイズが40MBくらいなのですが、
デバッグ版だと220MBありまして、メモリ2GB積んでいても実行することすらできませんでした。
(何のエラーも表示されずに終了してしまう。)

>>476
Visual C++って、FPGAの論理合成(でしたっけ?)に使えるんですか?

>>477
いいえ、ローカルのHDD上です。

>>478
その手がありましたか。
でも、寝て待ちます。(いや、起きてるけど。)

481 名前:デフォルトの名無しさん :04/12/26 07:31:23
何かが根本的に間違っている悪寒

482 名前:デフォルトの名無しさん :04/12/26 09:25:24
多重インクルードと見た

483 名前:デフォルトの名無しさん :04/12/26 10:21:44
プログラミング自体の話題ではないんですが、複数に関数のまとめ方にアドバイスをいただけないでしょうか。
沢山の関数を扱う場合、一つのヘッダ・ファイルとして、インクルードするのが普通なのか、そうではないのかも分かっていないのですけれど。
同じプロジェクトの別関数ファイル”hoge.c”を他ファイルで呼びたい場合、どうすればよいのでしょうか。
プロトタイプ宣言でしょうか?

環境はVC++ 6.0です。よろしくお願いします。

484 名前:デフォルトの名無しさん :04/12/26 10:37:38
>>483
Cスレ行けば?

485 名前:デフォルトの名無しさん :04/12/26 10:50:21
hoge.h に宣言書いて hoge.c に定義を書く。
使う場合は hoge.h を inlcude して関数呼ぶ。

486 名前:デフォルトの名無しさん :04/12/26 10:57:10
>484
>485
レスありがとうございます。
>hoge.h に宣言書いて
プロトタイプ宣言ということでしょうか?

>Cスレ行けば?
行こうと思います。
ありがとうございました。

487 名前:デフォルトの名無しさん :04/12/26 12:01:31
>>480
仕事で書いているプログラムは(一本が)Releaseで100MB、Debugで500MBくらいざら。
でもコンパイル時間はフルビルドでも分単位。
#つーか、ビルドの出力を確認する人間の方が間に合わない程度。
メモリ128MBでも問題なく起動できる。

なので、>481に同意。

488 名前:デフォルトの名無しさん :04/12/26 13:21:28
HDDのDMAが効いてないとか。

489 名前:デフォルトの名無しさん :04/12/26 15:12:21
>>451>>483
よって多重インクルード説でケテーイ

490 名前:デフォルトの名無しさん :04/12/26 15:38:54
ヘッダファイルの中身書いてみそ

491 名前:デフォルトの名無しさん :04/12/26 16:27:06
Releaseで100MBって、中間ファイル?それとも
一個のexeファイル?

492 名前:デフォルトの名無しさん :04/12/29 11:09:28
ソース内でランタイムライブラリの指定(/MD, /MTなど)の方法を教えてちょんまげ

493 名前:デフォルトの名無しさん :04/12/29 11:26:04
pragma

494 名前:デフォルトの名無しさん :04/12/29 11:30:52
その後の続きが欲しいんです…^^;

495 名前:デフォルトの名無しさん :04/12/29 11:36:49
pragmaではcomment(linker,"〜")でリンカオプションしか指定できないのでは…?
コンパイルオプション設定出来たっけ

496 名前:デフォルトの名無しさん :04/12/29 19:17:42
>>495
できるよ

497 名前:デフォルトの名無しさん :04/12/29 21:10:53
>>496
詳しく

498 名前:デフォルトの名無しさん :04/12/29 21:43:21
>>491
実行ファイルだけで、100MBだったら凄すぎですね。
一体何ステップあるのかと… いや、他のリソース部分が大きいのかな?
しかしみなさん、相当でかいアプリ書いてますね。

499 名前:デフォルトの名無しさん :04/12/29 22:05:13
>>497
#pragma optimize で、最適化方法をコンパイラに指示出来る。

500 名前:デフォルトの名無しさん :04/12/29 22:08:17
>>499
>>492は?


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