Visual C++

Microsoft Visual C++ 2010 Expressのインストール

C言語でプログラムを作成するには、開発ツールという一種のプログラムが必要になります。C言語で書かれたプログラムは、それ自体は単なるテキストデータにすぎません。コンピュータが実行できるようにするためにはコンピュータが理解できる言葉(=機械語)に翻訳しなければなりませんが、それを行うために必要なのが開発ツールです。

「C言語徹底入門」では、開発ツールとしてMicrosoft Visual C++ 2010 Expressを使うことを想定しています。このページでは、開発ツールのインストール方法について解説します。すでにインストール済みの場合、あるいは他の開発ツールを使う場合にはこのページは読み飛ばしてください。

擬似プロセッサの新作を作ってみました。

まだテストもしきれていませんし、コードも雑なのですが、擬似プロセッサの新作を作ってみました。
http://www.kijineko.co.jp/files/pt2010-20100225.zip
他にやらなければならないことが山積なのですが、あいにく風邪で体調が悪く、混みいったことはできそうにないので、思いっきり現実逃避した結果の成果物です。

今回はC++で実装し、レジスタにはboolの配列を使いました。当然、加減算器は半加算器をもとに作った全加算器を組み合わせて使っています。ステータスフラグもあれば、マスク可能な割り込み(ただし優先度はなし)も作ってみました。外部I/Oはコールバック関数で処理するようにしましたので、どんな足回りでも外付けすることができます。まだドキュメントがありませんので、そのうち解説記事を書くようにします。

ところで、擬似プロセッサという呼称はいまいちよくなくて、本当は仮想プロセッサと呼ぶべきなのでしょうが、そう呼ぶと別のものを想像してしまったりするので、あえてこう読んでいます。

実は <inttypes.h> も公開しているのですが...

かなり前に公開したVisual C+用の <stdint.h> が、いまだにいろいろなところで使われているようです。そもそもVisual C++がサービスパックを出してもバージョンアップしても、一向にC99に対応する気配がないことに問題があるのですが...。

それはそうと、実をいうともう1年半近くも前に、Visual C++用の <inttypes.h> も作って公開していたりします。
http://file.dradnats.org/inttypes-20081030.zip
ちゃんとテストしていないので、ベクターにも登録していなかったのが原因なのか、あるいはまったく必要とされていないのか、どうも使われている形跡がありません。多少なりとも反響があれば、もう少しまともなものに仕上げてもよいかと考えています。

C++を使う場合でも、printf系関数の書式指定の便利さはなかなか捨てられないもので、ostringstream より sprintf や snprintf が多用される傾向にあるように思います。それなら <inttypes.h> も必要になるような気もするのですが。

qsort_s と qsort_r と qsort_s

今になって気付いたのですが、Visual C++のqsort_sとGNU C Libraryのqsort_rとC1xのqsort_sは、中途半端に似ていて、しかも非なるものになっています。これらを使い分けるには、よほど注意しておかないと混乱してしまいそうです。

まず、Visual C++のqsort_sですが、次のような形式になっています。

void qsort_s(
    void *base,
    size_t num,
    size_t width,
    int (__cdecl *compare )(void *, const void *, const void *),
    void * context
);

次に、GNU C Libraryのqsort_rは次のような形式になっています。

TOPPERS/ASPカーネルのWindowsシミュレータはそれなりにニーズがありそうだ

わかっていたことではありますが、TOPPERS/ASPカーネルのWindowsシミュレータを使いたいという方は少なくないようです。昨年作ったままで、いまいち動作が安定しません。明らかに手直しした方がよい部分も少なからずあるので、公開はずいぶん先になりそうです。

今はそれなりに忙しいので、着手できるとしても3月以降になるかと思います。時間が取れしだい手直ししますが、まずはTECSに使えるようにする作業が優先です。急ぎの方は、TOPPERSの会員になって、自分で納得のいく状態まで持っていくことをお勧めします。

ビルドエラーと実行時エラーの区別が付かない?

最近感じることですが、IDEが便利になったせいか、ビルドエラーと実行時エラーの区別がつかない人が増えているようです。もう少し具体的にいうと、Visual Studioの場合、コーディングを行うとすぐにCTRL + F5で実行させようとします。IDEは、ビルドを実行し、ビルドに成功すればデバッグなしで実行するわけですが、この過程でエラーが発生すると、単に「エラーが出た!」というだけの認識しか持たず、どんな過程でどんなエラーが出たのかを確認しようとしないのです。

仮に実行時エラーだということが理解できても、CTRL + F5でデバッグなしで実行するものですから、デバッガで調べようという発想がありません。ブレークポイントやステップ実行を教えてあげると、驚くほど感動されたりします。デバッグなしで実行するのは、おそらく、デバッグ開始にすると、コンソールアプリケーションではプログラム終了時にコンソールが閉じてしまうために、そういう指導を受けたのではないかと思います。

Visual C++ 2008でライブラリを開発する。

ライブラリを開発するには、ツールの使い方も習得する必要があります。今回は、Microsoft Visual C++ 2008を用いて、スタティックライブラリを作る方法について解説します。なお、サンプルとして掲載している画像はExpress Editionのものですが、Standard Edition以上でも同様にすればスタティックライブラリを作れるはずです。

まずはプロジェクトを作成します。[ファイル]メニューから[新規作成]→[プロジェクト]を選択し、「新しいプロジェクト」ダイアログを開きます(下記)。「新しいプロジェクト」では、「プロジェクトの種類」としてWin32を、テンプレートとして「Win32 コンソール アプリケーション」を選択します。そして、プロジェクト名を入力したあと「OK」ボタンをクリックします。

コンテンツ配信
このエントリーを含むはてなブックマーク