我在其中一个类的.h 和 .cpp里定义了变量并赋值。 在另一个类的.cpp里使用extern 定义变量。 编译提示: error LNK2001: 无法解析的外部符号;如果在.h里使用 extern 则会提示: 非法的存储类
a.hCString str_Sssj;a.cppCString str_Sssj;
str_Sssj = "商家名称";b.cppextern CString str_Sssj;————————————————————
编译提示: error LNK2001: 无法解析的外部符号;
我实在不会弄了。网上也找不到答案。 方法全是错的。
a.hCString str_Sssj;a.cppCString str_Sssj;
str_Sssj = "商家名称";b.cppextern CString str_Sssj;————————————————————
编译提示: error LNK2001: 无法解析的外部符号;
我实在不会弄了。网上也找不到答案。 方法全是错的。
中的
CString str_Sssj;
只需在.h文件中定义即可,不要再在cpp文件中重复定义。
str_Sssj = "商家名称";b.cpp#include "a.h"
b.cpp 里再用 CString 定义就可以了。但有一点还是没明白。 在a.cpp里赋的值为什么没传递到 b.cpp里。 难道重定义后。就清空了吗? 还是要用指针?
str_Sssj = "商家名称";
========
改为
a.cppCString str_Sssj= "商家名称";
将h文件中的CString str_Sssj;去掉。
例如你在框架类中定义了一个变量a,然后在view类中想获取此变量
CMainFrame *pt=(CMainFrame*)AfxGetApp()->m_pMainWnd;//获得指向当前系统的主框架类对象的指针
int b;
b=pt->a;就可以搞定