主题:DLL怎么和主程序传递信息?
yiran
[专家分:0] 发布于 2006-08-31 20:09:00
DLL有时候要向调用他的程序传递一些信息,怎么实现?
回复列表 (共5个回复)
沙发
jzyray [专家分:20610] 发布于 2006-08-31 23:29:00
事件
板凳
yuhua [专家分:1730] 发布于 2006-09-01 08:58:00
不是很明白啊?
调用返回不行吗?
3 楼
yiran [专家分:0] 发布于 2006-09-04 22:21:00
详细说明一下:
我想练习写一个有提醒功能的软件,
在主程序中有个定时器,首先把事件从数据库读到数组中,然后定时检查数组看是否有要提醒的事件,
在主程序中有个按钮,点击有新的窗体可以填写新的提醒事件,并保存到数据库中
首先我碰到了一个问题,在填写了新的提醒事件并保存到数据库中后如何提醒主程序中的定时器重新读数据库中的数据,这个问题我解决了,新建一个类,设一个静态变量(只是我想到的办法,应该不是最好的办法,有好办法的望告知,谢谢!),一旦写了新的内容到数据库中就修改变量的值,而定时器则每次都检查类中的静态变量看是否要读数据库。
上面的问题解决了,可是我希望在主程序中点击按钮后的窗体来自一个DLL文件中,这是用类似乎不起作用了,
这就是我想问DLL怎么和主程序传递消息的原因了。谁知道这方面的?
4 楼
huangkit [专家分:350] 发布于 2006-09-12 18:14:00
好像VB里面有个实时编译的。并且可以传递参数。
OBJCT OBJ =CreateObjct( wSCRIPT。SHELL)
obj.exec(.exe,paramters)
5 楼
zhxatx [专家分:500] 发布于 2006-09-13 12:31:00
其实用全局变量的方法来做并不标准,你可以尝试以下使用托管事件的办法!
给个例子你吧!
class1:
public delegate void aa(string ss);//
public event aa bb;
调用时:this.bb("哈哈");
from:
类实例化的时候:
class1 clas=new class1();
clas.bb+=new...(cc) //cc无需加括号,...为系统自动生成的代码,省略!
public void cc(string ss)
{
//你要给class1调用的代码,如
MessageBox.show(ss);
}
这样,当class的代码调用bb时候,就会运行cc里面的代码,其实和事件是一样的原理,自己好好琢磨!
我来回复