COM連携


2. COMオブジェクトの作成

①Visual Stadio 2019を管理者として実行します

②新しいプロジェクトの作成をクリックします

③「クラスライブラリ(.Net Framework)」を選択し、次へボタンをクリックします

※選択時には、間違って「クラスライブラリ」を選択しないように気を付けてください。

④プロジェクト名を入力し、フレームワークを「.Net Framework 4.8」を選択し、作成ボタンをクリックします

⑤プロジェクトタブをクリックし、新しい項目の追加(W)をクリックします

⑥COMクラスを選択し、追加ボタンをクリックします

⑦公開するインターフェイスを追加します

※POSTで同期通信でAPIを呼び出すサンプルです

    Function CallAPI()
        Dim url As String = "https://sys-link-ai-api.herokuapp.com/predict"

        'GETの場合には、クエリーをURLに続けて記述します
        'Dim url As String = "http://api.nhk.or.jp/v1/pg/list/" & strArea & "/" & strService & "/" & strDate & ".json?key=" & APIKey

        '-------ここからはAPI通信のお約束部分-------
        '指定されたURLへのHTTP通信を生成して呼び出す
        Dim req As HttpWebRequest = HttpWebRequest.Create(url)
        ' POST送信する文字列を作成
        Dim postData As String = "{""feature"":  [0.5,0.5]}"
        ' バイト型配列に変換
        Dim postDataBytes As Byte() = System.Text.Encoding.ASCII.GetBytes(postData)

        ' POSTメソッド
        req.Method = "POST"
        ' POST する為の仕様
        req.ContentType = "application/json"
        ' POST送信するデータの長さを指定
        req.ContentLength = postDataBytes.Length

        'データをPOST送信するためのStreamを取得
        Dim reqStream As System.IO.Stream = req.GetRequestStream()
        '送信するデータを書き込む
        reqStream.Write(postDataBytes, 0, postDataBytes.Length)
        reqStream.Close()

        'サーバーからのレスポンスを受け取る
        Dim res As HttpWebResponse = req.GetResponse()
        'レスポンス・ボディの取得と表示
        'レスポンスのストリームを取得する
        Dim resStearm As Stream = res.GetResponseStream()
        'レスポンスを読み取る器を用意して
        Dim sr As StreamReader = New StreamReader(resStearm)
        '最後までレスポンスを読み込む
        Dim ResHTML As String = sr.ReadToEnd()
        'リソース解放
        resStearm.Close()
        sr.Close()
        res.Close()

        Debug.WriteLine(ResHTML)
        Return ResHTML

    End Function

⑧ソリューションエキスプローラー上で、右クリックし、プロパティを選択します。

⑨アプリケーションタブを選択して、アセンブリ情報ボタンをクリックし、アセンブリ画面を表示し、「アセンブリをCOM参照可能にする(M)」を選択し、OKボタンをクリックします。

⑩コンパイルタブを選択し、ターゲットCPU(T)で「x64」を選択、「COM相互運用機能の登録」にチェックを入れます

⑪ビルドタブを選択し、ビルドします