|
|
1
2
它们没有从二进制文件中剥离的原因是它们
使用:
然后,编译器将自动从二进制文件中删除未使用的常量。但是,需要记住的一点是,如果字符串在多个文件中使用,那么二进制文件中将包含这些字符串的多个副本,使用该字符串的每个翻译单元都有一个副本。甚至连gcc都没有
|
|
|
2
1
然后你只能链接你需要的常量;链接器将在其错误消息中告诉您是否缺少任何链接!(还有一些方法可以告诉编译器不要在构建的库中公开这些符号,假设您正在构建库,但它们不是标准的或可移植的。) |
|
|
3
0
如果定义了明确的规则以明确何时要使用what,则可以使用如下预处理器定义:
然后,您可以在单独的配置标头中定义或不定义这些值。
顺便说一下,如果这个文件要包含在许多源文件中,那么您应该避免将这些常量声明为
|
|
|
4
0
http://msdn.microsoft.com/en-us/library/a44fb3wy(VS.80).aspx ) 在您的例子中,有两个常量cstring,因此资源编译器将生成如下内容
因此,在本例中,您将有一个带有两个字符串的.dll。您的应用程序将加载.dll(AfxLoadLibrary)。然后,当您需要字符串时,应用程序会从resource.dll加载该字符串。 这就是防止Windows应用程序因全局静态字符串、位图等而膨胀的原因。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |