Microsoft Visual C++ Toolkit 2003 質問箱
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
05/03/01 04:24:15http://msdn.microsoft.com/visualc/vctoolkit2003/
関連スレなどは>>2以降で
0404デフォルトの名無しさん
2005/07/14(木) 00:51:350405デフォルトの名無しさん
2005/07/14(木) 01:31:36SSE2有効でコンパイルされてて問題起こったんじゃなかったっけ?
今度試してみる。
0406デフォルトの名無しさん
2005/07/14(木) 02:01:28> / と % を同時に求めるとかも
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/imaxdiv.3.html
でもまぁパフォーマンス取るなら標準のものを用意した上で
特化バージョン作るのがいいのかも。
0407デフォルトの名無しさん
2005/07/14(木) 03:05:27VC++ないと無理?
0408デフォルトの名無しさん
2005/07/14(木) 03:09:30できません
dspにはMakefileを作るために必要な情報は全て入ってるから、
それをもとに手で書くか、perlスクリプトででも変換しる
0409デフォルトの名無しさん
2005/07/19(火) 18:46:04Code::Blocks使ってみたら。
VC++のプロジェクトをインポートできる。
ttp://www.codeblocks.org/
0410デフォルトの名無しさん
2005/07/21(木) 09:18:31IA-32用、IA-64用とかに分かれちゃってるけど。
もしかしてIA-32のパッケージからはATLやらツール類やらが削られたとか?
更新していいものなのかどうか(´・ω・`)
0411デフォルトの名無しさん
2005/07/22(金) 18:11:16SSEは使いたかったらxmmintrin.hやらfvec.hやらを使えばええよ。
Intelのサイトとかに使い方のマニュアルやらサンプルやらがあるはず。
ICCで使えばもうインラインアセンブラ不要なレベルまで最適化してくれる。
(ロード・ストア操作のスケジューリングを自動化してくれてめちゃくちゃ楽。x86→x64のコード移植も楽々。)
0412デフォルトの名無しさん
2005/07/22(金) 20:09:44それら一応既出な。>>394-395
ICC持ってんのか。うらやましいもんだ。
ICCも速いらしいがVectorCはどうなんだろうな。
学部生の自分にはどっちも高くて手が出ないがorz
0413デフォルトの名無しさん
2005/07/22(金) 21:33:110414デフォルトの名無しさん
2005/07/26(火) 05:07:04どうやったら使えるようになりますか?
0415デフォルトの名無しさん
2005/07/26(火) 14:03:48cl.exeを上書き保存
0416デフォルトの名無しさん
2005/07/26(火) 17:18:47おいおい、
オプションの実行可能ファイルのフォルダ指定で
toolkitのCL.EXEのパスをVSのそれより上位にすればいい。
0417デフォルトの名無しさん
2005/07/26(火) 21:46:19ありがとうございました。
やってみます。
0418デフォルトの名無しさん
2005/07/26(火) 21:51:21ありがとうございました。
やってみます。
0419デフォルトの名無しさん
2005/07/28(木) 07:09:21簡単にコンパイルできる環境ができたよ
0420デフォルトの名無しさん
2005/07/29(金) 08:07:24無理ですか?
0421デフォルトの名無しさん
2005/07/29(金) 12:26:20漏れは使ってる。
2003TKだと6のデバッガが使えずめどいのでテスト中は6でビルド。
6のMFCもmsvcrt71.dllとmsvcrt.dllと両方ロードするようになるのさえ我慢すれば一応リンク可。
0422デフォルトの名無しさん
2005/08/01(月) 01:30:320423デフォルトの名無しさん
2005/08/01(月) 02:21:50誤爆?
0425デフォルトの名無しさん
2005/08/08(月) 17:29:430426デフォルトの名無しさん
2005/08/10(水) 11:19:150427デフォルトの名無しさん
2005/08/11(木) 19:23:460428デフォルトの名無しさん
2005/08/15(月) 02:37:01「LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt」
とでてしまうのですが、何が問題なのでしょうか?
DOSプロンプトから手打ちでは、成功します。
ttp://cazlog.cocolog-nifty.com/blog/2004/04/microsoft_visua.html
に載っているサンプルプログラムを試しています。
0429デフォルトの名無しさん
2005/08/15(月) 18:46:59やってみたけどエラー出なかった。
とりあえず、コンパイラログを貼ってみて。
「Compiler Settings」>「Other」で「Compiler logging」を「Full command line」にしておけよ。
0430428
2005/08/15(月) 20:13:16わざわざ試して頂いてありがとうございます。
ちょっと長くなりますが、こんな感じのエラーでてしまいます。
Project : Console application
Compiler : Microsoft Visual C++ Toolkit 2003 (called directly)
Directory : F:\PROJ\testPoj\
--------------------------------------------------------------------------------
Switching to target: default
RC.Exe /I"D:\Microsoft Visual C++ Toolkit 2003\include" /I"D:\Microsoft Platform SDK\Include" -fo.objs\vctest.res vctest.rc
cl.exe /nologo /I"D:\Microsoft Visual C++ Toolkit 2003\include" /I"D:\Microsoft Platform SDK\Include" /c vctest.cpp /Fo.objs\vctest.obj
vctest.cpp
link.exe /nologo /LIBPATH:"D:\Microsoft Visual C++ Toolkit 2003\lib" /LIBPATH:"D:\Microsoft Platform SDK\Lib" /out:consoleTest.exe .objs\vctest.obj .objs\vctest.res user32.lib kernel32.lib gdi32.lib
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings
0431デフォルトの名無しさん
2005/08/15(月) 20:26:150432デフォルトの名無しさん
2005/08/15(月) 23:22:34user32.libはたぶんMicrosoft Platform SDKのを使っていると思います。
ちゃんとパスが通ってるのなら。
0433デフォルトの名無しさん
2005/08/15(月) 23:46:49あると思うんだけど。
0434デフォルトの名無しさん
2005/08/16(火) 00:27:41たまたまvctest.obj vctest.resの生成に失敗してるのかもしれない。
2,3回リビルドしてみたら。
コンパイルログは問題なさそう。
こっちではこれでいけてる。参考までに貼っとく。
Project : Console application
Compiler : Copy of Microsoft Visual C++ Toolkit 2003 (called directly)
Directory : D:\UnPack\test\
--------------------------------------------------------------------------------
Switching to target: default
rc.exe -fo.objs\test.res test.rc
cl.exe /nologo /ID:\Microsoft\VC++Toolkit\include /ID:\Microsoft\psdk\include /ID:\dxsdk\Include /c main.cpp /Fo.objs\main.obj
main.cpp
link.exe /nologo /LIBPATH:D:\Microsoft\VC++Toolkit\lib /LIBPATH:D:\Microsoft\psdk\lib /LIBPATH:D:\dxsdk\Lib /out:D:\UnPack\test\console.exe Kernel32.lib User32.lib Gdi32.lib .objs\main.obj .objs\test.res
Process terminated with status 0 (0 minutes, 10 seconds)
0 errors, 0 warnings
0435デフォルトの名無しさん
2005/08/16(火) 02:21:47個人的に怪しかったcvtres.exeを代えてみたところ、まずうまくいきました。
以前はpsdkのwin64に入ってたものを使っていたのですが
これをFramework(v1.1.4322)のものに変えたらすんなり実行できました。
win64はたぶん64bitCPUに対応したもので
うちのCPUはPIIIなのですが、これがいけなかったのかと思っています。
そして別のサイトさんで
「I-64用なので、環境変数PATHの一番最後に指定」
とあったので、CompilerSettings-Programs-Additional Pathsで
VCTKitのBIN SDKのBin SDKのBinのWin64 の順に登録したらwin64中のcvtres.exeで
通るようになりました。
要はWin64ディレクトリにある他のDLLファイル等はIA-64用だったので
これを最後に見に行くようにしてなかったのがいけなかったようです。
明日も早いので、むちゃむちゃな文章で悪いのですが
簡単な情報として書き込んで失礼致します。
0436デフォルトの名無しさん
2005/08/19(金) 12:41:290437デフォルトの名無しさん
2005/09/02(金) 01:38:39Win32APIのReadConsoleとか使ってコンソールアプリを作っているのですが
パスワード入力のところで、エコーバック無しで入力させたいのですが
どのようにすれば良いのでしょうか?
SetConsoleModeとか?いろいろやってみたのですがダメです。
0438デフォルトの名無しさん
2005/09/02(金) 01:57:36>psdkのwin64に入ってたものを使っていたのですが
…
0439デフォルトの名無しさん
2005/09/02(金) 02:10:12試してないけど↓こんな感じでいけないの?
BOOL bRet = FALSE;
DWORD dwOldMode = 0;
//現在のモード取得
bRet = GetConsoleMode(hConsoleHandle,&dwOldMode);
//エコーのビットを落とす
dwNewMode = dwOldMode & (~ENABLE_ECHO_INPUT);
bRet = SetConsoleMode(hConsoleHandle,dwNewMode);
//パスワード入力処理
ReadConsole等…
//もとにもどす
bRet = SetConsoleMode(hConsoleHandle,dwOldMode);
0440デフォルトの名無しさん
2005/09/29(木) 18:48:35RareWareで配布されているバイナリとかServices for Unixに付属の
gcc-3.3と違うエンコ結果になる。VB.NET Standard付属のcl.exeも同様。
0441デフォルトの名無しさん
2005/09/29(木) 19:11:270442440
2005/09/30(金) 04:04:46いいだけだから。あとはmp3ファイルのmd5sumを取ればいい。
0443デフォルトの名無しさん
2005/09/30(金) 07:04:440444デフォルトの名無しさん
2005/09/30(金) 10:31:000445デフォルトの名無しさん
2005/09/30(金) 10:48:42用意されてるmakefileがあなたのお使いの環境にあってる保証はないですよ。
0446デフォルトの名無しさん
2005/09/30(金) 15:24:280447440
2005/09/30(金) 16:18:38そうなんです。あやしすぎます。
>>444
それかもですねぇ。
>>445
MSVC用ってだけなんで個々(VC6, VC7など)の cl.exe 間の相違については考慮
してないのかも。もうちょっと詳しく見てみます。
>>446
MMXの使用有無は試しました。使っても使わなくても同一のMP3ファイルが
できました。SSE*は私のCPUにはついてないので試せないですorz
0448デフォルトの名無しさん
2005/09/30(金) 16:25:310449デフォルトの名無しさん
2005/10/05(水) 00:19:34MMXの有り無しで違いがないなんて普通はないはず。
MMX整数を使えば精度が落ちる。
ちゃんとMMXが使われているかどうかアセンブラコードを出力して確認してみろ。
0450デフォルトの名無しさん
2005/10/24(月) 10:39:120451デフォルトの名無しさん
2005/10/24(月) 17:14:34class hoge
{
static const int Foo = 1;
};
0452デフォルトの名無しさん
2005/10/25(火) 13:59:57>MMX整数を使えば精度が落ちる
整数演算で精度は落ちないだろ?
MMXレジスタで数値オーバーするような状況に
MMXを適用してるとしたらプログラムがタコ
0453デフォルトの名無しさん
2005/10/25(火) 14:18:37わろた
0454デフォルトの名無しさん
2005/10/26(水) 00:41:03アホ?
それともプログラミングしたことないのか?
0455デフォルトの名無しさん
2005/10/26(水) 00:56:570456デフォルトの名無しさん
2005/10/26(水) 02:06:51つまるところ有効精度の問題だ。
MMXだとDWORDx2を使うと、汎用レジスタ使った方が早い。
従ってMMX使う場合、まあWORDx4で演算することになる。
乗除算で有効精度はどんどん落ちる。
あと、・整数で演算するからといって、演算対象が整数だとも限らん。
(判り易く10進数で例示すると、 123.45 * 100 = 12345 (整数化))
0457デフォルトの名無しさん
2005/10/26(水) 02:30:00オーバーフローなんか精度云々以前の問題だろ。
結果が全然違ってくるぞ。
0458440
2005/10/26(水) 05:01:29もしお暇な方がいらっしゃいましたら検証おながいします。
ほんとにすんません。
0459デフォルトの名無しさん
2005/10/26(水) 08:49:18> MMXだとDWORDx2を使うと、汎用レジスタ使った方が早い。
嘘つくなって。
しかも有効精度とかいってるあたり、何か勘違いしてるだけのような気が。
> あと、・整数で演算するからといって、演算対象が整数だとも限らん。
ヒント:標本化 → 量子化 → 符号化
0460デフォルトの名無しさん
2005/10/26(水) 17:37:04全然トンチンカンなヒントになってる。
それとちゃんと説明するクセをつけたほうがいいぞ。
じゃないと自分でもわかったつもりになって終わるし、
突っ込むほうだって範囲が広すぎてイヤになる。
0461デフォルトの名無しさん
2005/10/26(水) 17:52:13>嘘つくなって。
アスロンだと違うのかな?
Pen3/4で非常に苦労してるんだが?
0462デフォルトの名無しさん
2005/10/26(水) 18:11:438bitで表わせる範囲の数(0-255)であっても
16bit(WORD)で演算するのはちょっと精度不足だよ。
せいぜい10bit程度しかシフトできないんで、DWORDで計算するのとでは
誤差の出方が違ってくる。
実際プログラミングして試してみれ。
0463デフォルトの名無しさん
2005/10/26(水) 22:14:36いきなり10bitなんて言っても何のことだか分からないよね。
これはある演算をするときにオーバーフローしないぎりぎりの精度を保つときの値で
別の演算には通用しない。(一般には8bit以下しかシフトできない)
が、これでも精度落ちするってこと。
0464デフォルトの名無しさん
2005/10/27(木) 03:32:000465デフォルトの名無しさん
2005/10/27(木) 09:01:26俺にはどうややこしくなるのかさっぱりわからんが?
何と混同するっていうの?
0466デフォルトの名無しさん
2005/10/27(木) 09:35:51ちょっと、どう誤用なのか説明してくれ
http://www.google.com/search?hl=ja&lr=lang_ja&safe=off&ie=sjis&oe=sjis&q=%97L%8C%F8%90%B8%93x
0467デフォルトの名無しさん
2005/10/27(木) 10:43:07計算精度、有効桁数と言えってことだろうね。
でも誰も意味を取り違えたりしないって。
はっきり言って議論に水さしする、瑣末にこだわる嫌な人って思われるさ。
0468デフォルトの名無しさん
2005/10/27(木) 13:03:07詳しく説明してくれまいか
0469デフォルトの名無しさん
2005/10/27(木) 14:09:50MPEGのデコーダーでそんなのがあった気がする。
32bit-MMXだと精度不足になるだとか。
俺がよく知ってる事例だと、YUV->RGB変換でのMMX計算とかかな?
0470468
2005/10/27(木) 15:38:00>>462 の
> 8bitで表わせる範囲の数(0-255)であっても
> 16bit(WORD)で演算するのはちょっと精度不足だよ。
この場合、最大8bitの整数同士の演算結果を16bitで表すのだから
オーバーフローやアンダーフローも起こり得ないのに「精度不足」
と言うのが分からない
> せいぜい10bit程度しかシフトできないんで、DWORDで計算するのとでは
> 誤差の出方が違ってくる。
整数演算の結果をなぜシフトする必要があるのか?整数演算での誤差?
まさかとは思うが、固定小数点での演算を整数演算と言っているの?
0471デフォルトの名無しさん
2005/10/27(木) 16:53:12目だろ。たとえば、Nbit同士の加算なら2Nbitのワーク
スペースで2^N回実行可能。
a_i, b_i をNbitとして c = Σa_i b_i を並列でやるな
ら各乗算結果は2Nbit幅必要。加算結果はΣの数に依る。
バタフライ演算とかでcを次段の乗算係数として用いる
場合、誤差を出さないよう幅を拡張したルーチンに切り
替える場合もあるし、誤差が許容範囲ならNbit演算ルー
チンを使いまわすためにNbitに丸めることもある。
但し、ただ丸めただけでは誤差がひどいので最上位ビッ
トがセットされている状態に丸め(もちろん四捨五入し
た後)、何bitシフトしたかを覚えておいたりする(仮
想的な浮動小数点数のようなもの)。
アルゴリズムによっては上記ビット数を厳密に守らなく
ても良い成果を出す方法もある(加減算を交互に配置す
る、など)。
MMXで誤差無くす方法なんてなんぼでもあるだろ。
面倒いけど。
0472デフォルトの名無しさん
2005/10/27(木) 21:41:47MPEG音声圧縮の話なんだろ、元々は。
0473デフォルトの名無しさん
2005/10/27(木) 21:45:42なんかVC++のよろず質問スレと勘違いされている。
0474デフォルトの名無しさん
2005/10/28(金) 02:05:290475デフォルトの名無しさん
2005/10/28(金) 17:08:48あと、/Yuでパス指定する場合はフルパスじゃないとだめですか?
今までVC++6.0ばっかり使ってきたんで、この辺さっぱりわからないですorz
0476デフォルトの名無しさん
2005/10/28(金) 17:26:380477デフォルトの名無しさん
2005/10/28(金) 20:17:31VC6のプロジェクトの設定(プロパティかも)をじっくり見ろ。
0478デフォルトの名無しさん
2005/10/28(金) 21:15:570479デフォルトの名無しさん
2005/10/29(土) 09:31:160480デフォルトの名無しさん
2005/11/01(火) 20:43:08Pentium4のデータだが、全命令でそうだとは言わないが、
大体、MMXは汎用IA32命令の4倍の時間がかかるよ。
これでも、嘘つくなってって言うのか?
汎用命令
MOV レイテンシ 0.5 スループット 0.5
ADD レイテンシ 0.5 スループット 0.5
MMX整数命令
MOVD mm,r32 レイテンシ 2 スループット 1
MOVD r32,mm レイテンシ 5 スループット 1
PADDD/PANDなど レイテンシ 2 スループット 1
0481デフォルトの名無しさん
2005/11/01(火) 21:12:47レイテンシの意味わかってる?
0482デフォルトの名無しさん
2005/11/01(火) 22:29:13IA-32 命令を構成しているすべてのマイクロオペレーション
(μOP) の実行が実行コアで完了するのに要するクロック・サイクル数。
スループット:
発行ポートが同じ命令を再度自由に受け入れられるようにな
るまで待たなければならないクロック・サイクル数。多くの
IA-32 命令は、命令のスループットのほうがレイテンシより
もかなり小さい。
0483デフォルトの名無しさん
2005/11/01(火) 22:42:53・実行コアへのμOPの流入量を最大にする
・インターリーブしてリソースの競合(ポート、実行ユニット)を避ける。
・クリティカルパス上の依存関係チェーンのレイテンシを最小にする。
俺はスループットは殆ど考慮しない。
0484デフォルトの名無しさん
2005/11/02(水) 00:59:590485デフォルトの名無しさん
2005/11/02(水) 11:06:09終了。
0486デフォルトの名無しさん
2005/11/23(水) 02:26:100487デフォルトの名無しさん
2005/11/23(水) 03:14:050488デフォルトの名無しさん
2005/11/23(水) 04:57:200489デフォルトの名無しさん
2005/11/23(水) 09:26:010490デフォルトの名無しさん
2005/11/23(水) 11:34:340491デフォルトの名無しさん
2005/11/23(水) 12:10:048Pro以上がそれなりに無意味になるな。
Expressか、せいぜいクラスデザイナのあるStandard辺りを買っておけば良いわけだ。
そんなわけでやっぱりVCTK2005は出さないかもなぁ…。
0492デフォルトの名無しさん
2005/11/23(水) 12:11:52とはいえそれも他社に押される形だったし、
最初からその辺考えられる今回は無理かねぇ。
それとも一度やったことは続けるのかね。
0493デフォルトの名無しさん
2005/11/23(水) 19:50:02提供するとかいうのがあったはずなので、VCTK2005は出ないと思う。
たぶん>>490の通りになるかと。
0494デフォルトの名無しさん
2005/11/23(水) 20:28:430495デフォルトの名無しさん
2005/11/23(水) 23:00:03その理屈だと、Express、2005stdユーザにもPGOコンパイラを、ってならないのか
0496デフォルトの名無しさん
2005/11/23(水) 23:49:47さすがにPGO欲しいなら買えばいいとおもうんだが。
0497デフォルトの名無しさん
2005/11/23(水) 23:50:28PGOはコンパイラ単体の機能じゃ実現できないんだし、いいんじゃね?
さすがにPGO欲しいなら買えばいいとおもうんだが。
0498デフォルトの名無しさん
2005/11/23(水) 23:54:46ほんとかよ
0499デフォルトの名無しさん
2005/11/24(木) 01:02:33プロファイル結果に基づいて最適化する機能なんだから。
プロファイラがなくてどうするよ。
0500デフォルトの名無しさん
2005/11/24(木) 01:09:160501デフォルトの名無しさん
2005/11/24(木) 01:13:15ここを見る限りコンパイラ単体の機能じゃないな。
プロファイラって言うよりリンカが特別なコードを挿入して
一度アプリケーションを実行することで、PGOに必要なファイル(.pgc)を生成。
その後再コンパイルする時に、プロファイル結果(.pgc)を利用するという動作みたい。
ってことでPGOを行うには、コンパイラとリンカが対応する物の必要がありそう。
0502デフォルトの名無しさん
2005/11/24(木) 01:20:13それもそうだな。
495のPGOコンパイラって表現に反応しすぎた。失礼。
まぁどの道ExpressじゃPGOは利用できないだろうしなぁ。
VCに限って言えば、今回の目玉だろうしなぁこれ。
0503デフォルトの名無しさん
2005/11/24(木) 01:23:28■ このスレッドは過去ログ倉庫に格納されています