Как создать или правильно импортировать проект BackEndProxyStub из примера ChatterBox VoIP в другое решение (WP8)

Я пытаюсь разработать приложение VoIP на основе примера ChatterBox VoIP и приложений VoIP для Windows Phone 8.

Я понимаю, как работают агенты проектов, BackEnd и UI, но я не могу понять BackEndProxyStub.

Я прочитал следующее описание:

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

Но не нашел другой документации, которая объясняет более подробно.

Я пытаюсь отредактировать "пример приложения ChatterBox VoIP" (для интеграции с другим BackEnd и пользовательским интерфейсом), поэтому я хотел узнать, как создать или импортировать BackEndProxyStub и правильно отредактировать его для моего решения.

Я попытался импортировать, но когда я перестраиваю свое решение, появляется 2 неразрешенных внешних объекта:

Ошибка 2 Ошибка LNK2001: неразрешенный внешний символ _PhoneVoIPApp2EBackEnd_ProxyFileInfo D:\Workspace\C# и C++\BackEndProxyStub\dlldata.obj BackEndProxyStub

Ошибка 3, ошибка LNK2001: неразрешенный внешний символ _PhoneVoIPApp2EBackEnd2EOutOfProcess_ProxyFileInfo D:\ Рабочая область \ C# и C++\BackEndProxyStub\dlldata.obj BackEndProxyStub

И когда я попытался переименовать файлы в имя моего проекта (даже с предупреждением "НЕ ИЗМЕНЯТЬ ЭТОТ ФАЙЛ"), я получил те же ошибки (отличающиеся только по имени).

Я был бы признателен, если бы кто-то мог объяснить мне, как правильно обрабатывать проект "BackEndProxyStub".

Если я пропустил что-то, что могло бы помочь, пожалуйста, скажите мне.

2 ответа

Похоже, у нас та же проблема. В данный момент я не могу помочь, потому что я только начал; но я думаю, что BackEndProxyStub генерируется компилятором (см. здесь). Это также может быть хорошим началом (см. Комментарий к вопросу).

Исходя из этого, в настоящее время я изучаю COM, начиная с этого момента, надеясь, что однажды смогу полностью понять пример болтушки.

Надеюсь, это поможет.

Файлы в проекте BackEndProxyStub были сгенерированы проектом BackEnd. Он использовал MIDL(язык определения интерфейса Microsoft).

Это можно доказать в файле проекта BackEnd Project (BackEnd.vcxproj). Узел "CustomBuildStep" в этом файле показал подсказку:

<CustomBuildStep>
  <Command Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">pushd "$(OutDir)"WinMdIdl.exe "$(OutDir)$(RootNamespace).winmd"
    MIdl.exe /env $(MidlEnv) /winrt /ns_prefix /metadata_dir "$(FrameworkSdkDir)Windows Metadata" /out "$(SolutionDir)$(ProjectName)ProxyStub" "$(OutDir)$(RootNamespace).idl"
    MIdl.exe /env $(MidlEnv) /winrt /ns_prefix /metadata_dir "$(FrameworkSdkDir)Windows Metadata" /out "$(SolutionDir)$(ProjectName)ProxyStub" "$(OutDir)$(RootNamespace).OutOfProcess.idl"
    "$(ProjectDir)OopServerRegistrationHelper.exe" /winmd:"$(OutDir)$(RootNamespace).winmd" /dll_name:$(TargetName) /namespace:$(RootNamespace).OutOfProcess 
    /app_manifest:"$(SolutionDir)UI\Properties\WMAppManifest.xml" /helper_dir:"$(SolutionDir)Agents" popd
  </Command></CustomBuildStep> .......

Это также может быть основано в Visual Studio:

BackEnd Project Установить шаг пользовательской сборки

Вот документы МИДЛ. Я думаю, что вы можете использовать MIDL для создания собственного проекта BackEndProxyHub. Удачи.

Другие вопросы по тегам