Microsoft Visual C++ Toolkit 2003 質問箱
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
05/03/01 04:24:15http://msdn.microsoft.com/visualc/vctoolkit2003/
関連スレなどは>>2以降で
0357デフォルトの名無しさん
2005/06/24(金) 00:32:010358デフォルトの名無しさん
2005/06/24(金) 21:12:340359デフォルトの名無しさん
2005/06/25(土) 00:08:42>レスポンスファイルを利用した複数ファイルのコンパイルをサポート。
って書いてあるな。
メンドクサソウダケド。
「ソフト紹介」のその下りは修正してないみたいだな。
0360デフォルトの名無しさん
2005/06/26(日) 03:16:26http://www.borland.co.jp/qanda/cbuilder/c0003071.html
hppならこれで作れないの?
0361デフォルトの名無しさん
2005/06/26(日) 03:44:09うお、そんなのがあったのか、デルファイもってないから全然きがつかんかった。
早速試してみる
0362デフォルトの名無しさん
2005/07/01(金) 00:46:49DirectXのサンプルをコンパイルしようと思ってVCTKとRelo使ってみたが、
エラーが出てぜんぜん成功しない。
BCCの影響なのかそれとも一からインスコすべきか……
BCCでコンパイルはとおったソースなんだけど……あれ?
0363デフォルトの名無しさん
2005/07/01(金) 01:39:02サンプルはしらんが、チュートリアルのほうはVCTKとコマンドラインで修正無しでOKだった。
モチのロン、適切なLIBをくっつける必要はあったけど。
つーか、サンプル程度ならReloよりもメイクファイル書いたほうがやりやすくないか?
BCCで通ったってことは、LIBの指定がボーランド用になってるか、
ソースがボーランド仕様にしちゃってるか、じゃない?
つーか、VCTKでプログラミングぉぅぃぇぃ、みたいな解説サイトないかね。
このソースはこう弄る、とか、LIBはこうくっつける、とか。
・・・自分でまとめたほうが早い?
0364デフォルトの名無しさん
2005/07/01(金) 02:35:400365デフォルトの名無しさん
2005/07/01(金) 07:59:520366デフォルトの名無しさん
2005/07/01(金) 08:06:27どんなエラーが出たか書こうよ。
0367デフォルトの名無しさん
2005/07/01(金) 23:32:44BCCと一緒に入れてるってことは
パスの指定順のせいとか
0368デフォルトの名無しさん
2005/07/02(土) 02:30:32みなさんは何を使ってますか?
0369デフォルトの名無しさん
2005/07/02(土) 02:47:370370デフォルトの名無しさん
2005/07/02(土) 07:59:06Visual C++ Toolkit 2003 サポートサイト
http://shrike.s58.xrea.com/
こんなんどうよ
0371デフォルトの名無しさん
2005/07/02(土) 11:19:56関数ごとに何%処理がかかっているかを知りたいです。
0372デフォルトの名無しさん
2005/07/02(土) 12:51:53C:\>time ./a.out
入力された時刻は受け付けられません。
新しい時刻を入力してください:
0373デフォルトの名無しさん
2005/07/02(土) 13:38:30ttp://www.xlsoft.com/jp/products/intel/vtune/index.html
0374デフォルトの名無しさん
2005/07/02(土) 14:10:50無料のものでお願いします。
0375デフォルトの名無しさん
2005/07/02(土) 14:50:250376デフォルトの名無しさん
2005/07/02(土) 17:20:30ないなら自分で作る!
0377デフォルトの名無しさん
2005/07/05(火) 21:15:02できればローカルで使える物がいいです。
0378デフォルトの名無しさん
2005/07/05(火) 22:52:23英語やけど
0379デフォルトの名無しさん
2005/07/05(火) 23:09:46PlatformSDKをインストール
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
0380デフォルトの名無しさん
2005/07/05(火) 23:47:00なぜか繋がらない
>>379
やってみる
二人ともサンクス
0381362
2005/07/06(水) 22:00:34>363,367
ごめん。正しくはDirectxの説明をしているサイトのサンプルソースを自分改造したものだった。
ちなみに元のソースもできなかった。
BCC環境は消去するつもりなので、消したら再び挑戦するつもり。
0382362続き
2005/07/06(水) 22:02:18えと、
[CMD] "C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\cl"
"D:\program test\gametest\winmain.cpp" /c /Fo"D:\program test\gametest\winmain.obj"
/I"C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\..\include"
/I"C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\..\..\Microsoft Platform SDK\include"
/I"C:\dx9sdk\Include" /nologo
winmain.cpp
C:\dx9sdk\Include\dinput.h: DIRECTINPUT_VERSION undefined. Defaulting to version 0x0800
[CMD] "C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\link"
/SUBSYSTEM:WINDOWS /NOLOGO /LIBPATH:"C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\..\lib"
/LIBPATH:"C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin\..\..\Microsoft Platform SDK\Lib"
/MACHINE:IX86 "/LIBPATH:C:\dx9sdk\Lib" "D:\program test\gametest\winmain.obj"
user32.lib gdi32.lib kernel32.lib comdlg32.lib comctl32.lib vfw32.lib winmm.lib
"/OUT:C:\Program Files\Relo\temp\Project1.exe"
0383362続き
2005/07/06(水) 22:02:43winmain.obj : error LNK2019: unresolved external symbol _D3DXCreateTextureFromFileExA@56 referenced in function "int __cdecl LoadTex(int,char *)" (?LoadTex@@YAHHPAD@Z)
winmain.obj : error LNK2019: unresolved external symbol _D3DXGetImageInfoFromFileA@8 referenced in function "int __cdecl LoadTex(int,char *)" (?LoadTex@@YAHHPAD@Z)
winmain.obj : error LNK2019: unresolved external symbol _DirectInput8Create@20 referenced in function "int __cdecl InitDInput(void)" (?InitDInput@@YAHXZ)
winmain.obj : error LNK2019: unresolved external symbol _IID_IDirectInput8A referenced in function "int __cdecl InitDInput(void)" (?InitDInput@@YAHXZ)
winmain.obj : error LNK2019: unresolved external symbol _c_dfDIJoystick referenced in function "int __cdecl InitPad(void)" (?InitPad@@YAHXZ)
winmain.obj : error LNK2019: unresolved external symbol _c_dfDIKeyboard referenced in function "int __cdecl InitKey(void)" (?InitKey@@YAHXZ)
winmain.obj : error LNK2019: unresolved external symbol _GUID_SysKeyboard referenced in function "int __cdecl InitKey(void)" (?InitKey@@YAHXZ)
C:\Program Files\Relo\temp\Project1.exe : fatal error LNK1120: 8 unresolved externals
だった。
ちなみに長いとことは適当なところで改行しました。
>370
そんなサイトあったんだ・・・あとで見ておこう。
みなさん、本当にどうもありがとうございました。
0384デフォルトの名無しさん
2005/07/06(水) 22:23:490385デフォルトの名無しさん
2005/07/07(木) 00:04:000386デフォルトの名無しさん
2005/07/09(土) 16:34:25これまで,スレッドを使用したプログラムではいくつかの動作を
メインループから指示するために
WaitForSingleObjectもしくはWaitForMultipleObjectsを使用し
Signalによって動作を起動させていました.
今回,いくつかのパラメータをスレッドに渡す必要が生じたのです
がどのような方法が簡単で安全でしょうか?
0387デフォルトの名無しさん
2005/07/09(土) 17:07:22パラメータを1つの構造体にまとめる。ただしポインタや整数型1つだけならそのまま渡せる。
そしてスレッドを作る側でその構造体型の変数を作り、
そこへのポインタをCreateThread/_beginthreadexの4番目の引数に(必要ならばキャストして)渡す。整数型なら単にキャストするだけで値渡しできる。
そしてスレッド関数では引数として受け取れる。
0388デフォルトの名無しさん
2005/07/10(日) 19:29:53サポートファイルがあると聞いたのですが…
どういうものなのでしょうか?
どこからダウンロードできますか?
0389388
2005/07/10(日) 20:03:02最終更新日: 2000/09/29
ttp://www.microsoft.com/japan/msdn/vstudio/downloads/ppack/
探してこんなページを見つけたけど、なんか古いような・・・
このToolkit2003に必要なんだろうか
0390デフォルトの名無しさん
2005/07/10(日) 20:06:052003ならインラインアセンブラか組み込み関数使えばできる。
__asm{
movaps xmm0, [ebx];
}
意味ないコードだかこんな感じで。感じで。
レジスタの内容は自動的にスタックに退避と復元をしてくれるらしい。
一応聞くが2003の話だよな?
0391デフォルトの名無しさん
2005/07/10(日) 20:08:26~~~~
最適化は標準でできる希ガス
0392388
2005/07/10(日) 21:52:44>一応聞くが2003の話だよな?
はい、そうです。
Toolkit2003の話しです。
自前でアセンブラを書くのですか…
それでなんとかするのはわかりましたが、日頃思うのは、
_asm ブロックの前後で、コンパイラの最適化が
邪魔されてしまっているのではないかと疑問に
思っているのです。
コンパイラに拡張命令を使わせるヒントを与えるような
C/C++の関数があれば、コンパイラがスムーズに
最適化を進められるのではないか、と思って質問しました。
それに、アセンブラって、私、ミスしやすいし…
Visual C++ 6.0 Processor Pack の後継者となるサポートパックは
出ていないのでしょうか?
0393388
2005/07/10(日) 21:58:50無知でごめんなさい…
インテル(R) C++ コンパイラ 8.1 Windows* 版に含まれているファイル
ttp://www.xlsoft.com/jp/products/intel/support/intel_faq/cpp/windows/sb/cs-007738.htm
調べて、上のページを見つけましたが、Toolkit2003 の話しでは
ないように見うけられます。
0394デフォルトの名無しさん
2005/07/10(日) 23:18:13インライン関数っていうべきなのかな?
組み込み関数についてはこことか。
ttp://www.microsoft.com/japan/msdn/library/ja/vccore/html/_core_.2f.Oi.asp?frame=true
MMX、SSE、SSE2の組み込み関数 (題名に3DNowがないのは悲しいことだ)
ttp://www.microsoft.com/japan/msdn/library/ja/vclang/html/vclrfMMXSSESSE2Intrisics.asp?frame=true
ちなみに、2003ならオプション指定すればスカラ演算レベルで拡張命令を使ってくれるはずだ。
ベクトル化してくれるのはIntelコンパイラかVectorC {PC}ぐらいかな。
0395デフォルトの名無しさん
2005/07/10(日) 23:35:56組込み関数をさらにクラスでラップしたものもある。
toolkitにも入ってるし使ってみたら?
0396388
2005/07/11(月) 18:57:41なんだか知らない機能が急に増えた気がしてとまどってます
じっくり調べます
どうもありがとうございました
0397デフォルトの名無しさん
2005/07/11(月) 20:45:32大きなお世話かもしれないが、君の生半可な知識で「・・・を教えてくれ」と書くよりは、
最終的に何をやりたくてそれを知りたいと思うに至ったかを書いたほうが、より適切な
情報が得られる可能性が増えると思うよ。
0398デフォルトの名無しさん
2005/07/12(火) 16:04:510399デフォルトの名無しさん
2005/07/12(火) 20:07:19ひどい・・・
0400デフォルトの名無しさん
2005/07/12(火) 23:22:380401デフォルトの名無しさん
2005/07/13(水) 21:52:27放置汁
0402388
2005/07/13(水) 23:42:07すみません、返事がおそくなりました
それから398は違う人です
最終的に何を〜というのは、まだないです
今まで bcc + tasm を使ってました
toolkit2003 ではじめて MS 系のコンパイラにふれます
MS 系には Borland 系とちがって拡張機能を
サポートする態勢がととのっているという印象があって、
どこからふれればいいのやら…と探していました
オプション指定すれば自動的に〜というのは
/arch:SSE2 とかするのかな
拡張機能というと MMX や SSE などがまず頭に浮かびますが
cmov とか sincos とかもC++から気楽に使いたい…
/ と % を同時に求めるとかも
asm文ならすぐだけど
0403デフォルトの名無しさん
2005/07/14(木) 00:49:19>/arch:SSE2 とかするのかな
それそれ。
拡張命令の売りの一つであるSIMDはもちろん無理で、
SISDとしてしか使われないけど。
あとcmovは/arch:SSE以上の指定でコンパイラも使用するようだ。
もちインラインアセンブラでも使えるだろうけど。
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オーバーフローなんか精度云々以前の問題だろ。
結果が全然違ってくるぞ。
■ このスレッドは過去ログ倉庫に格納されています