我有一个声明
的单位(WebFunctions.h)String RawURLAllowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~.-_";
此单元在应用程序中运行良好。但是当我添加一个也声明WebFunctions.h
的组件时,RawURLAllowedChars
的初始化不会发生(RawURLAllowedChars = NULL
)。
要让应用程序恢复工作,再删除组件的类声明仍然需要删除WebFunctions.obj
文件。
注意:.cpp
文件中的任何声明,在extern
文件中有或没有.h
声明,也不起作用。
这是XE2中的一个错误,或者我遗漏了什么?感谢。
Obs。:#ifndef .. #endif
答案 0 :(得分:0)
不要在头文件中初始化全局变量。在.h文件中将变量声明为extern
,然后在相应的.cpp文件中初始化它,例如:
WebFunctions.h:
extern const String RawURLAllowedChars;
WebFunctions.cpp:
const String RawURLAllowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~.-_";
答案 1 :(得分:0)
这更像是一种解决方法而不是真正的解决方案...但是......
注释(在主应用程序的.cpp文件中)带有 #pragma link“Component”的行,添加了使用WebFunctions.h(不是初始化单元)的组件。
删除Debug \ Win32文件夹中的所有构建文件。
重新编译应用程序。