当我使用以下代码时,我收到编译错误
#import <dwmapi.lib>
#include <dwmapi.h>
我收到以下错误:
致命错误C1083:无法打开类型 库文件:'c:\ program 文件\微软 软件开发工具包\ WINDOWS \ v7.0a \ LIB \ dwmapi.lib“: 加载类型库/ DLL时出错。
Intellisense说:
2智能感知:无法开源 文件“c:/ users / #### / documents / visual 工作室 2010 /项目/ modlauch / modlauch /调试/ dwmapi.tlh“: 坏文件 描述符c:\ users \ #### \ documents \ visual 工作室 2010 \ projects \ modlauch \ modlauch \ modlauchdlg.cpp 7 1 modlauch
有谁知道如何解决它?我确信我的'dwmapi'库很好,它没有任何问题。我正在使用MFC和VS2010,但我不认为这与问题有关。 (平台 - Win32 )
如果我摆脱“#import”,那么我得到“未解析的外部符号__imp__DwmExtendFrameIntoClientArea @ 8”错误。
答案 0 :(得分:10)
这不是您的问题的答案,但对于带有该错误消息到达此处的其他人 - 如果您在从.lib中包含时不小心输入#import "Header.h"
而不是#include "Header.h"
那么您将获得那个错误。
答案 1 :(得分:7)
dwmapi .lib是一个类型库?你肯定它不仅仅是一个普通的老dll。 com lib是.DLL或.tlb。
我认为这是一个普通的老dll。所以你不要#import它你需要
#pragma comment(lib,"dwmapi.lib")
答案 2 :(得分:0)
类型库不是普通的对象库。
类型库通常位于DLL,OCX文件和TLB文件中。
我少数次#import'ed一个类型库,它总是其中之一,而不是.LIB文件。
使用REGTLB或REGTLIB命令(您可能需要在Google中查找)才能在系统中注册类型库。它与REGSVR32类似,但是注册一个类型库而不是COM组件。
您还可以使用OLEVIEW查看类型库的内容。