在带有/ EXPORTS或/ IMPORTS的C ++ .DLL(或IMPLIB .LIB文件)上使用DUMPBIN
在输出中看到类似下面的语法:
Exports ordinal name _CloseConduit@4 _ConduitPort _GetConduitVersion@4 _GetStatusConduit@8 _GetTimeout@0 _OpenConduit@4
我无法在任何地方find@n
指定的含义。 我终于得出结论,这是参数数据的字节数,但是根据几个例子的推理,这让我有些紧张。 任何人都可以指出一个引用,或者说与任何权威,这里的数字是什么意思?
你可以得出结论: @n
表示函数参数的字节数。 你可以在这里和这里找到相关的MSDN文档。
特别是,MSVC如何在C ++中装饰extern "C" __stdcall
函数。 请注意,这在技术上是由实现定义的,而其他编译器的设计则不同。
例如,MinGW-gcc在没有前导下划线的情况下进行装饰。 Embarcadero的编译器(以前称为Borland)根本不装饰__stdcall
函数,而Digital Mar的编译器使用与MSVC相同的装饰方案。