我刚开始做一些Win32编程,对函数感到困惑:

BOOL BuildCommDCB(LPCTSTR szSettings, LPDCB lpDCB);

LPDCB结构的描述指出“它指向控制设置信息所在的DCB结构
“返回”。但我的问题是,当返回值是aBOOL时,如何返回DCB结构?

最佳答案

LPDCB是指向您提供的结构(1)的指针,BuildCommDCB()将填充该结构,并返回成功指示器。
这和功能没什么不同:

int setTo13AndReturn42 (int *pInt) {
    *pInt = 13;
    return 42;
}

当与以下人员通话时:
int i1 = -1;
int i2 = setTo13AndReturn42 (&i1);
printf ("%d %d\n", i1, i2);

将输出:
13 42

(1)在Windows最早的时候,当我们不得不忍受奇怪的x86{tiny, small, medium, large, huge, gargantuan}(或者他们实际上被称为什么)内存模型时,LP代表长指针。

10-06 05:11