在用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中读去。
请问该外部变量该如何实现,或有更好的参数传递方法,请多指教。
不胜感激!

解决方案 »

  1.   

    extern struct Vel Buffer;
      

  2.   

    struct Vel{
    char a[30];
    Vel *Next;
    };  = > dialog1.hstruct Vel Buffer;  ==> dialog1.cpp
    extern struct Vel Buffer; ==> dialog2.cpp不要忘记了include 头文件
      

  3.   

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

  4.   

    不需要定义全局变量,在同一模块内也不需定义外部输出变量(extern)
    最简单的方法是把 struct Vel{char a[30];Vel *Next;}Buffer; 放在stdafx.h中,当然其他头文件中也可以,在Dialog1中形成列表,SendMessage完了之后,即Dialog2处理完了之后,释放该列表。