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


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

Visual Studio 2008 Part 22



1 名前:デフォルトの名無しさん mailto:sage [2014/10/13(月) 15:13:20.18 ID:yFRqmPNp.net]
■公式
ttp://www.microsoft.com/japan/msdn/vstudio/default.aspx

■前スレ
Visual Studio 2008 Part 21
peace.2ch.net/test/read.cgi/tech/1290969016/

■リンク
Visual Studio 2008に搭載された17の新機能
ttp://www.atmarkit.co.jp/fdotnet/special/visualstudio2008_01/visualstudio2008_01_01.html
5000個のバグと戦った、MSが「Visual Studio 2008」RTM出荷
ttp://www.atmarkit.co.jp/news/200711/20/vs.html

■関連
Visual Studio 2013 part4
peace.2ch.net/test/read.cgi/tech/1404333757/
Visual Studio 2012 Part8
peace.2ch.net/test/read.cgi/tech/1392639689/
Visual Studio 2010 Part21
peace.2ch.net/test/read.cgi/tech/1412136476/
Visual Studio 2005 Part 27
peace.2ch.net/test/read.cgi/tech/1291513609/

その他テンプレ>>2-5

300 名前:デフォルトの名無しさん [2018/09/17(月) 10:38:00.02 ID:dj7qSZnZ.net]
CLRのケースもCLRでない普通のexeのケースでも
結果はまったく同じだからな

しかもすべてリリースビルドで
おきてる誤差までぴったり一致してる

301 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 10:52:24.35 ID:+dwRu2dr.net]
>>289
お前は相変わらず理解してないな。

80bit(拡張倍精度)と64bit(倍精度)の演算で桁落ちが異なり、結果が異なるのは当然なんだよ。
問題は同じバイナリの癖に何故起動方法によって異なるのか?だったんだ。

理由はMSILだからだ。
MSILはCLR上でJITされ、x86コードに落とされる。
このときにJIT最適化がかかれば、拡張倍精度(を保ったまま)のコードになるし、
最適化がかからず毎回メモリに書き戻していれば、倍精度のコードになる。
.NETにおける同一バイナリってのは、

302 名前:同一MSILという意味であって、同一x86機械語という意味ではない。
だから、確かに同一バイナリを掴んでいたが、起動方法によって結果が異なっていたんだよ。
(VSがデバッグ用に意図的にそういう仕様にしていただけ。俺はそれを知らなかった)

君のコードについては、
いちいちfprintする場合はdouble(倍精度)が毎回必要になるから、
コンパイラはその部分での拡張倍精度でのループを断念し、
結果的にそのループが倍精度で回っているだけのこと。
もし仮にCが拡張倍精度型 ExDouble を持っていたとして、printfもそれに対応していれば、
もしかするとその毎回printfするコードでも拡張倍精度で回っていたかもしれん。
勿論手動でそういうコードのすることも可能だ。
そこはコンパイラがどう判断したのかでしかなく、あまり詰めても意味がない。
[]
[ここ壊れてます]

303 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 10:54:19.52 ID:+dwRu2dr.net]
× fprint
○ printf
まあ、分かると思いますが

304 名前:デフォルトの名無しさん [2018/09/17(月) 10:57:31.99 ID:dj7qSZnZ.net]
で、最適化されてるかされてないかすら
いまのいままで気付くことすらできない
そして気付く方法すらわからなかったわけか

うあわ
頭わるう。。。

キミ、プログラムくむの向いてないわ

305 名前:デフォルトの名無しさん [2018/09/17(月) 10:58:47.63 ID:dj7qSZnZ.net]
問題の切り分けができない人は
プログラムはくめない

コレは定説だからな

306 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 11:09:05.96 ID:ivGPGa/P.net]
>>287
なるほど面白いね。

レスが膨大過ぎて最初の方しか読んでなかったけど、ネイティブコードの話と思い込んでたら
.NETの話だったのかw

307 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 12:34:14.16 ID:yaPtorLJ.net]
個人的には、C++やx87 FPUは割と知識があったけど、.NET関連は余り追いかけてなかったので、気づくのが遅れた。

managedコード、unmanagedコードについて、今回初めて調べてみたくらいだし。

308 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 12:53:34.77 ID:yaPtorLJ.net]
>>293
「ID:dj7qSZnZ」の人は理解していないね。
彼は人の事馬鹿にしてるけど・・・。



309 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 13:39:23.91 ID:F2vzl5VC.net]
最初に指摘されたことだろうに。
アセンブラレベルで精度や効率に介入したきゃ.netなんて使うな、なんて分かりきったこと。

310 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 14:58:46.52 ID:zCVYDMXL.net]
エディタ使ってるとたまに Intellisense機能が効かないときがあるんだが
あれなんなの?
中間ファイルとか消せば直るの?

311 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:03:46.83 ID:+dwRu2dr.net]
>>301
はい。よく壊れます。
> [C++] There is an issue with the .ncb file
> Close the solution.
> Delete the . ncb file.
> Reopen the solution.
> Reopening the solution creates a new . ncb file.
> https://msdn.microsoft.com/ja-jp/library/ks1ka3t6(v=vs.110)

312 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 17:17:56.66 ID:zCVYDMXL.net]
>>302
なるほど .ncbファイルね
今度消してやってみるわ

313 名前:デフォルトの名無しさん mailto:sage [2018/09/17(月) 18:30:58.83 ID:+dwRu2dr.net]
さて俺の本番コード、以下のようだ。
疑問は解消した。協力してくれた皆様ありがとう。

◎:拡張倍精度、○:倍精度、として、(ソースは>>192参照)
・Releaseビルドをコマンドプロンプトから起動→◎積和、◎平方根
・Debugビルドをコマンドプロンプトから起動→◎積和、○平方根
・IDEから起動→○積和、○平方根

これで3種類出来上がってた。
(なお、>>167内バイナリをアタッチした際の「AまたはC」は、「AまたはB」の間違い)
そしてIDE上で『[モジュールの読み込み中に JIT 最適化を抑制する]』を変更すると、
確かにRelease/Debugの2種類に絞れる。
Debugだからといって、全く最適化がかからないわけでもないようだ。
(1行内なら最適化がかかる?)

参考に、Releaseビルドの該当部分の逆アセンブルは以下。
積和が拡張倍精度で行われ、そのまま fsqrt で平方根が取られる。
(関数ごとインライン化されているのでアドレスが中途半端だが)
double retval = calc_norm_and_regulate(count, vec, false);
0000003e fldz
00000040 xor edx,edx
00000042 test esi,esi
00000044 jle 00000056
00000046 lea eax,[esp+28h]
0000004a fld qword ptr [eax+edx*8]
0000004d fmul st(0),st
0000004f faddp st(1),st
00000051 inc edx
00000052 cmp edx,esi
00000054 jl 00000046
00000056 fsqrt
00000058 fstp qword ptr [esp+10h]

314 名前:デフォルトの名無しさん [2018/09/19(水) 17:24:44.24 ID:GzaYiinu.net]
VC++2008だけど、突然一部のファイルだけブレークポイントが入らなくなった・・・
.ncb消したり、そのプロジェクトだけリビルドしたけど直らない
全リビルドすればおk?

315 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 18:59:08.26 ID:KTUM/Tgt.net]
>>305
根本的な解決策とは違うが
「ブレークポイントは現在の設定ではヒットしません。ソースコードが元のバージョンと異なります。」
なら
[オプション] の[デバッグ]から[元のバージョンと完全に一致するソース ファイルを必要とする] をオフで

316 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 12:44:39.12 ID:rLmEYUhk.net]
>>306
ありがとうございます。

結局、全リビルドでも直らなかったので、.sln と .vcproj 以外全部消して
Windowsも再起動して完全にまっさらな状態にして全ビルドしたら直りましたが、
そのうちまたブレークポイントが入らなくなったので、>>306の方法で
回避しました。

317 名前:デフォルトの名無しさん [2019/06/19(水) 14:12:16.93 ID:Yoy0IPRe.net]
お、おう

318 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 14:14:25.88 ID:gozwERy2.net]
C++ CLRのWindowsフォームアプリ作ってると、
イベントとか記入するときインデントがおかしい(スペースが1つ付く)んですが、
これを直す方法ってありますか?



319 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 21:09:30.88 ID:xhkeezXX.net]
テンプレート特殊化ってVisualC++2008 SP1 ではできないですか?

320 名前:デフォルトの名無しさん mailto:sage [2019/10/06(日) 21:48:55.66 ID:xhkeezXX.net]
>310
https://programming-place.net/ppp/contents/cpp/language/023.html
こちらでできました、スレ汚しすみません

321 名前:デフォルトの名無しさん [2021/04/20(火) 20:00:45.05 ID:rVJPu0WM.net]
わからないので教えてください。
シリアル通信をするプログラムを作りたく、
VS2008にて、「SerialPort」を使え、というのが
サイトにあったのですが、
ツールボックスにSerialPortがありません。
追加する方法を教えてください。

使用環境:VS2008 C++ MFCアプリケーション

322 名前:デフォルトの名無しさん mailto:sage [2021/04/20(火) 20:36:15.98 ID:mPkgRyxP.net]
ねぇねぇ今日は何処まで逝こうかな〜

COMはネイティブなのかね

323 名前:デフォルトの名無しさん mailto:sage [2021/04/23(金) 21:39:54.21 ID:OsunfFOw.net]
>>312
SerialPortは使ったこと無いから知らんが、
その程度のことを自力で解決出来ない奴が今更VS2008でしかもMFCとか無理だ。
サイトを参考にするのもいいが、日付は必ず見るようにしろ。
.NET serial port で検索すると以下が当たるし、今なら普通にこれだと思うが。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.ports.serialport?view=dotnet-plat-ext-5.0


どうせ見えた展開だし、面倒だから先に言っておくが、
お前のやってることは初心者のあるある

・そもそもやり方を間違っているのに、それ以外の解決方法を認めない
・正しいやり方を教えても、それは聞いてないとして受け付けない

だ。だからどうせこれから文句も言うのだろうが、重ねて言うが、
今更その環境(VS2008+MFC)はあり得ないくらいの異常さだ。
お前が初心者で何も知らないだけなら、常に最新の環境を使うように心がけろ。それだけで無駄なことに嵌りにくくなる。
その環境に拘る何らかの理由があり、それを強いてきた上司等が居るのなら、まずそいつに聞け。
聞く人が居ないのなら、今のお前にその環境でやりきる能力はないから諦めろ。

324 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 02:27:10.00 ID:ky7QDxn6.net]
記念カキコ

325 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






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

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

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