Cannot convert 'AnsiString' to 'char

场景:C++ builder 6 Cannot convert 'AnsiString' to 'char *' 异常

C++ builder 6 Cannot convert 'AnsiString' to 'char *' 错误
错误代码:
E2451 Undefined symbol 'reserve'


一个头文件中api.h中定义了
char reserve[9]; 

sremain.cpp中定义了
#include "api.h"
...
String Mlinkid;
...
Mlinkid=QryUser->FieldByName("Linkid")->AsInteger;  //Linkid 为数据库中的列名
strcpy(reserve,Mlinkid.c_str());
------解决方案--------------------
数组不要在头文件中定义,在cpp文件中定义数组,如果其它的cpp文件要引用的话,在头文件中加一个声明
extern char reserve[];
如果不是必须,尽量不要使用全局变量
------解决方案--------------------
全局对象的定义和声明方法:
在.h文件中用extern声明,如:
extern char reserve[9];

在.cpp文件中定义,如:
char reserve[9];