Visual Studio 2022从typelib生成无效语法



我用的是Project>在Visual Studio 2022中添加新项目工具,并选择MFC类From typeelib。在出现的对话框中,我选择了"文件"。在implementation interface from下拉列表中,在Location字段中,我输入了从第三方包到.tlb文件的路径。我选择了几个要使用的接口,并单击OK按钮以确认请求。生成的大多数代码都是应有的,但是在一些地方,定义包含由于缺少参数说明符而导致的无效语法。例如:

LPUNKNOWN get_FX()
{
LPUNKNOWN result;
InvokeHelper(0xa, DISPATCH_PROPERTYGET, , (void*)&result, nullptr);
return result;
}

注意两个相邻的逗号之间有一个空格。

Visual Studio在尝试编译结果代码时,会意识到生成的代码存在问题。

C2059语法错误:','

我已经在早期版本的IDE中确认了这种行为。这是Visual Studio中已知的bug吗?

您可能需要重命名一些东西。如果输入#import office type library

#import "C:Program Files (x86)Microsoft OfficerootVFSProgramFilesCommonX86Microsoft SharedOFFICE16mso.dll"rename("RGB", "MSRGB" rename("DocumentProperties", "WordDocumentProperties")
#import "C:Program Files (x86)Microsoft OfficerootVFSProgramFilesCommonX86Microsoft SharedVBAVBA6VBE6EXT.OLB"raw_interfaces_only, rename("Reference", "ignorethis"), rename("VBE", "testVBE")
#import "C:Program Files (x86)Microsoft OfficerootOffice16Excel.exe"exclude("IFont", "IPicture") rename("RGB", "ignorethis"), rename("DialogBox", "ignorethis"), rename("VBE", "testVBE"), rename("ReplaceText", "EReplaceText"), rename("CopyFile","ECopyFile"), rename("FindText", "EFindText"), rename("NoPrompt", "ENoPrompt")

抱歉没有早点结束循环。我向微软提交了一个错误报告,他们上个月修复了Visual Studio 2022 17.6版本的错误。

最新更新