![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
「VB4.0の「LSet」と同等の機能をVB2008で実行するには?」の質問で
リストに間違いがあったので訂正します。
Public Type TpstndefをPublic Type Tpkyokudef
VB2008の練習のために、VB4.0のコードをVB2008にコンバージョンしています。
VB4.0の「LSet」がどうしてもコンバージョンできません。
LSet 以外はVB2008で機能がありました。
なにか方法はないでしょうか。
リストをコピーします。
Public Type Tpkyokudef
equip As Integer
stn_no As Integer
stn_class As Integer
line_no As Integer
stn_kind As Integer
End Type
Dim kdata As Tpkyokudef
Dim rbuf As buf1K
・
省略
・
Get #fno, seeksize, rbuf
LSet kdata = rbuf
No.2ベストアンサー
- 回答日時:
buf1kの構造体の中身は ・・・
ファイルはレコード単位を設定しているのですか
当方のテストでは 自動変換で変換されたコードを使ってます
VB4/6コード
Private Type buf1k
buf(1023) as Byte
End Type
VB2005コード
Private Structure buf1k
<VBFixedArray(1023)> Dim buf() As Byte
Public Sub Initialize()
ReDim buf(1023)
End Sub
End Structure
といった具合ですが ・・・
2005側の使用時に
dim myBuf as buf1k
dim kdata as Tpkyokudef
myBuf.Initialize()
FileGet( #fno, myBuf )
Dim objPtr As IntPtr = Marshal.AllocHGlobal(Len(MyBuf))
Marshal.Copy(MyBuf.buf, 0, objPtr, MyBuf.buf.Length)
kdata = Marshal.PtrToStructure(objPtr, GetType(Tpkyokudef))
Marshal.FreeHGlobal(objPtr)
といった具合ですが ・・・
構造体Tpkyokudef には
<StructLayout(LayoutKind.Sequential)> _
といったような属性を付けたほうがいいかもしれません
ありがとうございました。
「Private Structure buf1k
<VBFixedArray(1023)> Dim buf() As Byte
Public Sub Initialize()
ReDim buf(1023)
End Sub
End Structure」
これを
「Dim myBuf (1023) As byte」
に置き換えることで 「kdata」に値がきました。
前回のhttp://oshiete1.goo.ne.jp/qa4376846.htmlの回答でも「kdata」に値がきました。
当初、kdataに値が入らなかったときは、
構造体Tpkyokudefのメンバーに配列を定義していたからでした。
この配列をshortの並びにかえるとkdataに値が入りました。
redfox63さまをはじめ皆様には大変なご迷惑をおかけしました。
No.1
- 回答日時:
ありがとうございます。
リストを間違えたので訂正しました。
Public Type Tpstndef を Public Type Tpkyokudefに訂正です。
質問の内容は同じです。
ご忠告ありがとうござました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) Sheet3から2つの条件でオートフィルターで抽出した個数をSheet2へ入力するマクロで、一つ目の 4 2023/01/12 23:40
- Visual Basic(VBA) outlook マクロが終了しません。 1 2022/09/02 11:14
- Visual Basic(VBA) 標準モジュール Public mOnTime As Date Sub sample() '実行プロシ 1 2023/02/22 15:44
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
ACCESSユニオンクエリでORDER B...
-
特定行の背景色を変えたいのですが
-
ASCIIコードを文字に変換したい
-
access2003 クエリSQL文に...
-
Access DCountでの連番について
-
VB6のComboBox関連の書き方をVB...
-
JavaScriptの定数名が取り消し...
-
JANコードとPOSコードは同じ?
-
Outlook VBAについて
-
ペンダントライトのコードの色...
-
VBA 現在のセル番地を記憶、復...
-
PreviewKeyDownイベントが2回...
-
オートフィルタで抽出結果に 罫...
-
PictureBox内の画像をマウスド...
-
sinカーブの表示のさせ方
-
Exel VBA 別ブックから該当デ...
-
access2021 VBA メソッドまたは...
-
ACCESSで、履歴事項を管理する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1、Rstudioで回帰直線を求める...
-
1日に1人がこなせるプログラム...
-
access2003 クエリSQL文に...
-
エクセルVBAコードで教えて下さ...
-
Exel VBA 別ブックから該当デ...
-
JavaScriptの定数名が取り消し...
-
COBOLの文法
-
access2021 VBA メソッドまたは...
-
PreviewKeyDownイベントが2回...
-
JANコードとPOSコードは同じ?
-
過剰なオブジェクト指向脳から...
-
特定行の背景色を変えたいのですが
-
ACCESSユニオンクエリでORDER B...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
◾️Excel VBA 統合について Cons...
-
欠番の抽出について
-
VBA リストボックス(複数条件...
-
ACCESSで、履歴事項を管理する...
おすすめ情報