使用DUMPBIN
在C++ .DLL(或IMPLIB .LIB文件)与/输出或/进口我看到的语法中,如以下的输出:
Exports ordinal name _CloseConduit@4 _ConduitPort _GetConduitVersion@4 _GetStatusConduit@8 _GetTimeout@0 _OpenConduit@4
我无法找到@n
指定含义的定义.我最后得出结论,它是参数数据的字节数,但是根据一些例子的推断,它让我有点紧张.任何人都可以指向一个参考,或者与任何权威人士说,这里的数字是什么意思?
您的结论是正确的,@n
表示函数参数的字节数.您可以在此处和此处找到相关的MSDN文档.
特别是,这就是MSVC如何extern "C" __stdcall
在C++中修饰函数.请注意,这在技术上是实现定义的,而其他编译器确实以不同的方式装饰它.
例如,MinGW-gcc在没有前导下划线的情况下装饰它.Embarcadero的编译器(以前称为Borland)根本不装饰__stdcall
函数,而Digital Mar的编译器使用与MSVC相同的装饰方案.