
「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ランキング
-
フィルターかけた後、重複を除...
-
javaAPIを使いこなすには
-
俗に言う「C言語」を学びたいと...
-
ACCESS+SQL Serverで主キーを...
-
携帯絵文字について
-
変数名「cur」について
-
クラウドソージング等の受託系...
-
"青森"の漢字コードが 16進で"A...
-
アクセスでこんなふうにできま...
-
Windowをドラッグ移動したい
-
VBA・VB6.0・VB.NETの文字列型
-
JavascriptとStrusの連携について
-
エクセルVBA データーペース 集計...
-
エコポイントの商品コードを調...
-
ODBC接続時、SQL文で日本語...
-
オートフィルタで抽出結果に 罫...
-
Microsoft Visual Studio Commu...
-
SQL テーブルを結合
-
コードについて
-
エクセルVBAについて エクセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Excelシート上で右クリックがで...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Accessでの抽出で完全一致。
-
AccessでReplace関数を使うときに…
-
Access DCountでの連番について
-
sinカーブの表示のさせ方
おすすめ情報