如题所示
CFrameMgr是在一个dll工程中导出的,暂且这个工程叫“A.dll”
XApp是另外一个dll工程,它继承了CFrameMgr,暂且这个工程叫“B.dll”单独编译这个2个工程,或者依赖编译都没有任何编译警告
可是若我现在新建一个exe工程,而这个exe工程使用到A.dll和B.dll工程导出的类的话,就会发生如题所示的编译警告1.2个dll工程都是直接使用__declspec(dllexport)来导出类,没有使用.def文件来导出。
2.所有使用到的类,都使用 1 的方法导出了。
3.编译等级是 Level 4想了很久,也查询了google都没有找到比较好的解决办法,有人能帮忙支个招吗?

解决方案 »

  1.   

    二.MFC动态链接库   1.制作的步骤:   (1)新建MFC AppWizard(dll)工程,工程名为MFCDll,选择Regular DLL using shared MFC DLL类型。   (2)在生成的MFCDll.cpp文件后面增加下面几行: 以下是引用片段: 
      int sum(int a, int b) 
      { 
      return a+b; 
      } 
      (3)在生成的MFCDll.def文件后面增加如下: 以下是引用片段: 
      sum @1 ;表示第一个函数是sum 
      (4)编译后会产生两个文件MFCDll.lib,MFCDll.dll   2.使用方法   (1)隐式调用法: 将MFCDll.lib拷贝到需要应用该DLL的工程的目录下,将MyDll.dll拷贝到产生的应用程序的目录下,并在需要应用该DLL中的函数的CPP文件中添加如下几行:   //注意这里没有在MFCDll.h中声明函数,所以不能直接包含MFCDll.h来声明函数。 以下是引用片段: 
      #pragma comment(lib,"MFCDll"); 
      int sum(int a, int b); 
      //当然如果你的DLL中有很多函数,那可以另外写个MFCDll.h,包含所有的函数声明,然后直接将头文件包含进去   (2)显示调用法:与Win32的调用方法一样,不需要#pragma comment(lib,"MFCDll");,但是需要在Project->Setting->Link->Object/library modules的框中增加MFCDll.lib这个库。 
      

  2.   

    那是说,使用def导出就不会有这个警告了吗?
    顺便问一句:出现这个编译警告的原因是什么?
    谢谢~
      

  3.   

    差点忘记了,1.dll不是MFC的dll工程,但是我想这个不会是产生这个编译警告的原因。
    2.出现的问题是,exe不是不能用dll,exe使用dll完全没问题,程序运行也没问题,
    就是编译的时候,出这么一大堆的编译警告。
      

  4.   

    你在exe中导入了XApp却没有导入CFrameMgr