CTYPES中的函数名称parsing如何工作?

我正在使用Windows API,其函数名称以32位dll(例如_FunctionName)中的下划线开头,但不是64位版本(例如FunctionName)。

我使用类似于此的代码来加载和调用64位版本的函数:

dll = windll.LoadLibrary('library.dll') dll['FunctionName']() 

但是,我发现我也可以使用相同的代码来调用32位函数,即使它们以下划线开头。 我甚至可以用除了下划线以外的东西来使用函数名,它仍然可以parsing。 如果我完全更改名称,则不会按预期解决问题。

我想避免有不同的方式来调用64位和32位平台的function,这似乎工作。 但是,我无法find有关此行为的任何文档。 任何人都可以确认行为或提供文件吗?