Почему BStrWrapper требуется только для приложения на C #? - PullRequest
0 голосов
/ 17 декабря 2018

В документации API SOLIDWORKS прямо указано, что для того, чтобы упорядочить массив строк .NET обратно в SOLIDWORKS, вы должны использовать класс BStrWrapper .Это также заявляет это для приложений C # без упоминания VB.NET?Есть ли причина для этого?Спасибо.

Источник

enter image description here

1 Ответ

0 голосов
/ 12 февраля 2019

Я не очень знаком с 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документ .И, похоже, VB.NET может сделать это неявно.

...