Одним из запутанных аспектов программирования Windows является управление преобразованием строк стиля Visual Basic в / из строк стиля языка Си. Дело не в том, что это так сложно, просто трудно вспомнить детали. Обычно это делается не часто, и документация MSDN настолько обширна, что трудно найти ответы на ваши вопросы. Но хуже всего то, что вы можете выполнить какой-нибудь тип, который прекрасно компилируется, но работает не так, как вы ожидаете. Это приводит к тому, что код не работает, а ошибки трудно отследить. После некоторого опыта вы научитесь проверять, что преобразования строк выполняют то, что вы ожидаете.
Строки C - это массивы символов, оканчивающиеся символом NULL. Строки Visual Basic отличаются тем, что длина строки предшествует символам в строке. Итак, строка VB знает свою длину. Кроме того, все строки VB являются Unicode (16 бит на символ).
Типы строк
BSTR / C Строковые преобразования требуются, если:
You are doing COM programming in C/C++
You are writing multiple language applications, such as C++ DLL's accessed by Visual Basic applications.