会社に来て、開発に使う言語がVS2002からVS2005へ変わりました。
まぁ、MSDE的に画面が使いやすいとか使いやすくないとか、そういう程度ならこれっぽっちも問題はないのですが、
利用する上での一番の問題点とかをお話ししましょうか??
このMSDEはどうがんばっても、いろいろとC#?などに依った仕様になっていてC++は非常に冷遇されています。
コンパイラを通したときに、まぁ不具合があったときに以前でいえば「タスクの一覧」みたいなのが「出力」でできるのですが
「前のメッセージ」、「次のメッセージ」や、メッセージのダブルクリックなどで、ソースファイルの表示を行ってくれないのです。
もしかしたら、ブラウザ情報とかが間違っているのかもしれませんが、まぁでないので、毎回ソースを表示し、それから該当行を探すのが非常に面倒です。
まぁこれは不具合かもしれないので、それはそれでいいのですが
で、一番の問題点はあれです。
ltoaが_ltoa_sになったことでしょうか??
これ、_sがついたのは、これだけでなく、これらの文字バッファ関連が、すべて領域サイズを指定しなくてはいけなくなりました。
しかも、それだけではありません。
とりあえず、チョコちょこっと旧ファイルを変換したので、全部置換するのも面倒なので、
#define ltoa(a,b,c) _ltoa_s(a,b,256,c)
と、非常に適当に256バイト領域だよとしたら・・・
関数の実行前に全領域を初期化してくれまして・・・・
同じスタックにされているそれ以外のローカルデータをすべて破棄してくれました。
いや〜、困りものです。
まぁバッファオーバーフローのチェックをするために、いろいろと手段が執られているのはいいことなのでしょうが、ちゃんと文字数だとか調べ上げた上でプログラムを組んでいるあたしとしては、ありがた迷惑なわけです。
どう考えてもですね、64bitの最大値(9223372036854775807〜-9223372036854775808,0〜18446744073709551615)以上の桁数にはならないんだから、それだけでいいじゃん??
ちなみに「_s」はセキュリティのsらしいです。
で、こんなのは序の口(このままでもコンパイルが通って、実行も可能です)
作ったファイルをテストPCで実行しようとしたら動かない。
調べ上げた結果・・・・ライブラリが足りない。
まぁDLLもたくさんありますから、ある程度は予想していたのですが、それがなんと数十個
かなり笑えましたw
しかも実際の実行時には利用しません。
仕方なく、テストのためにわざわざインストーラの作成までも行い、やっとテストPCでの動作を確認しました。
も〜何とかしてほしいです。
いろいろ不便 |