为什么只有 C# 应用程序才需要 BStrWrapper?

Why is BStrWrapper only required for C# application?

在 SOLIDWORKS API 文档中明确指出,为了将 .NET 字符串数组编组回 SOLIDWORKS,您必须使用 BStrWrapper class。它还针对 C# 应用程序说明了这一点,但未提及 VB.NET?这是有原因的吗?谢谢你。

Source

我对 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,see MS doc。它看起来 VB.NET 可以隐含地做到这一点。