社区
C#
帖子详情
C#与DLL之间能实现回调吗?
wukk
2005-06-16 10:43:51
我现在有这样一个需求,C#要调用DLL中的一个函数,在这个函数执行的过程当中要在C#编写的界面上显示一些信息,如果是VC,可以在DLL函数中传入一个回调函数作为参数,但是在C#中如何实现此类功能?谢谢
...全文
241
13
打赏
收藏
C#与DLL之间能实现回调吗?
我现在有这样一个需求,C#要调用DLL中的一个函数,在这个函数执行的过程当中要在C#编写的界面上显示一些信息,如果是VC,可以在DLL函数中传入一个回调函数作为参数,但是在C#中如何实现此类功能?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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#
DLL
接口
回调
函数
一:
回调
函数1:
DLL
内部 //声明
回调
函数 typedef void (CALLBACK* ONSERIESDATA)(BYTE* buf, DWORD dwBufLen, DWORD dwTime, bool bDown); //
DLL
接口中的传入回到函数 extern "C" __declspec(
dll
export) void WIN
C#
与 C++ 交互
一、关于非托管C++调用
C#
DLL
的问题: 1.可以在二者
之间
增加一个桥梁,使用C++/CLI(取代了托管C++) ,原生C++代码为主调程序,C++/CLI和
C#
/.NET 均为动态库*.
dll
。 2.原生C++可以使用函数LoadLibrary(
dll
FileName)加载
dll
,然后使用函数GetProcAddress()调用C++/CLI里的接口函数 代码片段: BOOL de...
C#
获取c++函数指针(c++函数指针转换为
C#
方式表示)
转自:https://www.cnblogs.com/keanuyaoo/p/3317911.html
C#
和c++
之间
相互传递函数指针 在C++和
C#
之中都有很多callback method,可以相互调用吗,怎么传递,是我表弟的问题. 1.定义c++
dll
,导出方法 // sort.cpp : 定义
DLL
应用程序的导出函数。 // #include "stdaf...
C#
c++ 传递函数指针
[UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)] public delegate int INTARRAYSORT(IntPtr a, IntPtr b);
C#
和c++
之间
相互传递函数指针 在C++和
C#
之中都有很多callback method,可以相互调用吗,怎么传递,是我表弟的问题. 1.定义c++
dll
,导
unity与C++
之间
的一些交互
C++与
C#
交互
C#
111,129
社区成员
642,536
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章