我不是很清楚你的意图。
提一些建议吧:
1、把‘用户名、口令、数据库别名’放在DLL的接口中。
   function ModMain(ParentWnd: THandle; DbUsr,DbPwd,FunctionParameter,BdeAlias,Department,LoginUserid:shortString ): Integer; stdcall;  //返回主窗口的句柄
2、类似‘权限控制’等,配置性的操作,可以放在‘注册表’中。
3、具体操作放在DLL中,DLL中的功能应该相对独立。要能体现对象化的思想,最好对一些常用的
  消息操作进行封装。
//仅作参考,有兴趣,可以与我联系:[email protected]

解决方案 »

  1.   

    对于权限,菜单等,我的基本思路如下:
    1、所有相关信息,在服务器上有,但在CLIENT都有,不管怎么说,在本地读,要比在服务器上
    读快。至于放在注册表中,不是没有考虑,只是考虑到数据量较大(这些常用信息有25000多条记录,当然是不同的表)。而且如果用WINDOWS优化这类的软件一做,说不定,又会给清掉了。
    至于如果象权限等放生变化,则我在服务器有相应的表,将变化的资料放在里面,如果有变化,
    则CLIENT在起动时会当下来,然后再从本地读数据
    然而,对于用DLL,我没有多少经验。就目前来说,存在如下问题:
    1、主PRG要一次将菜单,权限等信息从DLL中读出来,这个全局对象怎么写?
    2、这个DLL如何写,我又是差不多束手无策。
      

  2.   

    你是要通过Dll来限制用户的权限,禁止某些菜单给用户吧,如果是这样不用把菜单放进表,只要在表中存放相关菜单的标识即可,如
     File  view Edit Help 4个菜单项
     F1    V1   E1   H1
     F2    V2   E2
     F3    V3   E3
    定义一个规则,
    如10->File
      11->F1
      22->V2
      40->help
    ...
    把他放到表里面
    用一个表存放 MenuID,USR
    其中 MenuId存放菜单的标识,USR存放用户名
    如果用户 U1 有 File 的权限则 对应 '10','U1'
    判断起来也很容易 select menuid from table where usr = "U1"
    然后在Dll中返回查询结果,在主程序里依次修改各菜单项的visible就行了(对了,一开始所有的菜单项都隐藏)
    Dll函数的入口参数有数据源、用户名的,返回一个查询的数据集
      

  3.   

    谢谢 hxf812(剑知心) ,请问这个DLL怎么写。