2011-11-03 15 views
-2

私はvbからvb.netへのAPI変換の初心者です。彼らはuser32 DLLを使用しています.Vb.Netでは、 "User32.dll"関数を使わずにLockWindowUpdate関数()を呼び出す必要があります。DLLを使用しないでvb.netのLockWindowUpdate?

vb.netのAPI呼び出しを使わずにウィンドウの状態をロックする方法はありますか?

もし同等のものがあれば、コードを表示させてください。このコードは.netフレームワークで動作するはずです。あなたはのPInvoke宣言せずに、その関数を呼び出すことはできません

VB

Private Declare Function LockWindowUpdate Lib "user32" 
    (ByVal hWnd As Long) As Long 

LockWindowUpdate Form1.hWnd 
+1

ここに2つのアカウントがあるようです。これらの質問の多くを尋ねる前に、Windowsがどのように動作するかを学ばせてください。あなたが前の質問で言われたように、user32が必要です。あなたのアプリはすでにそれを使用しています。 MS .netはwin32の上に構築されています。 user32に関数が必要な場合は、それを使用してください。 –

+1

あなたの問題は、すべてのvb6行が.netの相当する行にマッピングされるリテラル変換を​​しようとしていることです。そのアプローチはどこにもないだろう。フレームワークは異なります。より柔軟で創造的な翻訳が必要になります。 –

+1

LockWindowUpdateは非常に頻繁に悪用されますが、これはvb6コードの場合と同様です。それがどのような目的を果たしているのか分かりますか?そうでなければ、あなたは知る必要があります。 –

答えて

3

。ただし、正しいものを使用することはできます。 VB6宣言は、VB.NET宣言との互換性が高くなく、適切な宣言についてはpinvoke.netに相談してください。実際にこの機能を使用して

Declare Function LockWindowUpdate Lib "user32" (ByVal hWnd As IntPtr) As Boolean 

はほとんどalways incorrectですが、それは別の問題です。

関連する問題