我得到了这行代码,在我将变量声明为DEV_BROADCAST_HDR
并将其赋予基于系统事件的值时,我重复了很多代码。
由于我需要等到活动,我不能将其声明为全局或类似的,所以我想知道是否有某种方法可以在C ++中执行#Define
之类的操作:
#Define MyLineOfCode Dim foo As DEV_BROADCAST_HDR = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)
这在Visual Basic 2010中是否可行?
答案 0 :(得分:1)
根据我的经验,#Const似乎可以解决问题。 http://msdn.microsoft.com/en-us/library/deszhz3d%28VS.80%29.aspx
答案 1 :(得分: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