首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

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

2013-01-06 
C++ builder 6 Cannot convert ɺnsiString' to ɼhar *' 错误错误代码:E2451 Undefi

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];

热点排行