Используйте строковый конструктор, который принимает chararray в качестве аргумента, начальную позицию и длину массива. Синтаксис приведен ниже:
string charToString = new string(CharArray, 0, CharArray.Count());
Visual studio имеет много встроенной поддержки для импорта библиотек типов в ваш проект C ++ и использования определенных таким образом объектов. Например, вы можете использовать директиву #import
:
#import "CANoe.tlb"
Это импортирует библиотеку типов и преобразует ее в файлы заголовков и файлы реализации - также это приведет к созданию файлов реализации с вашим проектом. и заголовочные файлы, которые должны быть включены, так что это уже много волшебства.
Затем вы получаете множество определений типов для оболочек интеллектуальных указателей для типов и объектов, определенных в библиотеке типов. Например, если существует CoClass с именем Application
, который реализует интерфейс IApplication
, вы можете сделать следующее:
ApplicationPtr app(__uuidof(Application));
Это вызовет во время выполнения,
Используйте директиву import
для импорта файла .tlb - это даст вам C ++ эквивалент интерфейсов, предоставляемых компонентом COM.
Вам также потребуется зарегистрируйте компонент COM в реестре (запустите regsvr32 для файла .dll компонента). После этого вы можете вызвать CoCreateInstance () (или _com_ptr_t :: CreateInstance (), как обычно удобнее), чтобы создать экземпляр класса, реализующего интерфейс. Затем вы можете вызывать методы интерфейса - он будет работать почти так же, как если бы это был простой интерфейс и класс C ++.
Более простой способ - включить оба проекта .h и _i.c в ваш .cpp файл с помощью операторов #include
.
Поскольку вам не дали предоставляется dll и только tlb, вы можете зарегистрировать tlb с помощью regtlibv12.exe, который является частью Visual Studio (это версия VS2005). После регистрации tlb в реестр будут внесены соответствующие записи, после чего вы сможете использовать функциональные возможности библиотеки COM по мере необходимости.
РЕДАКТИРОВАТЬ: Кстати, вам в любом случае потребуется DLL для успешного создания экземпляра компонента COM.
Чтобы создать интерфейс указатель, один из более безопасных способов - использовать CComPTR, например:
CComPtr myPtr;
myPtr.CoCreateInstance(__uuidof("ClassNamehere"));
myPtr->Method(....);