我想把另外工程里的对话框拷进来,我先把dlg资源拷进来,在把相应的头文件和cpp文件拷进来,加入工程中,之后问题就来了,我得资源和代码没联系啊
请问怎么把资源和代码联系起来啊?我把passworddlg.h passworddlg.cpp拷贝到目标工程中后,从classwizard中选类时没有这个新的对话框类,重新生成classwizard后倒是有了,可在ctrl+w时直接打
开的passworddlg.cpp中的对话框的声明,好像已联系起来了,可一编译就报错,其中的对话框id和
控件id都说没定义,如下:
d:\test1\passworddlg.h(21) : error C2065: 'IDD_PASSWORD' : undeclared identifi
er
d:\test1\passworddlg.h(21) : error C2057: expected constant expression
D:\test1\PasswordDlg.cpp(31) : error C2065: 'IDC_EDIT_PASSWORD' : undeclared i
dentifier
D:\test1\PasswordDlg.cpp(32) : error C2065: 'IDC_EDIT_NAME' : undeclared ident
ifier其中错误对应的语句如下:
enum { IDD = IDD_PASSWORD }
DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);
DDX_Text(pDX, IDC_EDIT_NAME, m_strUserName);
我查过了,在resource.h有它们的定义啊,*.rc里也有对话框的信息啊,我改怎么办呢?

解决方案 »

  1.   

    你对照2边的resource.h文件,就可以了。
      

  2.   

    如果include "resource.h"就不会出现上面编译错误
    建议rebulid all
      

  3.   

    include "resource.h""在哪个文件中呢
      

  4.   

    resource.h就在原对话框所在工程的目录下,里面有对资源id的定义.
      

  5.   

    我是说把resource.h包含在哪个文件中去?
      

  6.   

    我想把另外工程里的对话框拷进来,我先把dlg资源拷进来,在把相应的头文件和cpp文件拷进来------------------------------------ 不用全部拷贝,只考 DIALOG 部分, 然后在resource.h(现在的项目的resource.h) 中加资源的ID 注意不要重复了, 如果有一个没有加正确,则DLG 就有问题
      

  7.   

    最好的办法就是打开原程序的rc文件,然后把对话框拷贝到新的程序中。然后在添加.h和.cpp文件。之后,还需要修改.h和.cpp文件中包含的某些宏代码。在然后,选择对话框的时候,按ClassWizard的时候,他会让创建或使用已有的类。选择已经存在的类。就差不多了。
      

  8.   

    1.在新建工程新一对话框A,对话框ID与你在拷贝的源对话框A ID一样。
    2.在打开新建工程环境下打开另外工程里的对话框工程中的资源文件*.rc,找到对应的源对话框B,然后将对话框B中控件全选复制到对话框A。
    3.拷贝对话框B的*.cpp和*.h到新工程目录,然后加入到工程中,再改包含的原应用程序头文件为当前工程的。
    4.OK
      

  9.   

    打开两个工程,CTRL-C再CTRL-V,修改一下ID,加入.h,.cpp就应OK。
      

  10.   

    楼上的,用一个项目打开rc文件,用工具栏上的拷贝粘贴按钮,连ID都不用改
      

  11.   

    不好意思,是拷的对话框*.cpp文件中没包含新的resource.h文件,谢谢大家了,