タイトル : Re^2: ini.ファイルの設定 投稿日 : 2004/02/16(Mon) 10:16 投稿者 : フレッシュ
[OSのVer]:Windows [VBのVer]:VB.NET > > Geberalとは書かれてないのでどこに書いていいのでしょうか?(^^; (VB6.0は書いてあった ような) > Geberal ではなく、General ですよね。 どうもすいません。 General です・・・(汗) > > VS.NET 2003では、リスト中の (全般) というのが VB6 の General に相当します。 > > ただ、VB6では、全てのプロシージャの前(かつ、Option Explicitの後)に宣言文を書く必要が > ありましたが、VB.NETでは、ModuleやClassの内側であればどこでもOKとなっています。 > (プロシージャ内での宣言はできませんが) > > 例えば、 > Public Class Form1 : Inherits System.Windows.Forms.Form > Private Declare …… '★★ここに記述★★ > Private Sub Form1_Load(…)… > ' > ' > End Sub > End Class > のような書き方もできますし、 > Public Class Form1 : Inherits System.Windows.Forms.Form > Private Sub Form1_Load(…)… > ' > ' > End Sub > Private Declare …… '★★ここに記述★★ > End Class > などと書く事も出来るという事です。 > > > > ByVal lpKeyName As Anyの > あれ? この引数を Any型にしている理由は何ですか? > たとえVB6だとしても、この引数を Anyにする必要性が感じられないのですが…。 インターネットで調べた所、構文をそのままコピーすれば出来ると書いてあったので Any型を使用したところ、エラーが発生・・・。(;;) > > > > 'As Any' は、'Declare' ステートメントではサポートされていません。というエラーが返っ てきて しまいます > 引数型のオーバーロードがサポートされたため、Anyは廃止されました。 > 適切な型(As Stringなど)に置き換えてください。 > > 例えば、「Stringを渡すこともあるし、整数を渡すこともある」というAPIなら、 > 'for VB6 > Private Declare Sub hage Lib "hige" (ByVal hoge As Any) > と書くかわりに、 > 'for VB.NET > Private Declare Sub hage Lib "hige" (ByVal hoge As String) > Private Declare Sub hage Lib "hige" (ByVal hoge As Int32) > のように、同じ関数名を異なる引数宣言で2重定義すればOKです。 > > > # ちなみにVB6の場合は、オーバーロードができないため、Anyを使わずに対処する場合は、 > # Private Declare Sub hageByString Lib "hige" Alias "hage" (ByVal hoge As String) > # Private Declare Sub hageByLong Lib "hige" Alias "hage" (ByVal hoge As Long) > # のように、関数名そのものを変更する必要がありました。 ご教授どうもありがとうございました。 またわからないことがありましたらよろしくお願いします |