如何在Visual C+;中正确修改.def文件+;6计划? 我正在使用C++ .6项目维护,使用.DEF文件来处理函数输出。我必须向类定义中添加一对实例方法,但我不知道如何将这些方法添加到.def文件中,以便导出它们。.def文件中EXPORTS部分下的每一行看起来像?MethodName@ClassName@@阿斯廷戈弗雷特,可能在末端加了一个@Z,我无法理解。我假设字符串在某种程度上与方法的原型相对应,但我找不到任何描述编码的文档。我添加的方法没有与任何现有方法完全匹配的原型

如何在Visual C+;中正确修改.def文件+;6计划? 我正在使用C++ .6项目维护,使用.DEF文件来处理函数输出。我必须向类定义中添加一对实例方法,但我不知道如何将这些方法添加到.def文件中,以便导出它们。.def文件中EXPORTS部分下的每一行看起来像?MethodName@ClassName@@阿斯廷戈弗雷特,可能在末端加了一个@Z,我无法理解。我假设字符串在某种程度上与方法的原型相对应,但我找不到任何描述编码的文档。我添加的方法没有与任何现有方法完全匹配的原型,c++,visual-c++,dll,linker,C++,Visual C++,Dll,Linker,假设我的新方法原型如下所示: short ClassName::Foo1(const short, const unsigned int, const short, const unsigned int *); short ClassName::Foo2(const short, const unsigned int, short *, unsigned int *); < >我需要添加到.DEF文件中,以便使我的链接器高兴,并且实际上导出了这些方法? 您导出的是C++被忽略的符号。我

假设我的新方法原型如下所示:

  short ClassName::Foo1(const short, const unsigned int, const short, const unsigned int *);
  short ClassName::Foo2(const short, const unsigned int, short *, unsigned int *);

< >我需要添加到.DEF文件中,以便使我的链接器高兴,并且实际上导出了这些方法?

您导出的是C++被忽略的符号。我会在它们前面临时添加一个
\u declspec(dllexport)
,然后将DLL加载到类似Dependency Walker的程序中,或者使用
dumpbin
查看导出的内容。这将为您的新函数提供损坏的符号,然后您可以将其添加到.def文件并删除
\u declspec

要获得新函数的损坏名称,只需注释掉实现并构建项目即可。这样,您将得到一个相似的错误,显示新函数的损坏名称。使用此新的损坏名称更新def文件