他装置にデータを送信したいのですが、提供されているI/Oの標準インターフェースライブラリに引き渡すデータの型がStringになっています。
送信するデータは文字列ではなく、種別毎に構造が違うのでユーザー型を定義して編集しています。
このユーザー型定義したデータバッファをライブラリコールに指定するとコンパイルエラーになります。
Public Type strUsd
ai As Integer
ue As Integer
wo As ILong
End Type
Dim Usd As strUsd
Call IOlib(Usd,.....)
また、このユーザー定義型のデータを参照して、その内容を16進ダンプするプロシージャをつくりたいのですが、そのプロシージャではどのように参照すればよいのでしょう。
Sub Dump(Buf As String, Size As Integer,....)
提供されているI/Oの標準インターフェースとしての情報は、
データの型がStringであるとしかないのでしょうか?
通常、他装置とのデータのやりとりでは、
きちんとした約束事が取り決められているはずです。
例:固定長文字列で ai のデータは1文字目から3文字目、
ueのデータは4文字目から6文字目、また数値データならば
空白箇所はゼロ埋めをするのか、また空白でよいのか 等・・・
インタフェースの約束事に合わせて、型変換などをしたらいかがでしょうか
>提供されているI/Oの標準インターフェースとしての情報は、
>データの型がStringであるとしかないのでしょうか?
提供されているI/Oの標準インターフェースとは、使用するHWのドライバのインターフェースです。従って指定するデータの型はStringです。
ドライバはStringで渡されたデータを可変長のByteストリームデータとしてHWに渡しているだけです。
>通常、他装置とのデータのやりとりでは、
>きちんとした約束事が取り決められているはずです。
こちらから送ったデータを受け取る相手装置のアプリケーションとの間には取り決めがあります。
それに従ってユーザー型を定義しています。
>Sub Dump(Buf As String, Size As Integer,....)
インポート関数なら、As String を As Any にして見てください。
多分大丈夫のはずです…多分
ツイート | ![]() |