【问题标题】:Error loading type library/DLL加载类型库/DLL 时出错
【发布时间】:2011-01-17 14:27:41
【问题描述】:

当我使用以下代码时出现编译错误

#import <dwmapi.lib>
#include <dwmapi.h>

我收到以下错误:

致命错误 C1083:无法打开类型 库文件:'c:\program 文件\微软 sdks\windows\v7.0a\lib\dwmapi.lib': 加载类型库/DLL 时出错。

智能感知说:

2 IntelliSense:无法开源 文件“c:/users/####/documents/visual 工作室 2010/项目/modlauch/modlauch/Debug/dwmapi.tlh”: 坏文件 描述符 c:\users\####\documents\visual 工作室 2010\projects\modlauch\modlauch\modlauchdlg.cpp 7 1 模块

有人知道如何解决吗?我确定我的 'dwmapi' 库很好,没有任何问题。我将 MFC 与 VS2010 一起使用,但我认为这与问题无关。 (平台 - Win32

如果我去掉“#import”,则会收到“未解析的外部符号 __imp__DwmExtendFrameIntoClientArea@8”错误。

【问题讨论】:

    标签: c++ mfc visual-studio-2010 winapi


    【解决方案1】:

    这不是您的问题的答案,但对于其他带着该错误消息到达这里的人 - 如果您在从 .lib 中包含时不小心输入了#import "Header.h" 而不是#include "Header.h",那么您将收到该错误。

    【讨论】:

    • 谢谢,这很有帮助。
    【解决方案2】:

    dwmapi .lib 是一个类型库吗?你确定它不仅仅是一个普通的旧 dll。 com 库是 .DLL 或 .tlb。

    我认为它是一个普通的旧 dll。所以你不需要#import它而是你需要的

     #pragma comment(lib,"dwmapi.lib")
    

    【讨论】:

      【解决方案3】:

      类型库不是普通的对象库。

      类型库通常位于 DLL、OCX 文件和 TLB 文件中。

      我有几次#import'ed 一个类型库,它总是其中之一,而不是 .LIB 文件。

      使用 REGTLB 或 REGTLIB 命令(您可能需要在 Google 中查找)在您的系统中注册类型库。它类似于 REGSVR32,但注册的是类型库而不是 COM 组件。

      您还可以使用 OLEVIEW 查看类型库的内容。

      【讨论】:

        猜你喜欢
        • 2012-12-15
        • 1970-01-01
        • 2020-07-25
        • 2019-01-23
        • 2018-03-03
        • 2012-10-29
        • 2010-10-01
        • 2011-03-04
        • 2018-10-17
        相关资源
        最近更新 更多