[英]How to read c++ structure binary file in excel vba
我有一个c ++生成的结构文件,其中包含二进制形式的相应结构:
struct userinfo
{
char username[200];
char Password[200];
char Genkey[200];
long UniqueKey;
};
如何在Excel VBA代码中读取此文件?
这应该会让你到处:
Option Explicit
Type userinfo
username As String * 200
Password As String * 200
Genkey As String * 200
UniqueKey As Long
End Type
Sub readbin()
Dim rec As userinfo
Dim intFileNum As Integer
intFileNum = FreeFile
Open "C:\Temp\my.bin" For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
Get intFileNum, , rec
Debug.Print "->", rec.UniqueKey, rec.username
Debug.Print , rec.Password
Debug.Print , rec.Genkey
Loop
Close intFileNum
End Sub
进一步说明:C ++填充不是标准化的,在与其他语言连接时很痛苦。 处理C ++填充的最佳方法是将其删除,使其成为语言中立的。 这可以通过将C ++重新定义为 :
#pragma pack (push, 1)
struct userinfo
{
char username[200];
char Password[200];
char Genkey[200];
long UniqueKey;
};
#pragma pack (pop)
虽然如果您无法修改源程序,那么您可能需要四处寻找其他选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.