■ API の利用

  • Windows API に対応する .NET Framework クラスライブラリの利用 (推奨)
  • 引き続き各種 API を利用することも可能

変更ポイント

ほとんどの場合、Windows API には、対応する .NET Framework が提供するクラスライブラリがありますので、書き換えることができます。しかし、対応するものがない場合や DLL としてサードパーティなどから提供される API 関数などを使いたい場合、今までと同様にそれらを利用することもできます。

アップグレードウィザードによる変更点

Windows API を利用するプログラムをアップグレードすると、可能な限り変更を行なってくれます。

  • データ型などのアップグレード (Long → Integer など)
  • 固定長の文字列は、VB 互換文字列に変更される → そのまま API に渡すことができる

また、変更してくれるが修正が必要なものとしては、属性情報の追加などがあります。これは必要に応じて追加してください。

  • 属性などの (一部) 追加
    (例) Ansi、Unicode キーワードを使って、文字列をどのコードで渡すかをオプションとして宣言可能

アップグレードウィザードが対応していないものとしては、

  • 対応する .NET Framework クラスライブラリを利用するコードへの変更
  • As Any (複数の Declare宣言などに手動で対応)
  • スレッド作成、Windows サブクラス化、メッセージキューのフックなどの操作を実行する API の使用 (ただし、Visual Basic .NET ではランタイムエラーを発生する場合もある)

などがあります。

以上のように、.NET Framework を利用するように変更されるわけではないので、必要に応じて手動で変更を行なう必要があります。

今、何をしておくべきか?

Windows API の使用に関しては、Visual Basic 6.0 のプロジェクトで、.NET に向けてしておくことはありません。 Visual Basic .NET に移行する過程で、対応する .NET Framework クラスライブラリを利用するように変更しましょう。

VC++ 6.0 などを利用した自作の DLL を Visual Basic 6.0 から呼び出しているときなどは、その DLL を作成するときに、すでに紹介したデータ型などを考慮しておくと移行がスムーズでしょう。

PlusOne

多くの API は Visual Basic 6.0 と同様に使用できますが、データ型の調整が必要な場合があります。たとえば、整数型についてはアップグレードウィザードによって自動的に変更されます。

また、場合によっては、Visual Basic .NET のほうが API への文字列の受け渡しを適切に行なえます。ANSI および Unicode キーワードを使って、文字列をどのコードで渡すかをオプションとして宣言することができるからです。