我们开发了一些工具,可以从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);
}
同一工具可与我们的其他测试环境配合使用。因此,我认为代码没有问题。我怀疑这可能是我们新的工作环境设置创建过程中出现的问题,或者可能错过了向用户提供某种许可,或者可能错过了将邮箱添加到某处,等等。
注意:
如果有人对此提供任何指导,那将是很好的。
谢谢
答案 0 :(得分:0)
请参阅此NAMELookup2 page以供参考。该函数声明为:
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
是从Items
地址开始的以空结尾的项目名称的数量。您问题中的代码段传递了单个项目名称("FullName"
),但是将NumItems
设置为2。这显然是错误的,并且可以解释挂起的原因。 NumItems
应该为1。
我也怀疑ServerName
的论点。该文档建议您在进行本地查找时传递NULL
。传递"Local"
可能是完成此操作的另一种方法,但是无论如何都需要更改代码。我建议将第一个参数更改为NULL
。