上海电缆招聘信息:MFC 创建标准DLL求救

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 04:11:53
现需要把一个程序A中的若干核心函数提取出来单独做成DLL,供这个程序使用,以达到封装,保证核心源码安全。但是因为这些函数里面也使用到了A程序中若干其它函数和全局变量,现在求哪位高手指点迷惑
谢谢FORTUNE222的解答,但是因为我要做成DLL的函数中调了好多A程序中的函数,一一传函数地址的话,太多东西要传了,有没有简便的方法啊。

DLL应该是一个相对独立的模块,简单的办法是把DLL需要用到的外部变量和函数作为参数传给它,当然首要的还是要有好的设计,尽量减少DLL和应用程序的耦合

如果你的应用程序需要严重依赖全局变量或静态变量,那么TLS能够帮助解决它遇到的问题
使用动态T L S,首先必须调用T l s A l l o c函数:

DWORD TlsAlloc();
这个函数命令系统对进程中的位标志进行扫描,并找出一个F R E E标志。然后系统将该标志从F R E E改为I N U S E,并且T l s A l l o c返回位数组中的标志的索引。D L L(或应用程序)通常将该索引保存在一个全局变量中。这是全局变量作为一个较好选择的情况之一,因为它的值是每个进程而不是每个线程使用的值。