Ссылка на проект C UWP

#c #uwp

#c #uwp

Вопрос:

(Я вижу несколько других подобных вопросов по SO, но не эту точную комбинацию)

Как мне добавить ссылку на проект UWP (C ) в другие типы проектов? Я пробовал проекты UWP (C #) и WinForms (.NET 4.5), и оба они сходят с ума, говоря:

Не удалось добавить ссылку на «[Название проекта C ]».

Ответ №1:

В зависимости от того, что именно вы подразумеваете под проектом UWP (C ), вы не можете. Проекты UWP C не используют .Net и so не генерируют .Сетевые сборки.

Вы можете создать компонент среды выполнения Windows (WRC) на C и добавить ссылку на него в проект UWP C # (или JavaScript), но не в проект WinForms.

Смотрите пошаговое руководство: создание базового компонента среды выполнения Windows на C и вызов его из JavaScript или C #

После ссылки на него классы, определенные в WRC, будут проецироваться в приложение C # и вызываться, как любой другой класс C #.

Вы также можете создать C DLL, включить его в проект, а затем вызвать его из приложения UWP или WinForms. Для этого сценария нет автоматической проводки: вам нужно будет написать определения pinvoke и т. Д. самостоятельно.

Комментарии:

1. ОК. Вероятно, это имеет смысл для WinForms, но почему я не могу добавить ссылку проекта C (UWP) на C # (UWP)? Они оба должны говорить на одном языке, нет?

2. C # и C — это разные языки. C # использует .Net. C этого не делает. Для их совместного использования требуется уровень взаимодействия: pinvoke или winmd (WRC). Добавление ссылки понятно . Net и Winmds, но не стандартные библиотеки DLL C .

3. Спасибо. WRC был отличным намеком. Я все еще немного смущен проектом C (Universal). Я понимаю, что C (универсальный) похож на C # (универсальный) и VB.NET (Универсальные) проекты в отношении платформы, на которую они нацелены (то есть UWP); и что это был просто вопрос языка, на котором человек предпочитает кодировать.