■ 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 を作成するときに、すでに紹介したデータ型などを考慮しておくと移行がスムーズでしょう。
多くの API は Visual Basic 6.0 と同様に使用できますが、データ型の調整が必要な場合があります。たとえば、整数型についてはアップグレードウィザードによって自動的に変更されます。
また、場合によっては、Visual Basic .NET のほうが API への文字列の受け渡しを適切に行なえます。ANSI および Unicode キーワードを使って、文字列をどのコードで渡すかをオプションとして宣言することができるからです。