Я боюсь, что проблемой является доступ к базе данных. Компании платят для присваивания UPC и таким образом, база данных не свободно доступна. сайт UPCdatabase , упомянутый Philip, является запуском, как UPCData.info, но они - вводимый пользователь - что означает неполный и возможно неточный.
можно всегда входить в UPC к Google и получать хит, но это не очень автоматизировано. Но это действительно разбирается в нем большую часть времени.
я думал, что помнил Jon Udell, делающего что-то вроде этого (например, видят это ), но это был просто базирующийся ISBN.
Похож, Вы нашли новый проект для кого-то продолжить работать!
Это почти исключительно язык взаимодействия - как для разрешения .Net-коду доступа к устаревшим библиотекам C ++, так и для расширенных существующих (собственных) баз кода C ++ с доступом к .Net-библиотекам (и некоторым вариантам эти темы).
Хотя возможно писать полноценные приложения исключительно на C ++ / CLI, и это даже дает вам некоторые языковые функции, недоступные в чистом C ++ (такие как сборка мусора), я сомневаюсь есть много людей, которые действительно так поступили бы. Если вы уже отходите от чистого C ++ и не преследуете цель взаимодействия с .Net, вероятно, есть более естественный выбор (например, D или Scala , например - в зависимости от того, в каком направлении вы хотите двигаться).
Аналогично,
Я могу придумать 3 основные причины для использования C ++ / CLI:
Используя C ++ / CLI, очень легко взаимодействовать с собственным кодом C ++
Преимущество управляемого C ++ заключается в том, что он легко смешивает управляемый и неуправляемый код. Но если весь (или почти весь) ваш код будет управляемым, то определенно следует использовать C # (и вы все равно можете вызывать неуправляемый код из C # , используя атрибут DllImport ).
вы просто обращаетесь к c ++ \ cli, когда вам нужно, если вы можете удовлетворить свои требования, используя c #, зачем вообще переходить на c ++ \ cli
В общем, я думаю, что главное преимущество C ++ / CLI - это просто знакомство разработчиков C ++. Если вы не являетесь специалистом по C ++, используйте C #.
Более легкое взаимодействие с собственным кодом C ++ - это одно из преимуществ.
Независимо от того, является ли это основным преимуществом, субъективно.
Если вы не хотите смешиваться с существующим собственным кодом C ++, вам, вероятно, будет намного лучше с C #.
неуправляемые c++ приложения не нуждаются в фреймворке для запуска, c# будет работать только на машинах с dotnet фреймворком 1, 2, 3 или 4. Удивительно, сколько машин все еще работает без этого фреймворка.
Поскольку я преимущественно программист на C #, мне приходилось использовать C ++ / CLI с некоторой болью. Однако, как язык взаимодействия, он намного превосходит C # в том, что ему приходится работать с собственным кодом. В среде IDE C ++ / CLI в Visual Studio отсутствуют многие функции версии C #.
В целом, он имеет свое место и будет оставаться жизнеспособным, пока существует собственный код. Я бы не хотел создавать приложения WinForm с нуля с помощью C ++ / CLI IDE, если бы мне не пришлось.
Бытие Возможность напрямую использовать собственные файлы заголовков - огромное преимущество, но не единственное.
Семантика стека намного лучше, чем все, что может предложить 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, указатель на член и, возможно, еще кое-что, что я забыл.