我有一个大型Visual Studio解决方案,该解决方案当前针对使用标准Windows库,使用多字节字符集且不提供公共语言运行时支持的应用程序为32位(x86)。我受命在64位编译它位(用于工作)。我想导入oleaut32.dll
库,因为它在64位上。
当我开始更改项目的平台并进行编译时,我遇到了一些编译错误(32位函数,链接问题),现在大多数问题都已解决。问题是它导入了olepro32.dll(有效)在32位元上),它表示它是旧格式或无效的类型库(因为它是32位元库)。
我在互联网上搜索了它的64位版本,发现它是oleaut32.dll。我试图导入它,但它不会让我出现错误C1083:
c:\windows\system32\oleaut32.dll': Error loading type library/DLL
。
我试图更改项目属性(从No Common Language Runtime Support
更改为 Common Language Runtime Support
,但无效)。
我在Microsoft网站上查找了错误C1083的原因,我怀疑其中的原因是:
我尝试在具有管理员权限的情况下运行Visual Studio,但这没有用。
我发现它是一个COM库,我不知道该怎么处理。
在x86平台上,代码为:
#import <olepro32.dll> rename("FONTSIZE", "FONTSIZE_OLE32") no_auto_exclude include("IFont", "IPicture")
在x64平台上,我尝试将以下代码替换为:
#import <oleaut32.dll> rename("FONTSIZE", "FONTSIZE_OLE32") no_auto_exclude include("IFont", "IPicture")
我期望它能顺利运行,因为oleaut32.dll是位于Windows32文件夹中的64位库。但是我得到了Error loadin DLL
答案 0 :(得分:0)
oleaut32.dll与olepro32.dll没有关系,并且不是Typelib
olepro32.dll是TypeLib,它公开了 IPicture 和 IFont 接口
您可以在这些接口中添加:
#include <ocidl.h>