不具合農場 地獄の大豊作不具合様は本日もすこやかなれば、本日も大豊作なり。 不具合様には不具合をお供えすべし。 今日もお供え物作ってますか? |
トップへ戻る ブログのトップへ戻る Word Press |
|
不具合道楽 地獄のフルコース不具合御飯 不具合味噌汁 不具合満漢全席 | ||
コンピューターのはらわた無修正大公開 | ||
不具合設計局キャンペーン中 |
2012-10-21 (Sun)
_ [日々の生活] C++Builder 64bit その3
文字化けの問題については、IDEの言語を英語に切り替えれば(BDSSetLang.exeを使う)、英文ではあるものの文字化けしなくなることが判明。これでエラーの内容が分かるようになり、作業しやすくなりました。
C++Builderの32bitコンパイラと64bitコンパイラでは、準拠している言語仕様が異なっており、互換性のない箇所が微妙にあります。エラーになって原因がよく分からないと思ったら、不適切な書式が使われていて、32bitではそれが通っていたりしてるんですねえ。で、いじっていて、最大の問題が発生。ソケット接続のコードで、ws2_32.libのリンクが必要になりますが、64bit環境では、拡張子がlibのファイルはリンクできないっぽい…。64bit環境では静的ライブラリの拡張子が.aになっているようです。で、ws2_32.aというファイルはないっぽい…。GetProcAddressで取るという手もありますが、他にも何か__seh_filterという関数がないとか出てきます。structure exception handlingのことらしいのですが、いろいろ不明…。
これって前のGetExceptionInformation()の件も含めると、例外処理が甘い状態なのかなあ…。何しろBorland系言語初のC++64bitなので、未知の部分が多いというか…。VisualCとどういった点が同じで、どういった点が違うのかもよく分からず…。
_ [日々の生活] C++Builder 64bit その4
ソケット関係のAPIがないとかいわれるのについては、GetProcAddressで回避。__seh_filterなどがないといわれるのについては、__try __exceptをコメントアウトすることで回避。そういうわけで、単純な空exeではない、自前のライブラリによるソケット接続機能を持つexeを作ることに成功。正常に動作することも確認。
デバッガをいじってみたのですが、デバッガはライブラリ以上に完成度が低いです。ブレークポイントをしかけて起動したらデバッグなしでの通常起動になってしまったり、シングルステップで1行ずつ追っていたら、デバッグエンジンがクラッシュしたりします。コード編集時の支援機能も遅い上、サジェストがうまくいかない場合が多いです。コンパイルも遅いです。遅いのはまだデバッグコードが抜けていないからだと思うのですが、どうなるのかなあ…。
完成度が十分高くなるためには、来年のバージョンアップを待つことになるのかなあ…。