2013-11-09 82 views
1

我得到了這行代碼,我重複了很多,我在這裏聲明瞭一個變量DEV_BROADCAST_HDR並給它一個基於系統事件的值。#在Visual Basic 2010中定義相當於

因爲我需要等待,直到事件,我不能把這個聲明爲一個全球性的或類似的,所以我在想,如果有一些方法做這樣的事情#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中可能嗎?

回答

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 
+0

我明白了,謝謝我會做的功能,然後 – distante