读书人

请问VB的DLL开发有关问题

发布时间: 2012-01-03 22:16:06 作者: rapoo

请教VB的DLL开发问题
工作中需要开发一个DLL,遇到了下面的问题,请大家指教。

举例说一下我要实现的功能。
假设DLL中有一个窗体(FrmDLL)和一个类(ClsDLL),窗体上有2个TextBox,类中提供一个Public的方法Show()用于显示FrmDLL。

调用该DLL的工程实例化DLL的对象,通过Show方法来显示窗体。然后在其中一个TextBox中输入编号,程序根据编号到相应的数据表中查找记录,并将结果显示在FrmDLL中。

现在的问题是连接数据库查找记录的过程由调用DLL的程序完成,然后将查询的结果返回给DLL,由DLL处理将结果显示到FrmDLL上。要完成这样的功能DLL应该如何处理。方法随意,通过自定义事件或接口都可以,只要能实现就行。

本人水平有限,希望大家能给个详细的解决方法,最好能提供一个小示例程序。先在此谢过各位。

[解决办法]
把查的果集DLL不就完了

至於怎,定一性接口也好按也好,果集的可以是recordset,也可以是,看人好了~
[解决办法]
Dll 中的窗体是不能直接被外部访问的,所以要用类来中转。如:

在窗体中输入查询条件开始查询时(如按下查询按钮),在窗体中通知类模块,类模块再通知外部程序。最简单的方法就是用事件的方式,查询条件作为输出,查询结果作为输入。如:

在窗体和类块中声明事件
public event on_query(byval querystring as string,byref result as recordset)

窗体中引发该事件
private sub cmdquery_click()

dim strquery as string
dim rstresult as recordset

' 生成查询条件
strquery = ...

raiseevent on_query(strquery,rstresult)

' 查询完成后展现查询结果
set datagrid1.datasource = rstresult

end sub

在类模块里接受并中转这个事件
private withevents mfrmQuery as frmQuery

private sub mfrmQuery_on_query(byval querystring as string,byref result as recordset)
raiseevent on_query(querystring,result)
end sub

这样外部就可接受这一事件并做查询的动作,将结果放到result里即可。
[解决办法]
sjb_dl(飞火流星) 说的对!!

上面的说:Dll 中的窗体是不能直接被外部访问的。
没有外部的东西要访问dll中的窗体阿??楼主也没要这样做。

直接在你的类模块中加入
Public sub show()
FrmDLL.show
end sub

在FrmDLL窗体中设计数据库连接查询等。和普通的标准EXE工程做法一样。

读书人网 >VB

热点推荐