关于共享程序段的问题,在线等待

yingkou 2004-05-08 08:37:41
写了一个DLL并且在A.CPP中定义了一个共享程序段:
#pragma data_seg(".MYDATA")

static HINSTANCE hins=NULL;
static BOOL blViewScreen = FALSE;
static BOOL bFlag=TRUE;

static char szBuf[256];
static char *p=NULL;
static CString msg="";

#pragma data_seg()

#pragma comment(linker,"/SECTION:.MYDATA,RWS")
现在我要在B.CPP中使用共享程序段中的一个变量,应该如何去做?我在B.CPP中用:
extern CString msg;
这样连接的时候出现了:
unresolved external symbol "class CString msg" (?msg@@3VCString@@A)
如何解决?
...全文
40 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xenke 2004-05-09
  • 打赏
  • 举报
回复
袁峰说的对,因为不同的进程中相同的地址处的内容一般是不同的,比如第一个进程初始化了上面的p为某个值,那么这个值只是在这个进程中有意义,在第二个进程中虽然p还是那个值,但那里是什么内容呢?只有GOD才知道.另外,既然在A.CPP中是static,在B.CPP中用extern就是语法错误了.
flyelf 2004-05-08
  • 打赏
  • 举报
回复
共享并不意味着从dll中导出,如果在外界需要这个变量,则在dll中首先需要把这个变量导出
FengYuanMSFT 2004-05-08
  • 打赏
  • 举报
回复
Do not use pointer, do not use CString in shared section.

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧