0

我有一个带有声明的单元(WebFunctions.h)

String RawURLAllowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~.-_";

这个单元在应用程序中运行良好。但是当我添加一个也声明的组件时,不会发生WebFunctions.h初始化( )。RawURLAllowedCharsRawURLAllowedChars = NULL

要让应用程序恢复工作,加上删除组件的类声明仍然需要删除WebFunctions.obj文件。

注意:.cpp文件中的任何声明,无论是否有文件中的extern声明.h,都不起作用。

这是 XE2 中的错误还是我遗漏了什么?谢谢。

Obs.: 内部变量声明#ifndef .. #endif

4

2 回答 2

0

不要在头文件中初始化全局变量。在.h文件中声明变量extern,然后在对应的.cpp文件中进行初始化,例如:

WebFunctions.h:

extern const String RawURLAllowedChars;

WebFunctions.cpp:

const String RawURLAllowedChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~.-_";
于 2013-04-19T05:20:53.890 回答
0

这更像是一种解决方法,而不是真正的解决方案......但是......

注释(在主应用程序的 .cpp 文件中)带有#pragma link "Component"的行,添加使用 WebFunctions.h 的组件(不是初始化单元)。

删除 Debug\Win32 文件夹中的所有构建文件。

重新编译应用程序。

于 2013-04-19T19:29:10.313 回答