在操作系统Uos上调试c++ dmdpi接口 ,在本地可以正常运行,但是在客户那边不能正常启动,加密模块加载失败。
代码如下
DPIRETURN
dm_dpi_connect(sdbyte* server, sdbyte* uid, sdbyte* pwd, int port)
{
//申请环境句柄
rt = dpi_alloc_env(&henv);
DPIRETURN_CHECK(rt, DSQL_HANDLE_ENV, henv);
printf("suceed to alloc env\n");
//申请连接句柄
rt = dpi_alloc_con(henv, &hcon);
DPIRETURN_CHECK(rt, DSQL_HANDLE_DBC, hcon);
printf("suceed to alloc con\n");
//连接数据库服务器
dpi_set_con_attr(hcon, DSQL_ATTR_LOGIN_PORT, (dpointer)port, 0);
printf("suceed to set con port\n");
rt = dpi_login(hcon, server, uid, pwd);
DPIRETURN_CHECK(rt, DSQL_HANDLE_DBC, hcon);
printf("suceed to login dm\n");
return DSQL_SUCCESS;
}
正常运行时情况
在客户那边失败情况
我已经把客户那边的libdmdpi库放到程序实际运行环境中,也没有作用。
可以参考一下常见的报错:
https://eco.dameng.com/document/dm/zh-cn/faq/faq-C.html