gpt4 book ai didi

C# 相当于 VB6 'Type'

转载 作者:行者123 更新时间:2023-11-30 13:33:45 25 4
gpt4 key购买 nike

我正在尝试将一个相当大的源代码从 VB6 移植到 C#。这不是一件容易的事——尤其是对我这个刚接触 C#.net 的人来说。此源使用大量 Windows API 以及大量类型。我知道在 C# 中没有等效的 VB6 类型,但我确信有一种方法可以达到相同的结果。我将在下面发布一些代码来进一步解释我的请求。

VB6:

Private Type ICONDIRENTRY
bWidth As Byte
bHeight As Byte
bColorCount As Byte
bReserved As Byte
wPlanes As Integer
wBitCount As Integer
dwBytesInRes As Long
dwImageOffset As Long
End Type

Dim tICONDIRENTRY() As ICONDIRENTRY

ReDim tICONDIRENTRY(tICONDIR.idCount - 1)

For i = 0 To tICONDIR.idCount - 1
Call ReadFile(lFile, tICONDIRENTRY(i), Len(tICONDIRENTRY(i)), lRet, ByVal 0&)
Next i

我尝试过使用结构和类 - 但到目前为止运气不好。

我希望看到此 Type 结构的转换,但如果有人知道如何转换整个结构,那将非常有帮助。我已经在这个小项目上花费了无数时间。

如果有任何不同,这仅用于教育目的。

提前感谢您的帮助,埃文

最佳答案

struct 是等效的。你会这样表达:

struct IconDirEntry {
public byte Width;
public byte Height;
public byte ColorCount;
public byte Reserved;
public int Planes;
public int BitCount;
public long BytesInRes;
public long ImageOffset;
}

你像这样声明一个变量:

IconDirEntry entry;

通常,在 C# 中,不使用类型前缀,也不全部大写,常量可能除外。 struct 是 C# 中的值类型,这意味着它们始终按值传递。看起来您正在将它们传递给填充它们的方法。如果您想要这种用法,则必须使用类。

关于C# 相当于 VB6 'Type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com