CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

关于静态库的一个问题,多分相送!

楼主pigja(朱健安)2005-08-02 17:34:18 在 C/C++ / C++ 语言 提问

现在遇到一问题,描述如下:  
  现在需要对外发布一个库,库中用到一些宏,而用户希望对这些宏进行配置。  
  如现在的代码:  
  #define   MAX_USER_MEM     1024  
  用户希望根据具体情况修改这个值。  
     
  但如果用户改这个宏的话,库就需要重新编译。有什么好的办法,能让用户改这个值,而库又不需要重新编译呢?  
   
  目前想到的一个方法是使用配置文件,然后把宏改为变量(这种方法我这用不是很好)。除此之外,还有什么好方法没?    
  不知道问题描述清楚了没,大家帮忙看看吧!  
  如果能有满意的答案,那分数不是问题。至少再给你200分!你说就成!  
  问题点数:50、回复次数:8Top

1 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-08-02 17:42:28 得分 0

这个MAX_USER_MEM有否用来定义数组?比如:char   name[MAX_USER_MEM]?Top

2 楼pigja(朱健安)回复于 2005-08-02 17:44:29 得分 0

如果没有,有好办法没?  
  就算有,也可以让他没有,这个不是问题!Top

3 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2005-08-02 17:45:01 得分 20

这个用宏是不合适的了。宏在编译阶段就确定下来了。程序中用macro的地方都该用变量。  
   
  变量的初始化可以用macro的值,但是程序应该可以从指定的配置文件读取一个配置值,来修改变这个变量的值。  
   
  这个问题想都不用想了,一定是这样的。而且数据不复杂就不要用XML了。普通的INI文件就可以了。  
  Top

4 楼pigja(朱健安)回复于 2005-08-02 17:47:44 得分 0

谢谢healer_kx(天降甘草)。  
  不过我提过了“目前想到的一个方法是使用配置文件,然后把宏改为变量(这种方法我这用不是很好)。”  
   
  有没其他方法?Top

5 楼megaboy(飞天御剑流之杀神一刀斩)回复于 2005-08-02 17:54:09 得分 20

如果没有用于数组的话,何不在程序里面写段用户交互的代码,用来询问这个值的,每次运行就由用户自己输入这个值。  
   
   
  如果用于定义数组的话,把MAX_USER_MEM改成一个变量,同样由用户自己输入这个值,再由这个变量定义数组,这样定义的数组是VLA,楼主可以用支持VLA的linux的gcc编译成一个库让用户使用,没有问题的。Top

6 楼JohnTitor(贱畜)回复于 2005-08-02 19:49:10 得分 10

使用注册表把,你的在库里读注册表来获得那个值,用户通过注册表来修改这个值Top

7 楼jiajun2001(Jagen(嘉俊))回复于 2005-08-02 22:03:44 得分 0

我同意楼上的做法Top

8 楼pigja(朱健安)回复于 2005-08-03 09:45:44 得分 0

看来是我没说清楚,这个库是手机上操作系统库!不是windows下的。  
  如果通过配置文件,那文件系统初始化可能还没完成。  
   
  虽然不是我想要的答案,但各位已经提供了很多方法,谢谢大家了!  
  Top

相关问题

  • 静态连接库??
  • 静态连接库!!
  • 静态库问题,up无分,在线等待!!!
  • 静态库链接问题,会者拿分150!
  • 静态链接库问题
  • 关于静态链接库
  • 无法连接静态库??
  • 如何编写静态库?
  • 静态库调用问题?
  • 制作静态库问题

关键词

  • 用户
  • 编译
  • 修改
  • 变量
  • 数组
  • 库
  • 配置文件
  • 注册表
  • 定义
  • 宏

得分解答快速导航

  • 帖主:pigja
  • healer_kx
  • megaboy
  • JohnTitor

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo