2

我们开发了从 Domino 邮箱读取电子邮件并将其写入本地磁盘中的单独文件的工具(它看起来像一个备份)。最近,我们用我们的实验室创建了一个新的 domino 9 测试环境。但是,我们的工具无法在新的多米诺骨牌工作环境中正常工作。为了确定有关此问题的问题,我添加了一些调试日志,看起来控件似乎挂起函数“NAMELookup2”。在这里,我添加了代码片段,

DHANDLE  hLookup;
char   *pLookup;
if (NAMELookup2("Local", 0, 1, "$users", 1, dominoUser, 2, "FullName", &hLookup) == NOERROR) // hunged with this line
{
     pLookup = (char *) OSLockObject(hLookup);
}

相同的工具可以在我们的其他测试环境中正常工作。所以,我认为代码没有问题。我怀疑可能是我们创建新工作环境设置的问题,或者可能错过了向用户提供某种许可,或者我错过了在某处添加邮箱等。

笔记:

  1. 我已经使用管理员权限用户运行了该工具。

如果有人对此给出一些指导,那就太好了。

谢谢,

4

1 回答 1

0

请参阅此NAMELookup2 页面以供参考。该函数声明为:

STATUS LNPUBLIC NAMELookup2(const char far *ServerName, DWORD Flags,
    WORD NumNameSpaces, const char far *NameSpaces,
    WORD NumNames, const char far *Names,
    WORD NumItems, const char far *Items,
    DHANDLE far *rethBuffer);

其中是从地址NumItems开始的以 null 结尾的项目名称的数量。Items您问题中的代码片段传递了一个项目名称 ( "FullName"),但设置NumItems为 2。这显然是错误的,可以解释挂起。NumItems应该是1。

我也对这种ServerName说法持怀疑态度。NULL当您想要进行本地查找时,文档建议您通过。传递"Local"可能是另一种实现相同目的的方法,但无论如何您都需要更改代码。我建议将第一个参数更改为NULL.

于 2019-03-16T14:32:28.133 回答