VB6是有CDecl关键字的,只是很多人不知道而已:
Declare Sub qsort CDecl Lib "ntdll"(Base As Any, ByVal NumOfElements As Long, ByVal SizeOfElements As Long, ByVal CompareFunction As Long)
但是由于巨硬当年写了个BUG,导致Declare声明的CDecl函数没法正确调用(只有tlb声明的可以),于是国外就有位大婶给VB6写了个插件修复了此BUG:
https://github.com/woeoio/VBCDeclFix装这个补丁插件并启用后,不仅CDecl声明的函数可以正常调用了,连回调函数我们也直接写上 CDecl 调用约定:
Function CompInt CDecl(ByRef a As Integer, ByRef b As Integer) As Long
CompInt = a - b
End Function