【】Top

【】VB.NET
【】VB6.0

【】メールマガジンの購読
【】メールマガジンの解除






【】会社概要

【】お問い合わせ


姉妹サイト「バーチャルコネクション!」はこちらです。

姉妹サイト「七福神のメールでビンゴ!」はこちらです。

アイネットマコト

●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。






VC6で作成したDLLを使用するには

【 VC6で作成したDLLを使用するには         】

【注意書き】
●VB.NET を使っているものとします。
●動作環境は、Windows XX を使用しているとします。
●Microsoft Visual C++ 6.0 を使っているものとします。


.NET でも、VC6で作成したDLLを使用することが可能です。

この機能を使えば、簡単に、
VC6 で実現しているDLLをコールしたい
アプリケーションを作成したい場合などに活用できます。

このコードは、VC6 と .NET の双方でコーディングします。

-----------Microsoft Visual C++ 6.0コーディングここから---------

1.Microsoft Visual C++ 6.0を起動します。

2.ファイルメニュー→新規作成で、
    プロジェクトタブの Win32 Dynamic-Link Library
    を選択し、プロジェクト名を「vc6mydll」として
  ”OK”ボタンを押します。

3.作成するDLLの種類”空のDLLプロジェクト”を選択して、
  ”終了”ボタンを押します。

4.新規プロジェクト情報のダイアログが表示されるので、
  そのまま”OK”を押します。

5.ファイルメニュー→新規作成で、
  C++ソースファイルを選択し、
  ファイル名を「 mydll.cpp 」とし、
  ”OK”ボタンを押します。

6.左側のウィンドウにある
    FileView タブをクリックして、画面を切り替え、
  vc6mydll の左にある +をクリックし、
  Souce File フォルダを表示させます。

7.Souce File フォルダをダブルクリックして、
  mydll.cpp を表示させ、mydll.cpp をダブルクリックします。

8.右側のウィンドウ(ソース編集)にキャレットが点滅します。
  そのまま次のコードを記述します。

#include <windows.h>

BOOL APIENTRY DllMain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        break;
    case DLL_THREAD_ATTACH:
        break;
    case DLL_THREAD_DETACH:
        break;
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

__declspec( dllexport )  long __stdcall
  vc6mydll_keisan ( long a , long b  , char *san )
{
    int kei=0;
    switch( (char)san ){
    case '+':
        kei = a + b;
        break;
    case '-':
        kei = a - b;
        break;
    case '/':
        if (b != 0)
        kei = a / b;
        break;
    case '*':
        kei = a * b;
        break;
    }

    return kei;

}



10.ファイルメニュー→新規作成で、
  C++ソースファイルを選択し、
  ファイル名を「 mydll.def 」とし、
  ”OK”ボタンを押します。


11.Souce File フォルダをダブルクリックして、
  mydll.def を表示させ、mydll.def をダブルクリックします。

12.右側のウィンドウ(ソース編集)にキャレットが点滅します。
  そのまま次のコードを記述します。



LIBRARY vc6mydll

EXPORTS
    vc6mydll_keisan         @1



13.ビルドします。
   ビルドメニュー→ビルド vc6mtdll.dll

14.正常にビルドが成功すると、
      vc6mydll.dll - エラー 0、警告 0
      と画面下部に表示されます。

-----------Microsoft Visual C++ 6.0コーディングここまで---------

-----------VB.NETコーディングここから-------------------

15.Microsoft Visual Studio .NET 2003 を起動します。

16.ファイルメニュー→新規作成→プロジェクトで、
      プロジェクトの種類
         Visual Basic プロジェクト
      を選択し、テンプレートに、
         Windows アプリケーション
      を選択して、OKボタンを押します。
      ※場所(作成場所)は、任意で設定して下さい。

17.16で作成したプロジェクトの場所にある
      bin フォルダに、vc6mtdll.dll を移動、またはコピーして
      置きます。

18.フォームに、ラベルコントロール、
    テキストボックスコントロール、
    ボタンコントロール
    を配置します。
    下記は、デフォルトのオブジェクトの名前と配置を示しています。


   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃Label1            ┃┃TextBox1          ┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛
   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃Label2            ┃┃ComboBox1       ▼┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛
   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃Label3            ┃┃TextBox2          ┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛

           ┏━━━━━━━━━┓
           ┃Button1           ┃
           ┗━━━━━━━━━┛

19.ボタンコントロールの
    Button1 text プロパティに「計算」と記述します。

    ラベルコントロールの
    Label1 text プロパティに「値1」と記述します。

    ラベルコントロールの
    Label2 text プロパティに「計算方法」と記述します。

    ラベルコントロールの
    Label3 text プロパティに「値2」と記述します。


  ※説明用のためです。必須ではありません。

   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃値1               ┃┃TextBox1          ┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛
   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃計算方法          ┃┃ComboBox1       ▼┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛
   ┏━━━━━━━━━┓┏━━━━━━━━━┓
   ┃値2               ┃┃TextBox2          ┃
   ┗━━━━━━━━━┛┗━━━━━━━━━┛

           ┏━━━━━━━━━┓
           ┃計算              ┃
           ┗━━━━━━━━━┛



20.ボタンコントロールをダブルクリックして、
    ボタンのクリックイベントの編集を開始して、
    次のコードを記述します。


    Public Declare Function vc6mydll_keisan Lib "vc6mydll.dll" _
    (ByVal a As System.Int32, ByVal b As System.Int32, _
    ByVal c As System.Char) As System.Int32

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

        Dim lngA As Long
        Dim lngB As Long
        Dim strC As String

        Dim lngRet As Long

        If Not IsNumeric(TextBox1.Text) Then
            MsgBox("値1を半角数字で入力してください")
            Exit Sub
        End If
        If Not IsNumeric(TextBox2.Text) Then
            MsgBox("値2を半角数字で入力してください")
            Exit Sub
        End If

        lngA = TextBox1.Text
        lngB = TextBox2.Text
        strC = ComboBox1.Text

        lngRet = vc6mydll_keisan(lngA, lngB, strC)
        MsgBox("計算結果は " & PblngRet)


    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load

        TextBox1.Text = 200
        TextBox2.Text = 100
        ComboBox1.Items.Add("+")
        ComboBox1.Items.Add("-")
        ComboBox1.Items.Add("/")
        ComboBox1.Items.Add("*")
        ComboBox1.Text = "+"

    End Sub



21.ビルドして実行します。

22.フォームに表示された”計算”ボタンを押します。

23.メッセージボックスが表示され、
      ”計算結果は 300”と表示されることを確認できます。



-----------VB.NETコーディングここまで-------------------

本サンプルでは、Visual C++ 6.0 を使って、
DLL を作成しています。

作成された DLL に演算を実行させ、その戻り値を
VB.NET で計算結果として、表示させています。




 

http://anetm.com/dev/d.cgi?SC=DTDTL&o=l3m

Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。

「これがほしかった!厳選サンプルツール集」の注意点
●当サイトはリンクフリーです。
2024/12/22(日)00:05 更新