首页 > 解决方案 > 为什么只有 C# 应用程序需要 BStrWrapper?

问题描述

在 SOLIDWORKS API 文档中,明确指出,为了将 .NET 字符串数组编组回 SOLIDWORKS,您必须使用BStrWrapper类。它还为 C# 应用程序声明了这一点而没有提及 VB.NET?这有什么原因吗?谢谢你。

资源

在此处输入图像描述

标签: c#comsolidworks

解决方案


我对 VB.net 不是很熟悉,但我认为这是因为 C# 和 VB.NET 中的转换规则不同。在下面,您引用的方法看起来(在 C++ 中):

virtual HRESULT __stdcall raw_RemoveExternalDocuments (
        /*[in]*/ VARIANT DocumentNames,
        /*[out,retval]*/ VARIANT_BOOL * Retval ) = 0;

或者更好看:

VARIANT_BOOL RemoveExternalDocuments (const _variant_t & DocumentNames );

C# 需要使用 BStrWrapper,因为它将字符串编组为 VARIANT,请参阅 MS doc。看起来 VB.NET 可以隐含地做到这一点。


推荐阅读