2011-11-03 64 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,但这是另一个问题。

相关问题