pinvoke中的回调函数无法改变窗体控件值? dll定义了callback函数,在csharp做了相应的声明,但是当调用到C#中相应的回调函数的时候没办法修改窗体上控件的值,这是何故? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 情况是这样子:C#代码如下:[DllImport("STATEAPI.dll")]public static extern int Open(StateCallBack fnState);// 回调声明public delegate void StateCallBack(int state);//具体使用 点击事件:{ API.StateCallBack stateCallBackCsharp = new API.StateCallBack(StateCallback); API.Open(stateCallBackCsharp);}callback定义: public void StateCallback(int state) { this.label.Text = "dffafd" }StateCallback有被回调到,但是label的值不改变。在程序里面直接调用StateCallback是可以改变其值的,是不是dll回调回来的,,不能操作ui 问题解决了!回调是属于非ui线程的,在pc上面的话,运行的时候会报错,但在wince就没这个提示机制。加个托管设置就可以了 关于多线程的问题 百分求如何扫描可用的代理IP 如何用WinForm实现百度这个页面的POST操作 请教关于tabcontrol的问题 读取XMl的问题(多层) 向高手请教后台代码写进前台页面出现的无法拿到变量的问题 VS2005中无法将自己创建的Custom Controls加到Toolbox中,和VS2003完全不同,高手相助 一个菜菜的问题,SQL2000配置 请问有什么办法能将汉字替换成空? 请问如何继承一个带参数的构造函数的类? 请求的资源在使用中。 (异常来自 HRESULT:0x800700AA) gridview如何能像excel那样冻结列头(多行列头,宽度不定,列数不定)
情况是这样子:
C#代码如下:
[DllImport("STATEAPI.dll")]
public static extern int Open(StateCallBack fnState);
// 回调声明
public delegate void StateCallBack(int state);//具体使用 点击事件:
{
API.StateCallBack stateCallBackCsharp = new API.StateCallBack(StateCallback);
API.Open(stateCallBackCsharp);
}callback定义:
public void StateCallback(int state)
{
this.label.Text = "dffafd"
}
StateCallback有被回调到,但是label的值不改变。在程序里面直接调用StateCallback是可以改变其值的,
是不是dll回调回来的,,不能操作ui
回调是属于非ui线程的,在pc上面的话,运行的时候会报错,但在wince就没这个提示机制。加个托管设置就可以了