我们开发了一些工具来读取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);
}
相同的工具与我们的其他测试环境一起正常工作。所以,我认为代码没有问题。我怀疑可能是我们新的工作环境设置创建的问题,或者可能错过了向用户提供某种类型的权限,或者我错过了在某处添加邮箱等。
注意:
如果有人对此提出一些指示,那就太棒了。
谢谢,
请参阅此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
地址开始的以null结尾的项目名称的数量。你问题中的代码片段是传递一个项目名称("FullName"
),但是将NumItems
设置为2.这显然是错误的并且可以解释挂起。 NumItems
应该是1。
我也对ServerName
论点持怀疑态度。当您想要进行本地查找时,文档建议传递NULL
。传递"Local"
可能是实现相同目标的另一种方法,但无论如何都需要更改代码。我建议将第一个参数更改为NULL
。