ラベル VisualC の投稿を表示しています。 すべての投稿を表示
ラベル VisualC の投稿を表示しています。 すべての投稿を表示

2008年11月20日木曜日

exeやdllにPDBの絶対パスではなくファイル名だけ含める方法

以下のコンパイルオプションを指定する。
/pdbpath:none

2007年2月19日月曜日

std::auto_ptrの新たな罠(VC8)

VC8では以下のコードがあっさりコンパイルされるようです。

std::auto_ptr<int> p(new char);


これのせいでバッファオーバーフローに半日悩まされました。どう考えても罠です!親切でもなんでもないです。キャストしたかったら自分でします!
boost::shared_ptr使うほどでもないかなというケースでstd::auto_ptr使っていましたがそれすらやめたほうがよさそうですね。。

ちなみに、VC7.1でもgcc 3.4.4でも確認してみましたが、コンパイルエラーになりました。
そりゃ普通そうですよね。

2007年1月24日水曜日

VisualStudio2005 cppとhファイルの切り替え

VisualStudio 2005でcppファイルとhファイルを切り替えるためのマクロ

参照 BorisJ's Blog

2004年9月1日水曜日

VisualCの最適化 - 拡張命令セットの有効化

VisualC++2003ではコンパイルオプションに「拡張命令セットの有効化」というのがあります。
これをSSEにすると、なんとCで書いた普通のfloat計算のコードがSSEのスカラー演算命令を使ったコードとしてコンパイルされて出力されます!
今まではsqrtなどの組み込み関数がSSEで最適化されたされたやつに切り替わるくらいかなと思っていたのですが予想以上の効果があるようです。
同様にオプション設定でSSE2を選択するとdouble計算のコードも最適化されるものと思われます。(こっちは未確認)


2004年7月13日火曜日

VisualCでのデバッグTips

VisualCは何年か使ってますが、全然しりませんでした。
あまりの衝撃にこっちにもメモw

クイックウォッチでエラーコードとその内容を表示する

内容がないのもなんなので、追記。
例外が発生した箇所でBreakしたい場合は、「デバッグ」メニューの「例外」で設定することができます。(Visual C++ .NET 2003)
指定した例外以外にも色々な特殊な状況でBreakしたりしなかったりが設定できます。

2004年4月16日金曜日

プロファイラ

VC7(VisualStudio .NET 2003)で開発しているプログラムを最適化しようと思い、プロファイラを使おうと思ったら、メニューのどこを探してもプロファイルの文字がない!
そこでヘルプを探してみたら、

リンカ ユーティリティであるソース プロファイラは削除されました。

なんてこと!仕方ないのでVC6でコンパイルしてやってみようとも思いましたが、コンパイルエラー多発でやる気喪失w

なんかフリーのプロファイラないかなーとおもったらありました。
DevPartner Profiler Community Edition
DevPartner Studioという製品の評価版?のようなものでしょうか。簡単に使ってみましたが特に制限などはなさそうです。

使い方としては、「ツール」->「DevPartner」メニューの中の「Profiler」という項目と「Native C/C++ Instrumentation」という項目にチェックをいれたあと、プロファイリングしたいプロジェクトをリビルド。すると、プロファイラがコンパイラに介入して必要なコードを勝手に埋め込んでくれます。
その後、「デバッグ」->「開始」で実行し、プログラムを動かせばプロファイリングしてくれます。
プロファイリング結果はなかなか見やすいもので、よくできていると思いました。

  © Blogger template 'Isolation' by Ourblogtemplates.com 2008

Back to TOP