CLR C ++ VS C ++ (pstsdk) - PullRequest
       31

CLR C ++ VS C ++ (pstsdk)

0 голосов
/ 04 января 2011

Учитывая ответ Саймона Мурье на этот вопрос:
Обработка сообщений электронной почты Microsoft Office Outlook 2003/2007…

Я планирую использовать SDK PST File Format SDK который написан на C ++.

Я бы воспользовался этой возможностью, чтобы узнать больше о C ++ и продолжить с ним, поскольку прошло уже 15 лет с тех пор, как я в последний раз использовал его.Я уже скачал и настроил Boost 1.45 , который требуется для работы с pstsdk.

Сейчас я пишу приложение для Windows Forms с использованием CLR C ++ и планирую использовать pstsdk для чтения из файлов PST.

Имеет ли какое-либо значение, что я использую и CLR C ++, и чистый C ++ в целом?

Должен ли ярассмотреть возможность использования его по-другому, или это нормально?

Ответы [ 3 ]

1 голос
/ 04 января 2011

Если вы хотите использовать пользовательский интерфейс .NET (Windows Forms или, может быть, даже более новый WPF), самый простой подход - создать объектную модель в C ++ / CLI, реализованную в терминах собственного кода, но имеющую. NET интерфейс.

Затем напишите пользовательский интерфейс на C # и вызовите объектную модель C ++ / CLI (которая отличается от использования библиотеки базовых классов .NET только одним способом - вы должны добавить ссылку на сборку C ++ / CLI ... но компилятор C ++ / CLI создаст все метаданные, которые использует C #).

1 голос
/ 04 января 2011

C ++ / CLI предназначен для взаимодействия с неуправляемым C ++ - это почти вся его цель.Однако я чувствую, что, вероятно, легче писать на C #, если вам нужен .NET, скажем, для WPF, который является отличной технологией, и просто используйте C ++ / CLI для взаимодействия.

1 голос
/ 04 января 2011

Вы можете смешивать управляемый и неуправляемый код , но будет маршалировать все, кроме встроенных типов через границы.Намного легче остаться с более мощным неуправляемым C ++.Вы можете использовать CodeGear C ++ Builder, например (или QT).Проблема с CodeGear в том, что компилятор не так уж и велик, поэтому вы не сможете скомпилировать все из Boost, но вам это может не понадобиться.

...