我是按照http://blog.csdn.net/wzy_5117/archive/2007/11/05/1868432.aspx上面建的一个MFC规则DLL,前面一切正常,就是在我添加MFC规则DLL接口函数时候出错了//我添加了个ShowDlg的cpp文件,代码如下
#include "StdAfx.h"
#include "DllDialog.h"extern "C" __declspec(dllexport) void ShowDlg(void) 
{
 CDllDialog dllDialog;
 dllDialog.DoModal();
}这个时候编译出错了,说找不到dll中dialog的ID。
错误:error C2065: 'IDD_DLL_DIALOG' : undeclared identifier可是在我没有添加ShowDlg.cpp的时候没出这个错误。(我用的是VS2005)后来我去网上找了个这个程序的源代码,我看了下跟我的跟下载下来的没差别已经困扰了我一天了,很是郁闷,分不多 ,大家帮帮忙

解决方案 »

  1.   


    在ShowDlg.cpp加一个头文件包含
    #include "resource.h"
      

  2.   

    最好ShowDlg.h也加
    #include "resource.h"
      

  3.   

    楼主 的DLL里有资源文件?
      

  4.   


    可是我对照我下的源程序里面也没加,而且吧我也已经试过了加了以后编译出来的dll也调用不到那个dialog
      

  5.   


    有啊,没有的话 在我们添加 ShowDlg.cpp的时候就编译不过去了
      

  6.   

    首先调用AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
      

  7.   

    我把我写的代码上传到http://download.csdn.net/source/2936420大家帮忙看看,到底是哪里出问题了,谢谢
      

  8.   

    extern "C" __declspec(dllexport) void ShowDlg(void) 楼主使用了__declspec(dllexport)这个宏,相当于AFX_EXT_CLASS,需要确认编译器是否使用了_AFXEXT开关,可以在头文件中使用下面的代码解决这个问题:#ifndef _AFXEXT
    #define 'IDD_DLL_DIALOG' 8000
    #else
    #include "resource.h"
    #endif
      

  9.   


    我还没弄明白,是加载ShowDlg.cpp里面吗?我加了没什么用,我把我的工程上传上去了,你能帮忙看下吗?
      

  10.   

    要进行资源的转换的啊
    exe和dll之间的转换 楼主可以google下