2011-11-03 63 views
-2

我是從vb到vb.net的API轉換的初學者。在vb6中,他們使用的是user32 DLL。在Vb.Net中,我需要調用LockWindowUpdate Function()而沒有「User32.dll」函數。在vb.net LockWindowUpdate沒有使用DLL?

有沒有辦法鎖定窗口狀態,而不使用任何API調用vb.net ..?

如果等同於任何人知道讓我表明Code.that代碼應該在.net框架中工作。

VB

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

LockWindowUpdate Form1.hWnd 
+1

看起來你現在有兩個帳戶。請花點時間瞭解Windows在運行之前如何運行這些問題。正如你在前面的問題中所告訴的那樣,user32是需要的。你的應用已經使用它。 MS .net構建於win32之上。如果你需要在user32中使用它的功能。 –

+1

我懷疑你的問題是,你正試圖做一個文字轉換,其中每個vb6線映射到.net中的等效線。這種方法不會得到任何地方。框架是不同的。您的翻譯需要更加靈活和富有創意。 –

+1

LockWindowUpdate經常被濫用,這種情況在vb6代碼中很常見。你知道它的目的是什麼嗎?如果沒有,那麼你需要找出答案。 –

回答

3

你不能調用該函數沒有PInvoke的聲明。但是,您可以使用正確的。 VB6聲明與VB.NET聲明高度不兼容,避免它們並總是諮詢pinvoke.net進行正確的聲明。

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

其實使用此功能幾乎是always incorrect,但這是另一個問題。

相關問題