在c中编译dll时传递参数

时间:2014-04-02 08:01:32

标签: c++ c visual-studio compiler-construction

在VS?

中编译项目时可以发送参数

我有一个.dll,必须为更多国家编译。国家ID需要代码,这就是为什么我需要为每个国家分开构建的原因。所以,我在想是否有办法在编译时将国家ID作为参数发送,不是每次我需要为某个国家进行构建时修改代码?

1 个答案:

答案 0 :(得分:1)

我将简要地解释上面提到的每种方法的优缺点的一些描述,尽管我倾向于使用locale文件方法,除非通过单独编译的dll进行模糊处理有非常强大的案例或要求。

  • 通过语言环境资源文件加载因国家/语言而异的内容;代码将保持不变,但字符串,公式等都可以从文件系统上的资源加载,该资源具有所选语言环境的相关条目。
    • 优势:单一代码库;多个区域设置文件;简单的代码维护;单一版本定位资源所在的所有区域设置;可以通过添加简单的资源/区域设置文件轻松扩展到新区域
    • 缺点:需要外部资源/区域设置文件
  • 使用#define来包装代码,以便每个编译路由都依赖于特定的#define
    • 优势:版本更安全,因为所有材料都在已编译的dll中;
    • 缺点:编译更复杂,因为它需要参数化;添加新的语言环境意味着向代码库添加代码;要引入的错误的范围乘以要支持的语言环境的数量+ 1
  • 多种配置:这与使用#define
  • 具有相同的问题和优势