Microsoft Word - DT-5100Lib_Manual_DotNet.doc

Similar documents
<4D F736F F D20B6BCB5D7B2CCDED7D8CFC6ADB1D9315F43532E444F43>

ウィンドウ操作 応用

プロセス間通信

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

ファイル操作-インターネットキャッシュ

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

GS1-128 の描画 DLL について (ver. 2.3) 動作環境など動作環境 WindowsXP Windows Vista Windows7 Windows8/8.1 Windows10 上記 OS について すべて日本語版を対象としております 32bit アプリケーションから呼び出される

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

ICONファイルフォーマット

DPC-0401

FBWFMemoryWatcher


構造体

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

VFD256 サンプルプログラム

@(h) Select.vb ver 1.1 ( Select.vb ver 1.0 ( Option Explicit Private Structure SYMBOLINFO Dim SyDataType As String Dim

構造体

Microsoft PowerPoint - CproNt02.ppt [互換モード]

データアダプタ概要

スレッド操作 タイマー

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

ファイル操作

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Microsoft Visual Studio .NET移行ガイド

プラグイン


BPC-0821 Help for Windows

UIOUSBCOM.DLLコマンドリファレンス

PowerPoint プレゼンテーション

Case 0 sqlcmdi.parameters("?tencode").value = Iidata(0) sqlcmdi.parameters("?tenname").value = Iidata(1) 内容を追加します sqlcmdi.executenonquery() Case Else

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

Ver.1.1

DPC-0244

1. 入力画面

Microsoft PowerPoint - 計算機言語 第7回.ppt

Bluetooth ライブラリ マニュアル このマニュアルは Bluetooth ライブラリの仕様について記載します Ver. 1.16


プリンタ印字用 DLL 取扱説明書

JavaプログラミングⅠ

Microsoft Word _VBAProg1.docx

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

Prog2_12th

TOEIC

MISAO with WPF

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Javaプログラムの実行手順

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

GPC-6105


スライド 1

C#の基本2 ~プログラムの制御構造~

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

グラフィックス

3軸加速度センサーモジュール MM-2860 書込み済みマイコンプログラム通信コマンド概要

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

プログラミング基礎I(再)

With sqlda sqlda に SelectCommand を追加.SelectCommand = New MySqlCommand() With.SelectCommand.CommandType = CommandType.Text.CommandText = "select * from

目次 目次... 1 はじめに... 3 概要... 4 サポート環境... 5 関数... 6 MEC_OpenDevice... 7 MECDevice_Release... 8 MECDevice_GetFirmVersion... 9 MECDevice_GetCoreTemperature

Secure iNetSuite for .NET 4.0Jの新仕様について

Oracle Lite Tutorial

AquesTalk Win Manual


untitled

Java知識テスト問題

Microsoft Word - SREX_SDK2_R31.doc

Microsoft Word - Writing Windows Installer's DLL.doc

Microsoft Excel操作

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

バスケットボール

Javaの作成の前に

2 WAGO JAPAN DLL FOR MODBUS Copyright 2011 by WAGO COMPANY OF JAPAN, LTD. All rights reserved 東京都江東区亀戸 日鐵 ND タワーワゴジャパン株式会社オートメーション TEL

Microsoft Word - VBA基礎(6).docx

ルーレットプログラム

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

システム監視ライブラリ

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

NotifyIconコントロール

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

VB.NET解説

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

C#の基本

FSUx-SDK2

adr(Byte)

メディプロ1 Javaプログラミング補足資料.ppt

Android Layout SDK プログラミング マニュアル

ファイル監視

NFCライブラリマニュアル

PowerPoint プレゼンテーション

AquesTalk for WinCE プログラミングガイド

Slide 1

アプリケーション

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

ファイル操作-バイナリファイル

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

Prog1_10th

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

Transcription:

CASSIOPEIA DT-5100 シリーズ.NET ライブラリマニュアル 概要編 Ver 3.00

変更履歴 No Revision 更新日項改訂内容 1 1.00 03/1/20 初版初版発行 2 3.00 05/03/15 3 カシオライブラリマニュアル (.NET) 開発マニュアルの 1~4 をひとまとめ にしました 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

目次 1 概要...1 1.1 カシオライブラリ...1 1.2 提供ファイルの構成...2 2 CE.NET 用クラスライブラリ...3 2.1 機能...3 2.2 開発環境...3 2.3 提供ファイル...3 2.3.1 C#.NET 用クラスライブラリ...3 2.3.2 VB.NET 用クラスライブラリ...3 2.4 使用方法...4 3 C#.NET 用クラスライブラリ...5 3.1 C#.NET 用クラスライブラリの機能...5 3.2 ラッパーにおけるDLL 関数を呼び出し方の記述...5 3.3 エクスポート関数の宣言...5 3.4 カシオライブラリとC# での関数引数の対応表...6 3.5 カシオライブラリとC# での戻り値の対応...7 3.6 C#.NET アプリケーションでの使用例...8 4 VB.NET 用クラスライブラリ開発...10 4.1 VB.NET 用クラスライブラリの機能...10 4.2 ラッパーにおけるDLL 関数を呼び出し方の記述...10 4.3 エクスポート関数の宣言...10 4.3.1 VB.NETとカシオライブラリの引数の対応...11 4.3.2 カシオライブラリとVBとの戻り値の対応...12 4.4 VB.NET アプリケーションでの使用例...14

1 概要 本マニュアルは DT-870/5100 用に C#.NET および VB.NET 言語を使ってアプリケーションを開発する場合に カシオライブラリを利用できるように WindowsCE.NET コンパクトフレームワークに対応した C#.NET および VB.NET 用のクラスライブラリを提供する方法について述べたものです 1.1 カシオライブラリ 今回対象となる DT-870/5100 カシオライブラリの構成と機種対応を以下に示します ライブラリ名構成関数の数 DT-870 DT-5100 システムライブラリ Clibsys.lib Clibsys.dll Clibsys.h 34 OBR ライブラリ LCUDRV.lib LCUDRV.dll OBRREQ.h 55 2D スキャナライブラリ TDdecodece.dll TDdecodece.lib TDdecodece.h 92 Bluetooth ライブラリ BTLib.lib BTLib.dll BTLib.h 17 BCD 演算ライブラリ LDTBCD.lib LDTBCD.dll LDTBCD.h 16 カメラライブラリ Camera.dll CamHw.dll Camera.lib Camera.h Camera2.h 15 合計 229 1

1.2 提供ファイルの構成 各ソフトウェアの関連図を下図に示します カシオライブラリ (DLL 内の関数 ) の呼び出しは VB 用 C# 用のラッパー関数を介して プラットフォーム呼び出しし (PInvoke:Platform Invocation Service) で行います プラットフォーム呼び出しは DLL からエクスポートされる関数を呼び出す汎用的なメカニズムです ラッパー関数はコンパクトフレームワークからカシオライブラリを呼び出すコードを記述し アプリケーションがカシオライブラリ DLL を利用できるように抽象化された関数インターフェースを提供し コンパクトフレームのワーククラスライブラリコンポーネントとして位置づけられます VB.NET アプリケーション (IL) C#.NET アプリケーション (IL) カシオライブラリ VB 用ラッパー関数クラスライブラリ カシオライブラリ C# 用ラッパー関数クラスライブラリ コンパクトフレームワーク (CLR+ クラスライブラリ ) システムライブラリ (Clibsys.dll) OBR ライブラリ (LCUDRV.dll) 2D スキャナライブラリ (TDdecodece.dll) Bluetooth ライブラリ (BTLib.dll) BCD 演算ライブラリ (LDTBCD.dll) カメラライブラリ (Cameara.dll) カシオライブラリ : 提供ファイル ( コンパクトフレーム用クラスライブラリ ) 2

2 CE.NET 用クラスライブラリ 2.1 機能 VisualStudio.NET 上で C#.NET および VB.NET によるアプリケーション開発 ( ビルド ) においてカシオライブラリを利用できるようにコンパクトフレームワーク用のクラスライブラリを提供します 各関数の機能は DT-870 各ライブラリマニュアル DT-5100 各ライブラリマニュアルを参照してください 2.2 開発環境 Microsoft Visual Studio.NET 2003 2.3 提供ファイル 2.3.1 C#.NET 用クラスライブラリ C#.NET でアプリケーションを開発する場合に各ライブラリ関数呼び出しの引数と戻り値の調整を行います ClbSysCs.dll システムライブラリ用クラスライブラリ LCUDRVCs OBR ライブラリ用クラスライブラリ TDDecodeceCs.dll 2D スキャナ用クラスライブラリ BTLibCs.dll Bluetooth ライブラリ用クラスライブラリ LDTBCDCs.dll BCD 演算ライブラリ用クラスライブラリ CameraCs.dll カメラライブラリ用クラスライブラリ 2.3.2 VB.NET 用クラスライブラリ VB.NET でアプリケーションを開発する場合に各ライブラリ関数呼び出しの引数と戻り値の調整を行いま す ClbSysVB.dll システムライブラリ用クラスライブラリ LCUDRVVB.dll OBR ライブラリ用クラスライブラリ TDDecodeceVB.dll 2D スキャナ用クラスライブラリ BTLibVB.dll Bluetooth ライブラリ用クラスライブラリ LDTBCDVB.dll BCD 演算ライブラリ用クラスライブラリ CameraVB.dll カメラライブラリ用クラスライブラリ 3

2.4 使用方法 各ライブラリ関数を C#.NET および VB.NET から利用するには プロジェクトを作成し 使用したいライブラリのクラスライブラリをソリューションエクスプローラ内の 参照設定 に追加します 下図は VB.NET でカシオライブラリを利用する例です C#.NET の場合も同様に C#.NET 用のクラスライブラリを参照設定に追加します なお プログラムコーディング例 各クラスライブラリインターフェイスは ( ライブラリマニュアル for C#.NET) および ( ライブラリマニュアル for VB.NET) を参照してください 4

3 C#.NET 用クラスライブラリ 3.1 C#.NET 用クラスライブラリの機能 C#.NET 用クラスライブラリが提供するラッパー関数は以下の処理を行います 1) アプリケーションから受け取った引数をエクスポート関数用に変換します 2) エクスポート関数を呼び出します 3) エクスポート関数の戻り値をアプリケーション用に変換します 4) 戻り値を設定してアプリケーションに制御を戻します アプリケーション dll_func 引数の変換 xxx dll_func( p1); 実関数呼び出し 戻り値の変換 retrn xxx 3.2 ラッパーにおける DLL 関数を呼び出し方の記述 ソースコードの先頭に以下の記述を行います using System.Runtime.InteropServices; 3.3 エクスポート関数の宣言 DLLからエクスポートされる関数を利用するために以下の記述をします [DllImport( user.dll )] 利用する関数をエクスポートする DLL 名 public static extern < 戻り値のタイプ> dll_func( 引数 1, 引数 2, ); 5

3.4 カシオライブラリと C# での関数引数の対応表 カシオライブラリ関数に渡す引数の対応を表にしたものを以下に示します カシオライブラリの引数 C# 呼び出し時の引数 ラッパー関数引数 ( アプリケーションに提示 ) 1 void void 2 char (8 ビット符号付き ) sbyte (8 ビット符号付き ) 1 バイトデータとしての意味を持つ場合は sbyte 1 文字としての意味を持つ場合は char とする 3 BYTE (8 ビット符号なし ) byte (8 ビット符号なし ) byte (8 ビット符号なし ) 4 TCHAR (16 ビット ) string char(16 ビット ) 5 Short short/int16 (16 ビット符号付 ) ( 符号付 16 ビット ) 6 WORD ushort/uint16 (16 ビット符号なし ) (16 ビット符号なし ) 7 Int int/int32 (32 ビット符号付 ) 8 Long int/int32 (32 ビット符号付 ) 9 DWORD uint/uint32 (32 ビット符号なし ) (32 ビット符号なし ) 10 struct _bbb... bbb struct bbb... 11 char* ref sbyte 12 BYTE* ref byte 13 TCHAR* ref string 14 short* ref short 15 WORD* ref ushort 16 int* ref Int32 17 long* ref Int32 18 DWORD* ref uint 19 struct _bbb... *bbb ( 構造体のポインタ ) struct < 名称 > [... ]; < 名称 > bbb; ref bbb; 20 関数へのポインタ public delegate bool CallBack1(); CallBack1 x = new CallBack1(callback_sub1); Clib.dllfunc_callback1(5000, x); ( メンバの変換が必要な場合があります ) 部分は CE ではできません (VisualStudio.NET 2003+Compact Framwork ) 6

3.5 カシオライブラリと C# での戻り値の対応 返却値の宣言記述の対応を表にしたものを以下に示します カシオライブラリの記述 C# での関数リターン時の戻り値 ラッパー関数戻り値 ( アプリケーションに提示 ) 1 void void 2 char sbyte (8 ビット符号付き ) (8 ビット符号付き ) 3 BYTE byte (8 ビット符号なし ) (8 ビット符号なし ) 4 TCHAR string(16 ビット ) (16 ビット ) 5 Short short/int16 (16 ビット符号付 ) (16 ビット符号付 ) 6 WORD ushort/uint16 (16 ビット符号なし ) (16 ビット符号なし ) 7 Int int/int32 (32 ビット符号付 ) 8 Long int/int32 (32 ビット符号付 ) 9 DWORD uint/uint32 (32 ビット符号なし ) 10 struct < 構造体名 > struct < 構造体名 > 11 char* IntPtr で受け取って返す sbyte* 12 BYTE* IntPtr で受け取って返す byte* 13 TCHAR* IntPtr で受け取って返す char* 14 short* IntPtr で受け取って返す short* 15 WORD* IntPtr で受け取って返す ushort* 16 int* IntPtr で受け取って返す int* 17 long* IntPtr で受け取って返す int* 18 DWORD* IntPtr で受け取って返す uint* 19 構造体 * IntPtr で受け取って返す 構造体 * 部分は CE ではできません (VisualStudio.NET 2003+Compact Framwork ) 7

3.6 C#.NET アプリケーションでの使用例 カシオライブラリのシステムライブラリ関数を利用する場合のサンプルを以下に示します アプリケーション作成時に提供クラスライブラリファイル (CalibCs.dll) をプロジェクトに追加します アプリケーション側の記述例 using System; using CalibCs; namespace ClbsysSmp1 public class CeApiSample public void ApiCe1( ) uint a1 = new uint(); // Wakeup 要因による電源許可禁止の取得 // BOOL CLBGetBootableButtons( DWORD * ) bool x2 = ClbSysCs.CLBGetBootableButtons( ref a1 ); // 左トリガーキーによる電源 ON は有効に uint a2 = (a1 (uint)clbsyscs.clb_button_lefttrigger); // Wakeup 要因による電源 ON 許可禁止 // BOOL CLBSetBootableButtons( DWORD ) bool x1 = ClbSysCs.CLBSetBootableButtons( a2 ); uint b1 = new uint(); uint b2 = new uint(); // 電源 OFF を禁止する時間の取得 // BOOL CLBGetOffMaskTime( DWORD *, DWORD * ) bool x4 = ClbSysCs.CLBGetOffMaskTime( ref b1, ref b2 ); // 電源 ON 後指定時間 OFF を禁止する // BOOL CLBSetOffMaskTime( DWORD, DWORD ) bool x3 = ClbSysCs.CLBSetOffMaskTime( 10, 0 ); public void ApiCe2( ) // カート のアクセス終了を待って電源 OFF // void CLBPowerOff( void ) ClbSysCs.CLBPowerOff(); 8

ClbsysCs.cs の内容 DT-5100.NET ライブラリマニュアル 概要編 using System; using System.Windows.Forms; using System.Runtime.InteropServices; namespace ClbsysCs /// <summary> /// Summary description for ClbsysCs. /// </summary> public class ClbsysCs public Clbsys() // TODO: Add constructor logic here /* Constant definition to import */ // Bootable Buttons - DWORD dwbootablebuttons public const uint CLB_BUTTON_LEFTTRIGGER = 0x1000; public const uint CLB_BUTTON_RIGHTTRIGGER = 0x0800; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /* Definition description of a Wrapper function */ // Wakeup 要因による電源 ON 許可禁止 public static bool CLBSetBootableButtons( uint dwbootablebuttons ) bool ret = new bool(); try ret = ClbSys.CLBSetBootableButtons( dwbootablebuttons ); catch(exception exc) MessageBox.Show( exc.tostring(), "Info CLBSetBootableButtons()" ); return ret; // カート のアクセス終了を待って電源 OFF public static void CLBPowerOff( ) try ret = ClbSys.CLBPowerOff( ); catch(exception exc) MessageBox.Show( exc.tostring(), "Info CLBPowerOff()" ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ public class ClbSys /* Description of the function to import */ [DllImport("ClbSys.dll")] public static extern bool CLBSetBootableButtons( uint dwbootablebuttons ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [DllImport("ClbSys.dll")] public static extern void CLBPowerOff( ); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 9

4 VB.NET 用クラスライブラリ開発 4.1 VB.NET 用クラスライブラリの機能 VB.NET 用クラスライブラリが提供するラッパー関数は以下の処理を行います 5) アプリケーションから受け取った引数をエクスポート関数用に変換します 6) エクスポート関数を呼び出します 7) エクスポート関数の戻り値をアプリケーション用に変換します 8) 戻り値を設定してアプリケーションに制御を戻します アプリケーション dll_func xxx dll_func( p1); 引数の変換 実関数呼び出 戻り値の変 retrn xxx 4.2 ラッパーにおける DLL 関数を呼び出し方の記述 ソースコードの先頭に以下の記述を行います import System.Runtime.InteropServices 4.3 エクスポート関数の宣言 DLL からエクスポートされる関数を利用するために以下の記述をします 戻り値がない関数は Sub 戻り値がある関数は Function で宣言します 1) Declare Auto Sub dll_func lib user.dll ( 引数 1, ) 戻り値がない場合 2) Declare Auto Function dll_func lib user.dll ( 引数 1, ) As < 戻り値タイプ > 戻り値がある場合 10

4.3.1 VB.NET とカシオライブラリの引数の対応 カシオライブラリ関数に渡す引数の対応を表にしたものを以下に示します カシオライブラリの引数 VB 呼び出し時の引数 ラッパー関数引数 ( アプリケーションに提示 ) 1 void 無記述 sub() 2 char xxx (8 ビット符号付き ) 3 BYTE (8 ビット符号なし ) ByVal xxx As SByte (8 ビット符号あり ) ByVal xxx As Byte (8 ビット符号なし ) 1 バイトデータとして意味を持つ場合は ByVal xxx As SByte 1 文字としての意味を持つ場合は ByVal xxx As Char(16 ビット ) 1 バイトデータとして意味を持つ場合は ByVal xxx As Byte 1 文字としての意味を持つ場合は ByVal xxx As Char(16 ビット ) 4 TCHAR ByVal xxx As Char (16 ビット ) (16 ビット ) 5 Short ByVal xxx As Short/Int16 (16 ビット符号付 ) ( 符号付 16 ビット ) 6 WORD (16 ビット符号なし ) UInt16 ( 符号付 16 ビット ) ByVal xxx As UInt16 7 Int ByVal xxx As Integer/Int32 (32 ビット符号付 ) (32 ビット符号付 ) 8 Long ByVal xxx As Integer/Int32 (32 ビット符号付 ) (32 ビット符号付 ) 9 DWORD ByVal xxx As Integer/Int32 ByVal xxx As UInt32 (32 ビット符号なし ) (32 ビット符号付 ) 10 構造体 ByVal xxx As (Structure) 11 char* ByVal xxx As string ByRef xxx As SByte ByVal xxx As IntPtr ( オーバーロードにより適切なものを選択 ) : 12 BYTE* ByRef xxx As Byte 13 TCHAR* ByRef xxx As Char 14 short* ByRef xxx As Short/Int16 15 WORD* ByRef xxx As UInt16 ByRef xxx As UInt16 16 int* ByRef xxx As Integer/Int32 17 long* ByRef xxx As Integer/Int32 18 DWORD* ByRef xxx As Integer/Int32 ByRef xxx As UInt32 19 構造体 * ByRef xxx As (Structure) 20 関数へのポインタ ByVal xxx As CallBack コールバック関数のデリゲートオブジェクトを作成し 引数として渡す Public Delegate Function _ CallBack(ByVal dat As Int32) As Int32 11

4.3.2 カシオライブラリと VB との戻り値の対応 カシオライブラリ関数からの戻り値の対応を表にしたものを以下に示します カシオライブラリの記述 VB での関数リターン時の戻り値 ラッパー関数戻り値 ( アプリケーションに提示 ) 1 void 無記述 sub() 2 char (8 ビット符号付き ) 3 BYTE (8 ビット符号なし ) Dim dat As Byte (8 ビット符号あり ) dat = function() Dim dat As SByte (8 ビット符号なし ) dat = function() 4 TCHAR (16 ビット ) Dim dat As Char (16 ビット ) dat = function() 5 Short Dim dat As Short/Int16 (16 ビット符号付 ) ( 符号付 16 ビット ) dat = function() 6 WORD Dim dat As Short/Int16 (16 ビット符号なし ) ( 符号付 16 ビット ) dat = function() 7 Int Dim dat As Integer/Int32 (32 ビット符号付 ) dat = function() 8 Long Dim dat As Integer/Int32 (32 ビット符号付 ) dat = function() 9 DWORD Dim dat As Integer/Int32 (32 ビット符号なし ) dat = function() 10 構造体 Dim stc As struct1 stc = function() 11 char* Dim ptr As IntPtr Dim dat As Byte ptr = function() dat = Marshal.ReadByte(ptr) 12 BYTE* Dim ptr As IntPtr Dim dat As Int16 ptr = function() dat=marshal.readint16(ptr) 13 TCHAR* Dim ptr As IntPtr Dim dat As Char ptr = function() dat=chrw(marshal.readint16(ptr)) 14 short* Dim ptr As IntPtr Dim dat As Int16 ptr = function() dat=marshal.readint16(ptr) 15 WORD* Dim ptr As IntPtr Dim dat As Int32 ptr = function() dat=marshal.readint32(ptr) 1バイトデータとして意味を持つ場合は Dim dat As SByte(8 ビット ) 1 文字としての意味を持つ場合は Dim dat As Char(16 ビット ) 1バイトデータとして意味を持つ場合は Dim dat As Byte(8 ビット ) 1 文字としての意味を持つ場合は Dim dat As Char(16 ビット ) ByVal xxx As UInt16 ByVal xxx As UInt32 Dim dat As Byte Dim dat As Int16 Dim dat As Char Dim dat As Int16 Dim dat As UInt16 12

16 int* Dim ptr As IntPtr Dim dat As Int32 ptr = function() dat=marshal.readint32(ptr) 17 long* Dim ptr As IntPtr Dim dat As Int32 ptr = function() dat=marshal.readint32(ptr) 18 DWORD* Dim ptr As IntPtr Dim dat As UInt32 Dim dmy() as UInt32 ptr = function() Marshal.Copy(ptr,dat,0,1) dat = dmy(0) 19 構造体 * Dim ptr As IntPtr Dim stc As struct1 ptr = function() stc = Marshal.PtrToStructure( ptr, GetType(struct1)) Dim dat As Int32 Dim dat As Int32 Dim dat As UInt32 (Marshal.Copy により獲得する Copy() では配列指定しか出来ないため ダミー配列経由で獲得する ) Dim stc As struct1 部分は CE ではできません (VisualStudio.NET 2003+Compact Framwork β2 で構造体の中に配列が定義されている場合 ) 13

4.4 VB.NET アプリケーションでの使用例 カシオライブラリのシステムライブラリ関数を利用する場合のサンプルを以下に示します アプリケーション作成時に提供ソースファイル (VBClibsys.vb) を組み込む VBClibsys.vb の内容 Imports System.Runtime.InteropServices Public Class VBClibsys '--------------------------------------------- ' 定数定義 '--------------------------------------------- 'BUTTON Public Const CLB_BUTTON_LEFTTRIGGER As Int64 = 1 Public Const CLB_BUTTON_RIGHTTRIGGER As Int64 = 2 : : '--------------------------------------------- ' システムライブラリ '--------------------------------------------- Declare Auto Function CLBSetBootableButtons Lib "Clbsys" (ByVal dwbootablebuttons As Int64) As Boolean Declare Auto Function CLBGetBootableButtons Lib "Clbsys" (ByRef pdwbootablebuttons As Int64) As Boolean Declare Auto Function CLBSetOffMaskTime Lib "Clbsys" (ByVal pdwkey As Int64, ByVal dwcard As Int64) As Boolean Declare Auto Function CLBGetOffMaskTime Lib "Clbsys" (ByRef dwkey As Int64, ByRef dwcard As Int64) As Boolean Declare Auto Function CLBPowerOff Lib "Clbsys" () : : End Class アプリケーションの記述 Imports System.Runtime.InteropServices Imports ( アプリケーション名 ).VBClibsys Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' ----- Wakeup 要因による電源 ONの有効 / 無効設定を行います Dim bl As Boolean bl = VBClibsys.CLBSetBootableButtons(VBClibsys.CLB_BUTTON_LEFTTRIGGER) ' 先頭で Imports により名前修飾しているため下記でも可 bl = CLBSetBootableButtons(CLB_BUTTON_LEFTTRIGGER) ' ----- Wakeup 要因による電源 ON の有効 / 無効状態を読み出します Dim dat As Int64 bl = CLBGetBootableButtons(dat) If (dat And CLB_BUTTON_LEFTTRIGGER) <> 0 Then MsgBox(" 左ボタン有効 ") ' ----- 電源 ON 後 指定された時間電源 OFFを禁止するための設定を行います bl = CLBSetOffMaskTime(10, 0) ' 10 秒 ' ----- 本体電源をOFFします CLBPowerOff() ' ----- 本体と IO ボックスとの接続状態を取得します また 接続状態を監視する時間の設定も同時に行います Dim ans As Int32 ans = CLBCheckCharger(0) End Sub 14

DT-5100.NET ライブラリマニュアル 概要編 Ver3.00 発行元 : カシオ計算機株式会社 162-8543 東京都渋谷区本町 1-6-2 システムソリューション営業統轄部 TEL:03-5334-4638 15