gpt4 book ai didi

c++ - 使用 dumpbin.exe 的 DLL 函数名称

转载 作者:可可西里 更新时间:2023-11-01 12:45:13 26 4
gpt4 key购买 nike

我在 visual studio 2010 中编写了一个包含大量函数和类的 .dll 库。当我查看文件的内容时:

dumpbin.exe /EXPORTS myDll.dll

我得到带有某种函数位置指针的长函数名,它看起来像这样(.dll 中的第二个条目):

          2    1 0001100A ?Initialize@codec@codecX@@SANNN@Z = @ILT+5(?Initialize@codec@codecX@@SANNN@Z)

这在某种程度上难以阅读,但我从其他 .dll-s 中看到了“更好”的过程/函数列表,如下所示:

141   8C 00002A08 PogoDbWriteValueProbeInfo

我怎样才能使那个 .dll 列表看起来像那样?

附言:我的 dll 源代码如下所示:

namespace codecX
{
class codec
{
public:
static __declspec(dllexport) double Initialize(double a, double b);
...

最佳答案

你需要把那些静态成员函数拉到全局地址空间,然后用外部“C”。这将抑制 C++ 名称重整,而是为您提供不那么难看的 C 名称重整:

extern "C" __declspec(dllexport) Initialize(double a, double b)
{
codec::Initialize(a, b);
}

然后删除静态成员函数上的 __declspec(dllexport):

class codec
{
public:
static double Initialize(double a, double b);
}

关于c++ - 使用 dumpbin.exe 的 DLL 函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com