社区
C#
帖子详情
C#与DLL之间能实现回调吗?
wukk
2005-06-16 10:43:51
我现在有这样一个需求,C#要调用DLL中的一个函数,在这个函数执行的过程当中要在C#编写的界面上显示一些信息,如果是VC,可以在DLL函数中传入一个回调函数作为参数,但是在C#中如何实现此类功能?谢谢
...全文
207
13
打赏
收藏
C#与DLL之间能实现回调吗?
我现在有这样一个需求,C#要调用DLL中的一个函数,在这个函数执行的过程当中要在C#编写的界面上显示一些信息,如果是VC,可以在DLL函数中传入一个回调函数作为参数,但是在C#中如何实现此类功能?谢谢
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhouxm2003
2005-07-08
打赏
举报
回复
忘记贴上显示函数了:
public void ShowMsg(string msg)
{
this.Msg_Info.AppendText(msg);//Msg_Info 是textbox控件
}
zhouxm2003
2005-07-08
打赏
举报
回复
碰到同样的问题,我是用C写的dll在c#中调用,但是想让dll中的c函数中的printf显示在c#界面上,我用委托如下,但运行报错:
public delegate void BackFun(string Msg);
Ess.SetMsgFun(new BackFun(this.ShowMsg));//Ess是通过DllImport申明的dll函数的一个类
Ess.Init();//Init为dll中的函数
说明:SetMsgFun 为dll中的c的回调函数设置函数,实现如下:
Dll中的c代码:
//回调函数
typedef void(*pmsg)(char *);
void ShowMsg(pmsg CallMsg,char *StrMsg)
{
CallMsg(StrMsg);
}
//设置Dll的消息展示回调函数
pmsg FunMsg;
void SetMsgFun(pmsg CallMsg)
{
FunMsg = CallMsg;
}
//调用的函数代码
int Init()
{
ShowMsg(FunMsg," 登录服务器完成\n");
}
tiaoci
2005-07-07
打赏
举报
回复
用委托正确,就像这样:
public delegate void Callback(参数);
y1g1y1
2005-07-07
打赏
举报
回复
能够向DLL中传递回调函数
使用委托。
zhouxm2003
2005-07-07
打赏
举报
回复
顶!! 如何调用回调用函数,我编译时没有错误,但运行时报"引用了没有实例化的对像"
wukk
2005-06-16
打赏
举报
回复
DLL是VC写的
怎么传递回调函数,给个示例,或者网络资源
谢谢
quickball
2005-06-16
打赏
举报
回复
能够向DLL中传递回调函数
54783szg
2005-06-16
打赏
举报
回复
C#能调VC的DLL,但VC用不了C#的类库(DLL),除非VC用托管!
gzlucky
2005-06-16
打赏
举报
回复
你所说的DLL,是win32DLL,还是.Net中的类库?
如果是.Net的类库,这当中的方法很多,你可以使用 Observe的方式,或者使用.Net中的delegate event的方式。
pancult
2005-06-16
打赏
举报
回复
DLL中的函数要返回一个值,或者是传递进DLL的参数用实参..调用unsafe的方法可以使用传递地址参数来达到改变参数值的相互引用~
jxyctian
2005-06-16
打赏
举报
回复
頂!不懂VC
wukk
2005-06-16
打赏
举报
回复
错误提示:
Modulue:
File:i386\chkesp.c
Line:42
The value of ESP was not properly saved across a function call.This is usually a result of calling a function declared wtih one calling convention with a function pointer declared with a different calling convention
我在dll中声明的是stdcall,C# 中是默认dllimport
wukk
2005-06-16
打赏
举报
回复
我用VC写了一个DLL,DLL有一个函数,它的参数是一个回调函数的指针,然后在C#里面调用它
但是老出现致命错误,提示“CHKESP”错误
但是我用VC调用这个DLL,正常执行,为什么?
急!急!急!急!急!
谢谢
C#
Csharp 调用 C++的
DLL
中的
回调
函数
一个是C++的
DLL
以及源码 一个是调用他的
C#
源码 都是VS2010编译测试通过
C#
调用C++的
dll
实例,
回调
函数,string和int数组参数传递
C#
调用C++的
dll
实例,
回调
函数,string和int数组参数传递,在vs2010下调试通过,总结在这里,供大家参考。
QT编写
DLL
调用示例 方法 参数 返回值 事件
回调
QT编写
DLL
给外部程序调用示例 方法 参数 返回值 事件
回调
: 1:
C#
或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及参数一致; [
Dll
Import "qt
dll
dll
" ] public static extern int add int i ; 第三步:调用函数执行; Console WriteLine add 10 ToString ; 2:QT 第一步:引入头文件; #include <QLibrary> 第二步:定义函数指针 以备调用; typedef int Add int ; 第三步:载入
DLL
调用函数执行; QLibrary lib "qt
dll
dll
" ; lib load ; Add add Add lib resolve "add" ; add 50 ; 3:C或C++ 第一步:引入头文件; #include <windows h> 第二步:定义函数指针; typedef int Add int ; 第三步:载入
DLL
调用函数执行; HINSTANCE h
Dll
LoadLibrary "qt
dll
dll
" ; 载入
DLL
获取句柄 if h
Dll
NULL { Add add Add GetProcAddress h
Dll
"add" ; 获取函数地址 printf "%d" add 110 ; FreeLibrary h
Dll
; 释放
DLL
}">QT编写
DLL
给外部程序调用示例 方法 参数 返回值 事件
回调
: 1:
C#
或者 NET 第一步:引入命名空间; using System Runtime InteropServices; 第二步:声明函数 必须与实际
DLL
中函数名及参数一致; [
Dll
Import "qt
dll
dll
" ] public static extern int add in [更多]
C#
版本多媒体定时器
MmTimer 是一个多媒体定时器的
C#
简单封装。 使用这个定时器,你可以得到1ms精度的单次延时或周期定时。最初是想用来做播放midi文件的时钟,当然你也可以用它来做任何它能做到的事情。
c#
实现
win7设置wifi功能源码
c#
实现
win7设置wifi功能源码,各位需要请下载
C#
111,098
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章