gpt4 book ai didi

c++ - 更改 DEF 文件中的函数签名

转载 作者:行者123 更新时间:2023-11-28 06:11:02 25 4
gpt4 key购买 nike

我正在更改将在 dll 中导出的函数的签名。

DEF 文件:

...
??0CLimitOrderBase@Base@@QEAA@H@Z
?foo@CLimitOrderBase@Base@@UEAAHAEAVCLimitInfo@2@@Z
...

代码将从

namespace Base {

class CLimitOrderBase : public CLimit
{
...
virtual BOOL foo(CLimitInfo &limitInfo);
...
};

virtual BOOL foo(CLimitInfo &limitInfo, bool bCheck = false);

如何在 DEF 文件中更改新的损坏名称?

最佳答案

将以下内容添加到一个头文件中,您的 DLL 中的每个其他头文件都包含该头文件(用有意义的名称重命名 YOURDLL):

#ifdef YOURDLL_EXPORTS
#define YOURDLL_API __declspec(dllexport)
#else
#define YOURDLL_API __declspec(dllimport)
#endif

然后像这个例子一样声明你的导出类:

class YOURDLL_API CLimitOrderBase : public CLimit
{
...
virtual BOOL foo(CLimitInfo &limitInfo);
...
};

最后,在您的 DLL 项目中定义 YOURDLL_EXPORTS(Properties->C/C++->Preprocessor 下的 Preprocessor Definitions 字段)。这样您就不需要手动编辑 .DEF 文件。

关于c++ - 更改 DEF 文件中的函数签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262743/

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