C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 105 - Макросы ATL W2A и A2W / ActiveX по шагам / Приложение

Шаг 105 - Макросы ATL W2A и A2W

Эти макросы созданы для удобной конвертации BSTR - ANSI и ANSI - BSTR. Мы уже рассматривали механизмы подобной конвертации в шаге "Шаг 57 - OLECHAR в CHAR и обратно". Но использование этих макросов довольно удобно и намного проще. Смотрим пример:

#include "stdafx.h"
#include "atlbase.h"
#include "iostream.h"

void main()
{
	CComBSTR bstrTemp;
	char buffer[5];
	strcpy(buffer,"Hello");
	USES_CONVERSION;
	bstrTemp=A2W(buffer);
	strcpy(W2A(bstrTemp),buffer);	
	cout << buffer << endl;
}

В основе этих макросов две функции API:

MultiByteToWideChar()
WideCharToMultiByte()

Эти две функции имеют просто огромное количество параметров, а данный макрос скрывает эти параметры от нас, вот и вся идея. Ну, например, первый параметр - это тип кодировки, нам бы пришлось ставить параметр, что это ANSI, а не MAC (Макинтош). Вообще пользуйтесь и не забывайте USES_CONVERSION, который тоже макрос и определяет ряд параметров для корректного преобразования, используемые потом в указанных макросах.


| |
Автор Каев Артем.
[AD]