使用来自多个文件的信号量 C-Windows

using semaphores from multiple files C-Windows

我想使用信号量解决 "consumer-producer" 在 windows 中使用 C 的问题。 在文件 (afile.c) 中,我全局声明了一个信号量句柄:

HANDLE empty;

在同一文件 (afile.c) 中,在其中一个函数中,我创建了信号量:

empty = CreateSemaphore(NULL,size, size, NULL);

并在某些功能中使用了它。使用完毕后,我发布了它:

ReleaseSemaphore(empty,1,NULL);

我想在另一个文件 (bfile.c) 中使用这个信号量,所以我在 (bfile.c)

中包含了 (afile.h)
#include "afile.h"

bfile.c无法识别此信号量。

有任何解决此问题的建议,或者有助于理解如何使用来自多个文件的信号量?

在 afile.c 你应该有:

HANDLE empty = INVALID_HANDLE_VALUE;

在 afile.h 你应该有:

extern HANDLE empty;