我正在尝试开发基于ChatterBox VoIP sample和VoIP 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"我将不胜感激。项目
如果我错过了可以提供帮助的内容,请告诉我。
答案 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中创建:
Here是MIDL的文件。我认为您可以使用MIDL生成自己的BackEndProxyHub项目。祝你好运。