请教一个关于外部变量的问题。头痛!

homeforrose 2004-10-06 10:23:29
在用VC编程时,要在两个对话框类之间传递参数。如Dialog1和Dialog2,其中Dialog2是从Dialog1中发送一消息来触发产生的弹出对话框,想要从Dialog1中传递以结构体变量到Dialog2中。我想用全局变量来实现,在Dialog1.cpp中定义的外部变量,在Dialog2.cpp中用extern声明是出现重复定义的错误。定义和声明过程为
//Dialog1.h
struct Vel{
char a[30];
Vel *Next;
}Buffer;

class Dialog1: public{
//类的实现
};
声明过程
//Dialog2.cpp
extern Vel Buffer;

//以下对Buffer的应用
Buffer在Dialog1中建立一个链表,要在Dialog2中读去。
请问该外部变量该如何实现,或有更好的参数传递方法,请多指教。
不胜感激!
...全文
110 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
homeforrose 2004-10-08
  • 打赏
  • 举报
回复
谢谢班长,本贴要结,你第二种方法很有效。第一种方法出现外部变量的错误提示。
jdzwq 2004-10-06
  • 打赏
  • 举报
回复
不需要定义全局变量,在同一模块内也不需定义外部输出变量(extern)
最简单的方法是把 struct Vel{char a[30];Vel *Next;}Buffer; 放在stdafx.h中,当然其他头文件中也可以,在Dialog1中形成列表,SendMessage完了之后,即Dialog2处理完了之后,释放该列表。

  • 打赏
  • 举报
回复
技术上可行
符合你的要求吗?
如果不明白,你可以
(1),给我发短消息(请附帖子的地址).
(2),根据http://www.vcshare.net上的联系方式与我联系,推荐QQ.
(3),如果问题简单,请在http://www.vcshare.net/bbs上发帖.
如果问题比较复杂,请把代码压成*.rar当附件发在我的论坛上发帖.
同时在www.csdn.net上发帖,并给出在我的论坛的链接.
---------------
压代码前,请先删除debug,release文件夹,及*.opt,*.ncb,*.plg,*.aps.
  • 打赏
  • 举报
回复
struct Vel{
char a[30];
Vel *Next;
}; = > dialog1.h

struct Vel Buffer; ==> dialog1.cpp
extern struct Vel Buffer; ==> dialog2.cpp

不要忘记了include 头文件



  • 打赏
  • 举报
回复
extern struct Vel Buffer;

1,658

社区成员

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

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