如何从ChatterBox VoIP示例创建或正确导入BackEndProxyStub项目到另一个解决方案(WP8)

时间:2014-07-16 14:11:33

标签: windows-phone-8 windows-phone-voip

我正在尝试开发基于ChatterBox VoIP sampleVoIP apps for Windows Phone 8的VoIP应用程序。

我理解项目Agent,BackEnd和UI如何工作,但我无法理解BackEndProxyStub。

我阅读了以下描述:

  

这是一个用C编写的进程外服务器,可以启用   前台应用程序和后台进程之间的通信。

但没有找到更详细解释的其他文档。

我正在尝试编辑" ChatterBox VoIP示例应用" (与其他BackEnd和UI集成),所以我想知道如何创建或导入BackEndProxyStub并正确编辑我的解决方案。

我尝试导入,但是当我重建我的解决方案时,出现2个未解析的外部:

  

错误2错误LNK2001:未解析的外部符号   _PhoneVoIPApp2EBackEnd_ProxyFileInfo D:\ Workspace \ C#和C ++ \ BackEndProxyStub \ dlldata.obj BackEndProxyStub

     

错误3错误LNK2001:未解析的外部符号   _PhoneVoIPApp2EBackEnd2EOutOfProcess_ProxyFileInfo D:\ Workspace \ C#和C ++ \ BackEndProxyStub \ dlldata.obj BackEndProxyStub

当我尝试将文件重命名为我的项目名称时(即使有警告"请勿更改此文件"),我得到了相同的错误(仅因名称而异)。

如果有人能解释我如何正确处理" BackEndProxyStub"我将不胜感激。项目

如果我错过了可以提供帮助的内容,请告诉我。

2 个答案:

答案 0 :(得分:0)

好像我们遇到了同样的问题。目前我无能为力,因为我刚刚开始;但我认为BackEndProxyStub是编译器生成的(参考here)。 This也可能是一个好的开始(请参阅问题的评论)。

基于目前我正在从here开始学习COM,希望有一天能完全理解聊天室示例。

希望有所帮助。

答案 1 :(得分:0)

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 Set the Custom Build Step

Here是MIDL的文件。我认为您可以使用MIDL生成自己的BackEndProxyHub项目。祝你好运。