2017年11月7日火曜日

hDCプロパティの変換

VB6.0にてグラフィック関連の処理をしている際に「.hDCプロパティ」を使用している

これをVB.NETに変換すると
「error BC30456: 'hdc' は ’Form1' のメンバではありません。」
とビルド時にエラーになってしまう。

たとえばアイコン描画で下記関数を使用する場合
Public Declare Function DrawIcon Lib "user32" (ByVal hdc As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal hIcon As Integer) As Integer

Me.hdcでエラーとなる
-----------------------------------------------------------------------
       Call DrawIcon(Me.hdc, 10, 10, hIcon)
-----------------------------------------------------------------------
下記のように変換すると使用できる
-----------------------------------------------------------------------
        Dim gra As Graphics = Me.CreateGraphics
        Dim hdc As IntPtr = gra.GetHdc()
        Call DrawIcon(hdc, 10, 10, hIcon)
-----------------------------------------------------------------------

1 件のコメント:

  1. VBマイグレーション| One Technology Japan
    2021年07月16日

    VBマイグレーション | https://onetech.jp/service/vb-migration

    ONETECHでは、オフショア開発の強みと技術力を生かしVBマイグレーションサービスを提供しています。Visual Basic 6.0(以下 VB 6.0)で構築された現行システムの機能をそのままに最新のVisual Basic .NET(以下 VB .NET)に移行するマイグレーションサービスを提供しています。マイクロソフト社製の移行ツールに加えて、独自に開発した「VB .NETシステム変換ツール」を活用し、手作業によるシステム変換を10%未満に抑え、平均変換率90%以上という高い変換率を実現。また日本のシステム開発会社様の半分程度の人月単価で実行するため、相見積もりも他社様と比較して半分以下という実績もございます。

    https://onetech.blog.jp/archives/10586879.html

    返信削除