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 に答える