| 【】Top
 
 【】VB.NET
 【】VB6.0
 
 【】メールマガジンの購読
 【】メールマガジンの解除
 
 
 
 
 
 
 【】会社概要
 
 【】お問い合わせ
 
 
 姉妹サイト「バーチャルコネクション!」はこちらです。
 
 姉妹サイト「七福神のメールでビンゴ!」はこちらです。
 
 
   
 ●24時間365日の安心をあなたにAT-LINK専用サーバ・サービスお勧めのサーバです。
 
 
 | 
 
               
                |  |  |  |   
                |  | 
   
 
   
    | 
  
        http://anetm.com/dev/d.cgi?SC=DTDTL&o=l3m 
        
  
                 
               
                 
                  | 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 で計算結果として、表示させています。
 
 
 
 |  
  
             
   
 Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。  |  |  |   
                |  |  |  |  |