Code Bye

关于C#调用C++ dll的回调函数

刚开始用C#动态创建了一个窗体,就是一个按钮点击后,就会显示一个窗体。然后,会调用C++中的一个dll,这个dll中有一个回调函数。本人想获得这个回调函数中的字符串,再在刚刚显示的窗体中再显示一个小窗体,这个小窗体会显示回调函数获得的字符串,刚开始想直接在回调函数里面调用显示小窗体事件,然后报错说不允许在子线程创建父线程的窗体,百度了看说使用委托,但是这个小窗体的上一个窗体也是动态添加的,这个怎么做,,题主学C++的,C++也比较浅,求帮助,
解决方案

25

回调函数
(1)概念:回调函数,顾名思义,就是使用者本人定义一个函数,使用者本人实现这个函数的程序内容,然后把这个函数作为参数传入别人(或系统)的函数中,由别人(或系统)的函数在运行时来调用的函数。函数是你实现的,但由别人(或系统)的函数在运行时通过参数传递的方式调用,这就是所谓的回调函数。简单来说,就是由别人的函数运行期间来回调你实现的函数。
//定义带参回调函数
void PrintfText(char* s)
{
printf(s);
}
//定义实现带参回调函数的”调用函数”
void CallPrintfText(void (*callfuct)(char*),char* s)
{
callfuct(s);
}
//在main函数中实现带参的函数回调
int main(int argc,char* argv[])
{
CallPrintfText(PrintfText,”Hello World!\n”);
return 0;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于C#调用C++ dll的回调函数