我在做一个rpc服务器/客户端项目。硬编码的端点版本运行良好,现在我想让服务器动态设置端点。RPC C++服务器端动态端点
我做了一些研究,需要使用RpcNsBindingExport()
函数为服务器导出名称服务数据库,然后客户端才能获得可用的绑定信息。服务器代码可以编译,但运行服务器时出现错误。该错误消息说: LNK2019解析的外部符号__imp__RpcNsBindingExportA @ 20函数引用_main
这里是我的server.cpp代码:
main(){
//choose protocol sequence
status = RpcServerUseProtseq(
pszProtocolSequence,
RPC_C_PROTSEQ_MAX_REQS_DEFAULT,
pszSecurity
);
if (status) exit(status);
//get binding info for server
RPC_BINDING_VECTOR *binding_vector;
status = RpcServerInqBindings(&binding_vector);
//Export to a name service database for advertising
status = RpcNsBindingExport(
RPC_C_NS_SYNTAX_DEFAULT,
(unsigned char *)"hostname",
midl_v1_0_s_ifspec,
binding_vector,
NULL
);
if (status) exit(status);
//reg server
status = RpcEpRegister(
hello_v1_0_s_ifspec,
binding_vector,
NULL,
(unsigned char *)annotion
);
//listen
if (status) exit(status);
status = RpcServerListen(cMinCalls,
RPC_C_LISTEN_MAX_CALLS_DEFAULT,
fDontWait);
if (status) exit(status);
}
两个rpcrt4.lib和rpcns4。 lib在项目中链接。我不知道是否缺少任何东西,或者RpcNsBindingExport()
的用法是错误的。
感谢您的任何建议和想法。
请提供[mcve]。特别是在你显示的代码中没有'main',但是这似乎是错误是 – user463035818
你说“错误,当我运行服务器”但错误是一个链接器错误... – user463035818
“_我不知道是否缺少任何东西,或者'RpcNsBindingExport()'的用法是错误的_“在库函数调用中出现这种错误(_unresolved external symbol_),最常见的原因是没有链接到所述库(.lib),其中该函数被定义,而不是因为它的一些奇怪的用法(如果是 - 你会得到编译错误,而不是链接错误)。请详细说明“_poth rpcrt4.lib和rpcns4.lib包含在项目中的**”是什么意思。“(”包含“一词是什么意思?)。 –