C++ / CLI: Преимущества перед C#

Я боюсь, что проблемой является доступ к базе данных. Компании платят для присваивания UPC и таким образом, база данных не свободно доступна. сайт UPCdatabase , упомянутый Philip, является запуском, как UPCData.info, но они - вводимый пользователь - что означает неполный и возможно неточный.

можно всегда входить в UPC к Google и получать хит, но это не очень автоматизировано. Но это действительно разбирается в нем большую часть времени.

я думал, что помнил Jon Udell, делающего что-то вроде этого (например, видят это ), но это был просто базирующийся ISBN.

Похож, Вы нашли новый проект для кого-то продолжить работать!

9
задан Mat 1 May 2012 в 10:32
поделиться

10 ответов

Это почти исключительно язык взаимодействия - как для разрешения .Net-коду доступа к устаревшим библиотекам C ++, так и для расширенных существующих (собственных) баз кода C ++ с доступом к .Net-библиотекам (и некоторым вариантам эти темы).

Хотя возможно писать полноценные приложения исключительно на C ++ / CLI, и это даже дает вам некоторые языковые функции, недоступные в чистом C ++ (такие как сборка мусора), я сомневаюсь есть много людей, которые действительно так поступили бы. Если вы уже отходите от чистого C ++ и не преследуете цель взаимодействия с .Net, вероятно, есть более естественный выбор (например, D или Scala , например - в зависимости от того, в каком направлении вы хотите двигаться).

Аналогично,

13
ответ дан 4 December 2019 в 06:09
поделиться

Я могу придумать 3 основные причины для использования C ++ / CLI:

  1. У вас уже есть большой проект C ++ и вы хотите использовать в нем .NET (хотите ли вы полностью перенести его в будущее или нет)
  2. Вы хотите использовать библиотеку, написанную на C или C ++. Для простых библиотек вы можете использовать C # / PInvoke, но, например, если библиотека поставляется со сложной системой типов, вам может быть лучше создать оболочки C ++ / CLI вместо воссоздания системы типов в C #
  3. . Части в вашем проекте лучше всего написано на C ++. Например, если вы выполняете распознавание речи или обработку изображений, C ++ может просто лучше подойти для этой задачи.
6
ответ дан 4 December 2019 в 06:09
поделиться

Используя C ++ / CLI, очень легко взаимодействовать с собственным кодом C ++

3
ответ дан 4 December 2019 в 06:09
поделиться

Преимущество управляемого C ++ заключается в том, что он легко смешивает управляемый и неуправляемый код. Но если весь (или почти весь) ваш код будет управляемым, то определенно следует использовать C # (и вы все равно можете вызывать неуправляемый код из C # , используя атрибут DllImport ).

2
ответ дан 4 December 2019 в 06:09
поделиться

вы просто обращаетесь к c ++ \ cli, когда вам нужно, если вы можете удовлетворить свои требования, используя c #, зачем вообще переходить на c ++ \ cli

0
ответ дан 4 December 2019 в 06:09
поделиться

В общем, я думаю, что главное преимущество C ++ / CLI - это просто знакомство разработчиков C ++. Если вы не являетесь специалистом по C ++, используйте C #.

0
ответ дан 4 December 2019 в 06:09
поделиться

Более легкое взаимодействие с собственным кодом C ++ - это одно из преимуществ.

Независимо от того, является ли это основным преимуществом, субъективно.

Если вы не хотите смешиваться с существующим собственным кодом C ++, вам, вероятно, будет намного лучше с C #.

12
ответ дан 4 December 2019 в 06:09
поделиться

неуправляемые c++ приложения не нуждаются в фреймворке для запуска, c# будет работать только на машинах с dotnet фреймворком 1, 2, 3 или 4. Удивительно, сколько машин все еще работает без этого фреймворка.

0
ответ дан 4 December 2019 в 06:09
поделиться

Поскольку я преимущественно программист на C #, мне приходилось использовать C ++ / CLI с некоторой болью. Однако, как язык взаимодействия, он намного превосходит C # в том, что ему приходится работать с собственным кодом. В среде IDE C ++ / CLI в Visual Studio отсутствуют многие функции версии C #.

В целом, он имеет свое место и будет оставаться жизнеспособным, пока существует собственный код. Я бы не хотел создавать приложения WinForm с нуля с помощью C ++ / CLI IDE, если бы мне не пришлось.

1
ответ дан 4 December 2019 в 06:09
поделиться

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

Семантика стека намного лучше, чем все, что может предложить C # для управления IDisposable . В C ++ / CLI есть один унифицированный синтаксис для правильного управления переменными, которые являются IDisposable и не являются, как локальные переменные, так и поля-члены. Сравнение:

ref class MyClass
{
   FileStream fs;
}

vs

class MyClass : IDisposable
{
  FileStream fs;

  void IDisposable.Dispose() { Dispose(true); }
  ~MyClass() { Dispose(false); }

  public virtual void Dispose(bool disposing) { if (disposing) fs.Dispose(); }
}

Какой язык выглядит некрасиво?

Затем есть шаблоны, interior_ptr , #define , экспорт встроенных DLL, указатель на член и, возможно, еще кое-что, что я забыл.

5
ответ дан 4 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: