我想从主窗口向dll的窗口传递数据怎么做?

baidu_14897433 2016-05-11 05:07:23
新手求教
我有个自己写的.dll里,在主窗口加载.dll并调用相关函数创建的窗口,现在窗口都已经打开了,如何传递数据
比如我每隔几秒或者我想传递一些数据进DLL的窗口怎么做,主窗口和DLL的窗口都已经创建了
...全文
231 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_14897433 2016-05-16
  • 打赏
  • 举报
回复
引用 4 楼 lkr2380869 的回复:
最直接的方法就是你的dll的窗体写个接收数据的函数,主窗体直接调用发送数据咯
就是不知道怎么 写 = = 比如主窗口怎么确定是这个窗口,怎么接收
sgyiliya 2016-05-16
  • 打赏
  • 举报
回复
你既然是编译为DLL的窗体,那么多半是要显示出来给用户交互的吧,所以MyDLL _frmMyDLL = new MyDLL();是必须的。 这里把这FromMainToMyDLL方法定义为静态,是不需要这句的:MyDLL _frmMyDLL = new MyDLL();, 只需要先using MyDLL; 然后直接这样:MyDLL.FromMainToMyDLL(_STR);就可以了。 但是如果这个FromMainToMyDLL方法需要使用到一些动态变化(比如由于用户的交互)的变量的话,那么最好还是要把MyDLL做一个new的(MyDLL _frmMyDLL = new MyDLL();)。
baidu_14897433 2016-05-16
  • 打赏
  • 举报
回复
引用 7 楼 sgyiliya 的回复:
[quote=引用 6 楼 baidu_14897433 的回复:] [quote=引用 4 楼 lkr2380869 的回复:] 最直接的方法就是你的dll的窗体写个接收数据的函数,主窗体直接调用发送数据咯
就是不知道怎么 写 = = 比如主窗口怎么确定是这个窗口,怎么接收[/quote] 就按照 lkr2380869说的去做, 假设dll的窗体类是:MyDLL, 在MyDLL里面定义一个静态方法(假设返回string,传入string):

public static string FromMainToMyDLL(string _srt)
{

}

然后在主窗体里面这样调用:
MyDLL _frmMyDLL = new MyDLL();
_frmMyDLL.FromMainToMyDLL(_STR);
[/quote] 我试试,这个必须静态的吗?这个静态这里有什么特殊的作用
baidu_14897433 2016-05-16
  • 打赏
  • 举报
回复
引用 5 楼 rocmemory 的回复:
即便是动态加载的,也要看你调用的是这个dll的什么东西,因为dll本身是没有意义的,所以也就不存在“调用几次”的问题。而如果你是动态加载的,也一定是将dll内的某个类实例化,这就要看你在哪里储存这个实例化的对象了,它能存活多久要取决于所在的上下文环境,比如你把它作为一个静态变量,那么就是一直存在的,可以随时调用。
这样啊,我按照这个思路来试试
sgyiliya 2016-05-16
  • 打赏
  • 举报
回复
引用 6 楼 baidu_14897433 的回复:
[quote=引用 4 楼 lkr2380869 的回复:] 最直接的方法就是你的dll的窗体写个接收数据的函数,主窗体直接调用发送数据咯
就是不知道怎么 写 = = 比如主窗口怎么确定是这个窗口,怎么接收[/quote] 就按照 lkr2380869说的去做, 假设dll的窗体类是:MyDLL, 在MyDLL里面定义一个静态方法(假设返回string,传入string):

public static string FromMainToMyDLL(string _srt)
{

}

然后在主窗体里面这样调用:
MyDLL _frmMyDLL = new MyDLL();
_frmMyDLL.FromMainToMyDLL(_STR);
为轮子而生 2016-05-13
  • 打赏
  • 举报
回复
即便是动态加载的,也要看你调用的是这个dll的什么东西,因为dll本身是没有意义的,所以也就不存在“调用几次”的问题。而如果你是动态加载的,也一定是将dll内的某个类实例化,这就要看你在哪里储存这个实例化的对象了,它能存活多久要取决于所在的上下文环境,比如你把它作为一个静态变量,那么就是一直存在的,可以随时调用。
lkr2380869 2016-05-13
  • 打赏
  • 举报
回复
最直接的方法就是你的dll的窗体写个接收数据的函数,主窗体直接调用发送数据咯
baidu_14897433 2016-05-13
  • 打赏
  • 举报
回复
引用 1 楼 rocmemory 的回复:
那就在dll里做接收数据的接口啊,你总不能对一个聋子说话吧
新手没想到这里,谢谢 这个dll是动态加载的,是不是每次都需要加载一次dll,然后才能传递数据呢?
baidu_14897433 2016-05-13
  • 打赏
  • 举报
回复
引用 1 楼 rocmemory 的回复:
那就在dll里做接收数据的接口啊,你总不能对一个聋子说话吧
哈哈,新手 问题,不要介意。。
为轮子而生 2016-05-12
  • 打赏
  • 举报
回复
那就在dll里做接收数据的接口啊,你总不能对一个聋子说话吧

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧