Z
zhuwanhai
Unregistered / Unconfirmed
GUEST, unregistred user!
<br> 关于调用DLL文件的问题,请各位高手指点,急!急!急! 100分<br><br> 一. 编程环境: Delphi5.0 和 SQL Server 7.0<br> 二. 问题背景:<br> 将“劳人子系统”根据模块划分为几个DLL文件,用一个公用的调用程序来调用这几个DLL文件;程序如下:<br> ……. <br> MyHandle:=LoadLibrary(pchar(s_dll)); <br> @MyProc:=GetProcAddress(Myhandle,'showMDIChildForm'); <br> Myproc(application.Handle,fm_xh,pchar(yhbs));<br> // FreeLibrary(Myhandle);<br> <br>注:s_dll :是DLL 文件的名称;<br>showMDIChildForm 是每个DLL文件的输出程序,其内容都一样;<br> fm_xh 和yhbs 是自己设置的标志;<br><br>三.问题:<br> 1。在程序运行后,点击某个模块的菜单项,调用他的DLL文件,程序正确运行(单独调用每个DLL文件都正确运行);<br> 但当调用任意其他模块的DLL文件(即点击其他模块的菜单项)后,即报错:Name not unique (名称不唯一),然后是BDEengire(BDE引擎)的错误;即不能在程序中调用两个不同的DLL;<br> 2.上述程序,在其他几个子系统(各自都划分为几个DLL文件) 均没问题,但“劳人子系统”与其他子系统不同的是:<br>A. 劳人子系统中用了BDE的连接和ADO的连接,而其他子系统只用了ADO;<br>B. 劳人子系统中每一模块都有自己的DataModule(放置Table 和Query)窗口,但它们共用一个BDE的接口,即所有的Table和Query 共用一个Database Name;<br>难道不能共用一个Database吗?<br>是DLL文件没有及时释放?<br>在DLL程序中用到BDE(database)该注意什么?<br>我该如何解决这上问题!!!<br> 3.用FreeLibrary(Myhandle) 时,则程序运行到该语句时,即死机;(书上讲,在调用DLL文件后,需释放,但我一用就死机);<br> 如何用FreeLibrary()函数?请指点!!!<br>