» Главная
eXcode.ru » Статьи » .NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 9





Совместимость




Могу я использовать COM-объекты из программы в .NET Framework?

Да. Любая COM-компонента, которую вы создаете сегодня, может быть использована из управляемого кода, и в общем случае адаптация происходит автоматически.
COM-компоненты доступны из .NET Framework через обертку вызовов среды выполнения - runtime callable wrapper (RCW). Эта обертка оборачивает интерфейсы вызываемых COM-компонент в интерфейсы, совместимые с .NET Framework. Для OLE-интерфейсов, обертка может создаваться автоматически из библиотеки типов. Для других интерфейсов, разработчики могут написать свою обертку и вручную связать типы компоненты с типами, совместимыми с .NET Framework.

Могут компоненты .NET Framework использоваться из COM-программ?

Да. Управляемые типы, которые вы создаете, могут быть доступны из COM и в общем случае все происходит автоматически. Некоторые возможности управляемого окружения не доступны из COM. К примеру, статические методы и параметризованные конструкторы не могут быть использованы из COM. В общем случае, бьыло бы хорошо заранее решить, кто будет пользователем данного типа. Если тип будет использоваться из COM, то вы можете быть ограничены в использовании некоторых возможностей.

В зависимости от языка, который вы используете для создания управляемого типа, он может быть видимым или невидимым по умолчанию.

Компоненты .NET Framework доступны из COM, используя обертку вызовов COM - COM callable wrapper (CCW). Она подобна RCW (см. предыдущий вопрос), но работает в противоположном направлении. И также, если средства разработки .NET Framework не могут автоматически создать обертку, или автоматическое поведение не соответствует тому, что вы ожидали, то вы можете создать обертку вручуню.

Можно использовать Win32 API из программы в .NET Framework?

Да. Используя платформный вызов, программы .NET Framework могут получить доступ к базовым библиотекам, указывая точки входа в DLL.

Вот пример вызова из C# функции MessageBox :

using System;
using System.Runtime.InteropServices;

class MainApp
{
[DllImport("user32.dll", EntryPoint="MessageBox")]
public static extern int MessageBox(int hWnd, String strMessage, String strCaption, uint uiType);

public static void Main()
{
MessageBox( 0, "Hello, this is PInvoke in operation!", ".NET", 0 );
}
}

Источник: www.cyberguru.ru
К началу статьи





Добавил: Дата публикации: 2007-10-16 09:05:02
Рейтинг статьи:3.00 [Голосов 5]Кол-во просмотров: 8115

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какую музыку вы предпочитаете?
Techno
11% (29)
Rap
10% (26)
Rock
48% (126)
Trance
10% (27)
Pop
7% (17)
house
5% (13)
Классическую
7% (19)
Я не слушаю музыку
2% (4)

Проголосовало: 261
Три женщины одеваются в раздевалке после занятия спортивной аэробикой. Разговор, конечно, о мужьях.
- Мой муж, - говорит первая, - работает учителем. Он всегда дарит мне коробку конфет или букет цветов перед тем, как овладеть мною.
- А мой - ювелир, - говорит вторая, - перед тем как заняться любовью со мной, - он дарит мне жемчужину.
Третья женщина задумалась на минутку и говорит:
- А мой муж работает в Микрософт. Он всегда присаживается на край кровати и рассказывает мне, как это будет здорово для меня, когда он меня трахнет.
Рейтинг: 1/10 (9)
Посмотреть все анекдоты