DLL相互导入

来源:互联网 发布:深圳大学网络教育 编辑:程序博客网 时间:2024/04/28 01:32

      DLL相互导入的问题参见http://msdn.microsoft.com/zh-cn/library/fdy23fx6.aspx,以下为VS2010中的解决方法。 

一、设置DllA项目的属性
  1.常规-->配置类型->静态库(.lib)
  2.库管理器-->命令行-->其他选项-->/DEF(以便生成DllA.exp)

 
二、设置DllB项目的属性
  1.常规-->配置类型->动态库(.dll)
  2.自定义生成步骤-->命令行-->

      Link.exe /ERRORREPORT:PROMPT ^
      /OUT:$(OutDir)\DllA.dll /NOLOGO ^
      /LIBPATH:$(OutDir) /DEBUG ^
      /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT ^
      /MACHINE:X86 /DLL ^
      $(OutDir)\DllA.exp ^
      $(OutDir)\DllB.lib ^
      $(SolutionDir)DllA\Debug\DllA.obj ^
      $(SolutionDir)DllA\Debug\dllmain.obj ^
      $(SolutionDir)DllA\Debug\stdafx.obj

     自定义生成步骤-->说明-->生成 DllA.dll
     自定义生成步骤-->输出-->DllA.dll
     自定义生成步骤-->在以下操作之后执行-->FinalizeBuildStatus


三、生成解决方案
  1. Lib.exe DllA.obj /DEF                       --> DllA.lib, DllA.exp
  2. Link.exe DllB.obj DllA.lib                 --> DllB.lib, DllB.exp, DllB.dll
      Link.exe DllA.exp DllB.lib                --> DllA.dll
  3. Link.exe main.obj DllA.lib DllB.lib   --> main.exe

原创粉丝点击