VB2010中如何使用gdi
在VB6.0中是:在一个模块中:PublicDeclareFunctionGdiTransparentBltLib"gdi32"(ByValhdc1AsLong,ByVa...
在VB6.0中是:
在一个模块中:
Public Declare Function GdiTransparentBltLib "gdi32" (ByVal hdc1 As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal W1 As Long, ByVal H1 As Long, ByVal Hdc2 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal W2 As Long, ByVal H2 As Long, ByVal Color As Long) As Long
在窗体form1中的load事件上:
GdiTransparentBlt(Me.Handle, 0, 0, MapB.Width, MapB.Height, MapB.Handle, 0, 0, MapB.Width, MapB.Height, RGB(255, 255, 255))
(MapB为picturebox控件)
运行后提示:
托管调试助手“PInvokeStackImbalance”在“I:\自由时代\自由时代2010\自由时代2010\bin\Debug\自由时代2010.vshost.exe”中检测到故障。
其他信息: 对 PInvoke 函数“自由时代2010!自由时代2010.渲染引擎声明1::GdiTransparentBlt”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
如何改? 展开
在一个模块中:
Public Declare Function GdiTransparentBltLib "gdi32" (ByVal hdc1 As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal W1 As Long, ByVal H1 As Long, ByVal Hdc2 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal W2 As Long, ByVal H2 As Long, ByVal Color As Long) As Long
在窗体form1中的load事件上:
GdiTransparentBlt(Me.Handle, 0, 0, MapB.Width, MapB.Height, MapB.Handle, 0, 0, MapB.Width, MapB.Height, RGB(255, 255, 255))
(MapB为picturebox控件)
运行后提示:
托管调试助手“PInvokeStackImbalance”在“I:\自由时代\自由时代2010\自由时代2010\bin\Debug\自由时代2010.vshost.exe”中检测到故障。
其他信息: 对 PInvoke 函数“自由时代2010!自由时代2010.渲染引擎声明1::GdiTransparentBlt”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
如何改? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询