Domino邮箱工具与NAMELookup2挂起

问题描述 投票:2回答:1

我们开发了一些工具来读取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. 我使用admin权限用户运行该工具。

如果有人对此提出一些指示,那就太棒了。

谢谢,

lotus-domino ibm-domino domino-appdev-pack
1个回答
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地址开始的以null结尾的项目名称的数量。你问题中的代码片段是传递一个项目名称("FullName"),但是将NumItems设置为2.这显然是错误的并且可以解释挂起。 NumItems应该是1。

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

© www.soinside.com 2019 - 2024. All rights reserved.