截取了有关的几行代码:
namespace TPNameSpace
{
public partial class TPMain : Form
{
double Heading = 0; //arr[2]
public delegate void CALLBACKFUNCFK(IntPtr pData, Int32 datalength);
public static CALLBACKFUNCFK callbackFK = new CALLBACKFUNCFK(CallBackFuncFK); [DllImport("DataCtrlDll.dll", CharSet = CharSet.Auto, EntryPoint = "SetCallBack_YCFK")] // 设置设备的回调CallingConvention = CallingConvention.Cdecl,
public static extern int SetCallBack_YCFK(CALLBACKFUNCFK pCallBackFK);//FGetData pGetYC_FK
private void button1_OnMouseMove(object sender, EventArgs e)
{
label4.text="234";
int tempres = SetCallBack_YCFK(callbackFK);
}
public static void CallBackFuncFK(System.IntPtr pData, Int32 datalength)
{
int Heading=3;
label4.Text = Heading.ToString();// 此处提示出错,说找不到label4的定义 ,而且,此处的heading和正文中的heading完全两码事,怎么回事? return;
}
}
namespace TPNameSpace
{
public partial class TPMain : Form
{
double Heading = 0; //arr[2]
public delegate void CALLBACKFUNCFK(IntPtr pData, Int32 datalength);
public static CALLBACKFUNCFK callbackFK = new CALLBACKFUNCFK(CallBackFuncFK); [DllImport("DataCtrlDll.dll", CharSet = CharSet.Auto, EntryPoint = "SetCallBack_YCFK")] // 设置设备的回调CallingConvention = CallingConvention.Cdecl,
public static extern int SetCallBack_YCFK(CALLBACKFUNCFK pCallBackFK);//FGetData pGetYC_FK
private void button1_OnMouseMove(object sender, EventArgs e)
{
label4.text="234";
int tempres = SetCallBack_YCFK(callbackFK);
}
public static void CallBackFuncFK(System.IntPtr pData, Int32 datalength)
{
int Heading=3;
label4.Text = Heading.ToString();// 此处提示出错,说找不到label4的定义 ,而且,此处的heading和正文中的heading完全两码事,怎么回事? return;
}
}
label4.Text = Heading.ToString();改为 代码: [复制到剪贴板]
MethodInvoker updateLabel = delegate
{
label4.Text = Heading.ToString();
};
if (label4.InvokeRequired)
{
label4.Invoke(updateLabel);
}
else
{
updateLabel();
}可以?
因为CallBackFuncFK函数属于TPMain类
label4属于TPMain对象