2

我得到了这行代码,我重复了很多,我声明了一个变量,DEV_BROADCAST_HDR并根据系统事件给它一个值。

由于我需要等到事件发生,我不能将其声明为全局或类似的,所以我想知道是否有某种方法可以#Define在 C++ 中执行类似的操作:

#Define MyLineOfCode Dim foo As DEV_BROADCAST_HDR = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)

这在 Visual Basic 2010 中是否可行?

4

2 回答 2

2

根据我的经验,#Const 似乎可以解决问题。 http://msdn.microsoft.com/en-us/library/deszhz3d%28VS.80%29.aspx

于 2015-01-20T13:34:13.980 回答
0

不,这是不可能的。Visual Basic .NET 完全没有 C 语言#define。您将获得的最接近的是在您的编辑器中查找和替换。

考虑改为使用适当的功能。你甚至可以使它通用:

Function StructFromPointer(Of T)(p As IntPtr) As T
    Return DirectCast(Marshal.PtrToStructure(p, GetType(T)), T)
End Function
于 2013-11-09T22:59:05.420 回答