c# - 为什么只有 C# 应用程序需要 BStrWrapper?
问题描述
在 SOLIDWORKS API 文档中,明确指出,为了将 .NET 字符串数组编组回 SOLIDWORKS,您必须使用BStrWrapper类。它还为 C# 应用程序声明了这一点而没有提及 VB.NET?这有什么原因吗?谢谢你。
解决方案
我对 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 可以隐含地做到这一点。
推荐阅读
- c# - 从 XAML 到 C# 的 WPF 故事板
- flutter - 断言失败:第 854 行 pos 14:'file != null':不正确
- node.js - NodeJS API 如何通过 JDBC 连接到受 kerberos 保护的资源
- git - 拉后如何正确删除合并提交?(处理分离的 HEAD)
- node.js - Webpack handlebars-loader 模板文件在 mocha 单元测试中无法解析
- angular - 是否可以覆盖@Component.providers 中的默认对话框选项?
- javascript - 经过文件值到个人
- javascript - 如何在两个不总是矩形的元素之间画一条线(路径,svg)
- php - jQuery Ajax 调用在服务器上出现内部服务器错误,但在 Localhost 上有效
- java - Hibernate 一对多关系