TrackPopupMenu
함수를 호출하여 관리되는 VB.NET 코드에서 런타임에 메뉴를 표시하려고합니다. 의 PInvoke 기능 를 호출 불균형 스택을 가지고 'UeWIPopupX.mDeclares :: TrackPopupMenu UeWIPopupX!'PInvokeStackImbalance는 메시지를 검출되었다관리되는 vb.net 코드에서 TrackPopupMenu 함수를 호출하는 방법
내가 TrackPopupMenu 기능을 위해 사용하고있는 선언이다: 다음은 내가 점점 오전 오류입니다. 관리되는 PInvoke 서명이 과 관리되지 않는 대상 서명이 일치하지 않기 때문일 수 있습니다. 호출 규칙과 PInvoke 서명의 매개 변수가 대상 관리되지 않는 서명과 일치하는지 확인하십시오. 사각형
RECT
에 대한 선언 아래dim lpRc as RECT Dim tP As POINTAPI Dim lR as Integer Dim lUn as Integer lUn = TPM_RIGHTBUTTON Or TPM_TOPALIGN Or TPM_LEFTALIGN Or TPM_RETURNCMD tP.x = 50 tP.y = 100 'Here I am getting the error lR = TrackPopupMenu(m_ppMenu.Tools(1).hMenu, lUn, tP.x, tP.y, 0, m_hWndOwner, lpRC)
됩니다 : 아래
이<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=True, CallingConvention:=CallingConvention.StdCall)> _ Friend Function TrackPopupMenu(ByVal hMenu As Long, ByVal wFlags As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nReserved As Integer, ByVal hWnd As IntPtr, ByVal lprc As RECT) As Integer End Function
TrackPopupMenu
함수를 호출하는 코드입니다 : 아래
<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
TrackPopupMenu를 호출하는 동안의 모든 인수에는 일부 값이 있습니다. 다른 callingConvention를 시도했지만 여전히 오류가 발생했습니다.
이 문제를 해결할 수 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?