[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/22 12:25 / Filesize : 197 KB / Number-of Response : 975
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Visual Studio 2008 Part 15



1 名前:デスマーチのプロ mailto:sage [2009/02/06(金) 02:11:04 ]
■公式
ttp://www.microsoft.com/japan/msdn/vstudio/default.aspx

■前スレ
Visual Studio 2008 Part 14
ttp://pc11.2ch.net/test/read.cgi/tech/1230008197/

■リンク
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 2005 Part 25
ttp://pc11.2ch.net/test/read.cgi/tech/1225268851/

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


273 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 02:49:58 ]
プリコンパイルを使ってない俺はいったい・・・・・
プリコンパイルなんてロースペック時代の遺産だろって思ってるんだが。

274 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 04:05:22 ]
俺もめんどくさいのであまり使わないけどさ、ある程度以上になると
今でもすごいかかるようになるのは確かだからそれはあまりに。
テンプレートのシステム的にもヘッダに書きまくらないといけないって
のもあるしなぁ

というか問題は include がファイルシステムに依存するからホイホイ
場所移動できないってのだろう。他にも個人的には中間生成物が多すぎて
確かに場所に依存しないフィルタのほうが使いやすいってのがあると思う

そういえばその辺、VS2010で変わるんだっけかな確か?

275 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 08:37:46 ]
>>273を信じて試しに12万ステップあるプロジェクトの
プリコンパイルヘッダを使用しないようにしてみた。
どちらも12秒くらいでビルド速度に違いが見られなかった。

ちなみに環境は、CPU Core2 E8400、メモリ2GB。
12万ステップ程度じゃ違いは出ないか・・・・

276 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 08:44:18 ]
>>275
プリコンパイルヘッダーに読み込まれるヘッダーの量が重要

277 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 08:55:30 ]
>>276
↓これくらい。
#include <windows.h>
#include <commdlg.h>
#include <comutil.h>

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
#include <math.h>



278 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:00:51 ]
それだけなら差はあまりなさそうだね

279 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:15:28 ]
ステップ数よりもファイル数だと思うけど

280 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:46:13 ]
100万行のうち20%程度のライブラリ。これのヘッダをプリコンパイルに指定してやると
lib含めたフルビルドで1分以上かかっていたものが40〜50秒程度に短縮。

数千行のコードでもtemplate周りを入れてやると結構違うよ。
あと>279の言うとおりcppファイル数が1個じゃ体感できる訳がネー。

281 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 09:49:48 ]
てか、>>275 はちゃんと、数回ビルドしてみたんだろうか。
プリコンパイルドヘッダーを変更した直後のビルドだけ試してたりは。



282 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:01:12 ]
オプションが作るになってて、cppの数だけプリコンパイルドヘッダー作ったりしてないよな?

283 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:01:29 ]
ソリューションをクリーンしてから、ビルド1回やっただけだけど?
VS立ち上げなおしてから、リビルド何回か試したけど、ちょっと遅くて15秒程度だった。

ちなみにファイルは.h、.cpp含めて61個。さすがに12万行を一つのファイルに書かないわ


284 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:03:40 ]
>>283
>、リビルド何回か試したけど、
ここが気になる

285 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:06:46 ]
>>274
プロジェクトの設定の「プリコンパイル済みヘッダーを使用しない」にするだけだよな?
めんどいんでstdafx.hは残したままだけど、それじゃダメ?

>>284
?
数回ビルド試せってついさっき>>281で言われたからリビルドしたんだけど。

286 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:20:55 ]
>>285
リビルドするとプリコンパイルドヘッダもリビルドされる。
ビルドで繰り返さないと意味が無い。


287 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 10:21:07 ]
>>285
リビルドもプリコンパイルの意味ない。

プリコンパイルドヘッダーが利いてくるのは、
たくさん .cpp / .h ファイルがあって、
その中のごく一部のソースをちょこっと変更するたびにビルドする
プリコンパイルドヘッダーに入れてる .h はめったに変更されなくて、
かつ .h の中身がばかでかい(あるいはテンプレート使いまくり)
という場合。


288 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:29:48 ]
そうなのか。ビルド繰り返しても3秒も掛かってない感じだぜ
ということは、プリコンで10秒近く短縮されてるってことか?

289 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:32:12 ]
リビルドでもプリコンパイルヘッダの意味あるでしょ。

290 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 11:39:28 ]
>>289
あるよ

291 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:30:24 ]
リンクタブにあるプロジェクトオプションに「/nodefaultlib:"LIBCMT"」を追加します。

とあるのですがリンクタブのプロジェクトオプションが見つかりません;;

どこら辺にあるのですか



292 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 12:38:49 ]
リンカオプション

293 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:02:57 ]
プリコンパイルよりも/MPオプションの方が激烈に作用する今日この頃@core i7


294 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 17:15:36 ]
よりもって、同時に使えるだろ?
比べるもんじゃない。

295 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:46:10 ]
プロジェクト間の並列ビルドとは別に設定できるのか・・・

でも調停はしてくれんよなあ・・・

296 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 20:53:36 ]
プロジェクト内の並列ビルドはしてくれる。クワッドコアだとかなり快適。
プリコンパイルドヘッダー使っても問題ない。最初のプリコンパイルだけは1プロセスで行ってくれるから依存関係も問題ない。
/MPは2005から使える。

297 名前:デフォルトの名無しさん [2009/03/01(日) 23:18:38 ]
最近Delphiから移ってきたのですが、Delphiでいうところの「データモジュール」は
VisualStudioには存在しないのでしょうか?

GUIを持たないアプリケーション(コンソールやサービス)を作成する場合はコンポーネントを
ドロップする場所がないようですが、ひょっとして全部手書きでないと駄目ですか?

298 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:30:44 ]
リソースエディタみたいなものを期待してるなら、そんなものは無かったと思ったが。

299 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:31:28 ]
OS:VISTA(32ビット)
環境:VC++2008 Express

すいません。教えてください。
テキストファイルを大量に読み込むアプリを作成しました。
使用メモリ:1.6Gくらいで"OutOfMemory"のエラーが出てしまいます。

1.6Gくらいで、このエラーは出てしまうものでしょうか。

#ファイルストリームは明示的にクローズしています。
#使用メモリはタスクマネージャで見ました。

300 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 00:55:50 ]
>>299

GetProcessHeap or HeapCreate

CreateFile

GetFileSizeEx

HeapAlloc

ReadFile

CloseHandle

HeapFree

HeapCreateしてるならHeapDestroy

301 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:09:30 ]
即レスありがとうございます。
あー、なるほどぉ。。先にきれいな連続領域を確保してから
ですね!
ちょっと、難しそうですが、やってみます。



302 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:17:07 ]
2008にしたらテラ重くなった。

303 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:20:05 ]
2005よりかるくなったろ?

304 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 01:36:51 ]
まずはスタートページを表示しないようにする所からかな

305 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 03:40:55 ]
>>299
なんでメモリマップドファイルを使わないんだろう・・・

306 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 07:14:13 ]
なんすか、それ

307 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 07:52:49 ]
まあメモリマップドファイル使うのがいいけど
リニアな領域は同じ様な制限かかるから
分けてやるか64bitでやるか

308 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 14:44:59 ]
メモリマップドファイルでも、結局は32ビットアドレス範囲内の連続アドレスなんて限られるからな。
処理する領域に局所性があるのであればメモリ分割をして必要ない個所をファイルに書き出すなどしたほうがいい。
力技でやりたいなら64ビットでやったほうがいい。

309 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 15:14:33 ]
ローカルファイルを読むだけでメモリ上でも書き換えないならファイルマッピングの方が無駄なコピーが要らないため効率がよくなる事が期待できる

310 名前:デフォルトの名無しさん [2009/03/02(月) 21:35:50 ]
>>298
非ビジュアルコンポーネント(タイマーとか通信系とかDB操作系とか)を、フォーム要素を持たない
アプリケーションでも配置可能する方法なんですが…うまく説明できなくてすいません。

311 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 21:59:50 ]
サービスには貼れる



312 名前:デフォルトの名無しさん mailto:sage [2009/03/02(月) 22:22:32 ]
>>310
こういうことか?
ソリューションエクスプローラ→プロジェクトを右クリック
→追加→コンポーネント→ペタペタ

313 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 12:53:11 ]
MSDNのサンプルは何で省略した表記が多いの?
めんどくさいの?死ぬの?

314 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 13:48:41 ]
省略した表記?

315 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 13:50:26 ]
313じゃないけど俺もそう思う
usingとか書いてないこと多いよね
コピペで即使えるようにしとけと

316 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 19:46:11 ]
これがVB脳かといいたくなるな。
めんどくさがってるのはお前の方だろってw

317 名前:デフォルトの名無しさん mailto:sage [2009/03/03(火) 20:14:16 ]
検証してないからコピペするなというMSからのメッセージ

318 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:24:20 ]
VC++ 6.0では外でつくって来たソースコードを読み込むだけでソリューションとかを作らなくてもコンパイルできたと思うんですが
2008はいちいちそういうのを作らなきゃだめなの?

すごくめんどくさいんだが。

319 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:29:14 ]
不向きなんじゃないかな・・・

320 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 01:33:20 ]
>319
俺のやろうとしてることがってこと?

関数のテストを小さいので作りながら、うまくいったら本流のほうに入れ込むって感じでやってるから、いちいちソリューションどうのこうのっていうのを設定するのが面倒なんだが。

6.0から見たら全然違うからびっくりした。

321 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 02:14:32 ]
自分は書き捨て用のプログラム専用にプロジェクトを1個作ってある。



322 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 02:21:18 ]
同じく

323 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 02:26:07 ]
最初はソリューション云々が面倒だったけど
慣れるとコレかなり良いもんよ

324 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 07:42:37 ]
C++/CLIのコードで「reinterpret_cast」の部分を選択してコピー ( Ctrl + C ) したらVSが固まるのって俺だけ?


325 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 13:19:18 ]
drawlineの座標ってなんで4つあるの?
四次元空間なの?死ぬの?

326 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 14:50:25 ]
xyzu から xyzu に直線引くの?
馬鹿なの?死ぬの?

327 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 17:56:44 ]
Microsoft Visual C++ 2008 Express Edition は Managed Code しか作れないんでしょうか?
.NET Framework を使わないようにすることは出来ますか?

328 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:11:04 ]
>>327
CLRってカテゴリ以外のプロジェクトが作成できるならそれで。

329 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:24:36 ]
>>328
新しいプロジェクト
→CLR
 →空のCLRプロジェクト
 →Windowsフォームアプリケーション
→Win32
 →win32プロジェクト
とあります。
→Win32→win32プロジェクト を選択すればいいということですか?

既存のプロジェクトをCLRを使わないプロジェクトに変更って出来るのでしょうか?

330 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:31:37 ]
>>329
それならwin32プロジェクトを選択すればOK

既存のをCLRを使わない設定にするのは、プロジェクトのプロパティ設定ダイアログを出して
構成プロパティ->全般->共通言語ランタイムサポート で「共通言語ランタイムサポートを使用しない」を選択すれば良いと思う。
他にもいじらないといけない部分があるかもしれんがパッと思いつくのはそれくらい。

331 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 18:49:05 ]
>>330
ありがとうございました。



332 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 19:10:43 ]
もしかして pro trial の cl.exe とかの cui tool って期限なしで動く?

333 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:08:19 ]
そりゃ動くだろ。
つーかcl.exeはExpressでもついてるわけだし、
Proしかないもので使えてうれしいものなんてあったか?

334 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:15:00 ]
最適化に制限とかなかったっけ?>Express

335 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:18:25 ]
PGOとかATLとかかな。でもSDK入れるとコンパイラ上書きするやつなかったっけ。

336 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:19:15 ]
x64対応とか?

337 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:44:39 ]
バグ落ち発見
コンパイル中にエラー一覧の警告が数十万を超えるとランタイムエラーを吐いて落ちる

338 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 20:47:14 ]
数十万の警告出すようなコードが悪い、と思うw

339 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:10:39 ]
>>338
boostのソースをコンパイルしてみなって

340 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 21:14:48 ]
そういうときは警告オフにするだろjk

341 名前:デフォルトの名無しさん mailto:sage [2009/03/04(水) 22:23:00 ]
>>334
/analyzeが使えない。けどProfessionalでも使えないから同じ。
しかし試したことはないけど、Windows SDKに入っているのなら使えるらしい。



342 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 05:40:19 ]
boostのコードが悪いな。

343 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 07:18:20 ]
文字コードの警告じゃないの?

344 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 07:34:04 ]
#pragma warning(disable:4786)

345 名前:デフォルトの名無しさん [2009/03/05(木) 09:16:09 ]
間違ってvs2005スレに書き込んでしまったのでマルチになります

if(FAILED(m_pKeyDevice->SetCooperativeLevel(hWnd, DISCL_NONEXCLUSIVE | DISCL_BACKGROUND))) {
return E_FAIL;
}

戻り値を確認したいのですがどうやるんですか?

成功した場合は、DI_OK
DIERR_INVALIDPARAM 無効なパラメータが、戻ってくる関数に渡されたか、オブジェクトがその関数を呼び出せる状態になかった。この値は、標準のコンポーネント オブジェクト モデル (COM) 戻り値である E_INVALIDARG に等しい。
DIERR_NOTINITIALIZED このオブジェクトは初期化されていない。
E_HANDLE このパラメータは、このプロセスに関係する有効な最上位のウィンドウ ハンドルでなければならない。

このどれかが確認できるはずなのですが・・・。

visual studio2008使ってます

346 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 10:10:47 ]
HRESULT hr = m_pKeyDevice->SetCooperativeLevel(...);
if (hr == DI_OK) {
...
}
else if (hrr == ...) { ... }

347 名前:デフォルトの名無しさん [2009/03/05(木) 11:22:58 ]
>>346
ありがとうございます

348 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 19:30:12 ]
そういうレベルの話だったのかw
てっきり自動変数ウィンドウを見ながらステップ実行すればおkって事かと思った

349 名前:デフォルトの名無しさん mailto:sage [2009/03/05(木) 23:50:34 ]
@hrr, hr
って話?

350 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 00:41:50 ]
質問です。
webBrowserでwebページを開き(この時点では文字化けしてない)、そのソースを表示させると文字化けしてしまいます。
文字化けさせない方法を教えてください。

ソースを表示させるのはこの方法でやってます
MessageBox::Show(webBrowser1->DocumentText);

351 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 01:15:19 ]
DocumentStream読み込んでbyte[]取得して、適切にエンコーディング変換。
詳しいやり方とかサンプルコードはぐぐれ



352 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:56:40 ]
visual c++で小数点第一位で四捨五入するには
どうすればいいですか?

353 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 10:58:40 ]
(int)(x+0.5)

354 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:08:11 ]
なんという高等テク。

355 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:16:59 ]
その前にxの正負判定が必要かと

356 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:23:41 ]
そのまえにNaN判定が必要かと

357 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:50:02 ]
int型に代入するだけで、四捨五入になるって聞いてたんですけど
ダメなんですか?><

358 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 11:51:22 ]
おkおk

359 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 12:03:58 ]
>int型に代入するだけで、四捨五入になるって聞いてたんですけど
ならないよ

360 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 12:10:55 ]
intに入れたんだけど、10430*1.15が11994になってしまう。

361 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 12:41:39 ]
intにいれて、また、元のdoubleに戻すんですよね?



362 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 12:47:32 ]
>>356
NaNはコンパイル時にわかるから必要ないな

363 名前:デフォルトの名無しさん mailto:sage [2009/03/06(金) 13:52:50 ]
とは限らない

364 名前:,,・´∀`・,,)っ-○◎● mailto:sage [2009/03/06(金) 20:51:40 ]
とりあえずassert入れておくとか

365 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 02:15:53 ]
>>360
intは切捨てだったような

366 名前:デフォルトの名無しさん [2009/03/07(土) 14:08:26 ]
昨日VC++でコーディングしてて切り捨てする必要が出てデバッグで確認したら
intは切捨てになってました

367 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:11:24 ]
int へのただのキャストはいわゆる「0に向かって丸め」。
正の数は切り捨て、負の数は切り上げ。

368 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:25:07 ]
なんという糞仕様。
その点はVBのように素直に丸める仕様の方がずっとまともに思える。

369 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:30:38 ]
キャストする時には気をつけろという心遣いです。

370 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 14:47:17 ]
>>368
昔からの伝統だからねぇ。
ハードウェア一番作りやすいのが0への丸め。

371 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 15:50:32 ]
切捨てでごく普通じゃね?
負の場合の切り上げも2の補数考えれば納得できるし。



372 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 15:57:20 ]
>>367
単に切り捨て、切り上げ、四捨五入と言ったら、絶対値に適用するのが一般的
JISでもそうなってる

373 名前:デフォルトの名無しさん mailto:sage [2009/03/07(土) 15:58:04 ]
その辺のこんぴゅーたな話を知らない人なのだろうよと。
ちなみにコンピュータの仕組みはとか C からやるべきとか
今時の人はとかそういう論争はいらん。






[ 続きを読む ] / [ 携帯版 ]

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

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