我正在编写一个带有混合 C/C++ 代码的 DLL。我想指定要导出的函数的序数。所以我创建了一个看起来像这样的 .DEF 文件
LIBRARY LEONMATH
EXPORTS
sca_alloc @1
vec_alloc @2
mat_alloc @3
sca_free @4
vec_free @5
mat_free @6
...
我也想指定我的 C++ 函数和类方法的序数。我尝试使用 Dependency Walker 将我的函数的错位名称添加到 .DEF 文件中:
??0CScalar@@QAE@XZ @25
??0CScalar@@QAE@O@Z @26
??0CScalar@@QAE@ABV0@@Z @27
??1CScalar@@QAE@XZ @28
但这失败了。任何想法为什么会发生这种情况?
编辑: kauppi 做了一个很好的观察,所以我在这个问题中添加了更多信息。
- 平台: Windows(我对可移植性不感兴趣)
- 编译器:微软的C++编译器(我用的是VS2005)
- 我为什么要这样做?:使用序数的好处是可以让我从 C 代码中调用导出的 C++ 函数。