请教高手,VB2005中多工程如何实现全局变量?

sakaer 2006-07-15 12:44:46
我现在遇到一个问题,就是在一个项目中有多个工程,比如说包含有A、B、C、D四个工程,其中A为程序运行起点,B、C、D都是dll,我想四个工程都使用同一份信息,比如说有一份用户信息UserInfo,如何做到这个UserInfo只在A中维护,B、C、D也可以访问呢?还是只能是在B、C、D中也维护一份Copy,在调用B、C、D的时候由A设进去呢?
请达人指点。拜谢!
...全文
338 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sakaer 2006-07-19
  • 打赏
  • 举报
回复
问题解决,我新建了一个公用的dll。
谢谢各位,结贴了。
MorningLi 2006-07-16
  • 打赏
  • 举报
回复
新建模块,正如一楼的高手说的那样!
lixilin 2006-07-16
  • 打赏
  • 举报
回复
我是另外建一个项目,作为公用的DLL,其他程序都引用这个项目,在其中创建 一个类CbaseEnv,在启动项目中实例这个类,将参数赋其中,在其他的项目创建时,传递过去。
阿牛138588 2006-07-15
  • 打赏
  • 举报
回复
在main中声明肯定不行。如果信息量不大可以使用注册表,读注册表很快,而且这种方法节省内存,提高程序的性能。如果信息量很大可以使用数据库或文件。
楼上的方法信息量小还可行,信息量大就没必要了,而且占用资源比放注册表的要多
hhjjhjhj 2006-07-15
  • 打赏
  • 举报
回复
A写一个UserInfo类,里面设一些的属性用于存贮信息,A运行时实例化一个那个类的对象。
B,C,D中设一个属性(或NEW时的参数),用于A的UserInfo对象的传入。
snwxf 2006-07-15
  • 打赏
  • 举报
回复
关注!
lxwin01 2006-07-15
  • 打赏
  • 举报
回复
如果是B,C,D工程要共用A工程中的对象,首先B,C,D工程要引用A工程,A工程可以用单例模式来维持你要共享的类,如
namespace A
{
public class UserInfo
{
UserInfo info=new UserInfo();
private UserInfo(){}
public static getUserInfo()
{
return info;
}
private string username;
public string UserName
{
get{return username;}
set{username=value;}
}
}
}

当然还可以用更好的方法将UserInfo只能在本程序集使用,让另一个共享类来维持UserInfo类,这样不会污染UserInfo的特性和行为。
kssys 2006-07-15
  • 打赏
  • 举报
回复
是的。會不能添加A的引用,因為最會引起循環。

可以新建個項目BaseDLL,在A/B/C/D添加到BaseDLL的依賴。
HAVENT 2006-07-15
  • 打赏
  • 举报
回复
1、同上,创建公共DLL模块,里面包含变量
2、采用XML、INI等配置文件方式,大家统一从一个或多个配置文件读取信息
sakaer 2006-07-15
  • 打赏
  • 举报
回复
谢谢kssys() ,能不能再指点一下,这个Module应该放在哪个工程下?A下?放在A下的话,其他项目不能添加A的引用,好像。
kssys 2006-07-15
  • 打赏
  • 举报
回复
然後在其它項目添加依賴項。
kssys 2006-07-15
  • 打赏
  • 举报
回复
可以把這些放在模組裡面聲明。
用Public Shared關鍵字聲明它。如:

Module MainModule
public shared i as integer=3
End Module

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧