Шаг 224.
Microsoft Visual C++ 2010. Язык С/С++. Преобразование между ... . Пример 13. Работа с дескриптором в native-функции

    На этом шаге мы приведем программу, реализующую указанное преобразование.

    Текст программы приведен ниже, а результат - на рисунке 1.

// 224_1.cpp: главный файл проекта.

#include "stdafx.h"
#include <conio.h>
#include <vcclr.h>

using namespace System;

#pragma managed 
class StringWrapper //managed-класс
{
	private:
		gcroot < String^ > x;

	public:
		//метод присваивает private-члену х класса
		//(т.е. дескриптору) адрес строки "ManagedString"
		//в управляемой куче:*
		StringWrapper()
		{
			String^ str = gcnew String("ManagedString"); 
			x = str;
		}
		//метод-член класса присваивает переменной 
		//targetStr значение дескриптора х, который 
		//указывает на строку "ManagedString", и выводит 
		//эту строку:
		void PrintString() 
		{
			String^ targetStr = x;
			Console::WriteLine("StringWrapper::x == {0}", targetStr);
		}
};
#pragma unmanaged

void main() //native-функция
{
	StringWrapper s;  //s-переменная managed-типа 
	s.PrintString();  //печать строки "ManagedString" 
	_getch();
}
Архив проекта можно взять здесь.


Рис.1. Результат работы managed-типа в native-функции

    Со следующего шага мы начнем рассматривать компонент Chart.




Предыдущий шаг Содержание Следующий шаг