函数名称未修饰

时间:2019-04-21 17:02:15

标签: dllexport name-mangling

我正在构建一个对库(.lib)具有静态引用的DLL。 DLL和.lib都具有名称相同但签名不同的函数。我想导出为DLL编写的函数。我正在使用.def文件导出功能。 但是,当我使用dumpbin从DLL导出函数时,我看不到该函数的修饰名称(具有两个同名功能),对于所有其他功能,我都看不到修饰名称。

A.cpp中的功能(DllName-ADLL)

uint __stdcall func(MSIHANDLE hHandle)
uint __stdcall func1(MSIHANDLE hHandle)

.lib(B.lib)中的功能,该功能在ADLL中被静态引用

DWORD WINAPI  func(__in const bool input);

def(ADLL.def)文件的格式:

LIBRARY  "ADLL"
EXPORTS
   func
   func1

.vcxProj的代码段

<ItemDefinitionGroup>
   <Link>
     <ModuleDefinitionFile>ADLL.def</ModuleDefinitionFile>
   </Link>
</ItemDefinitionGroup>

转储/出口的输出

ordinal    hint      RVA         name
2             0     00035560    func = func
1             1     00001370    func1 = @ILT+875(?func1@@YAIK@Z)

我不明白为什么函数“ func”没有像func1这样的修饰名称?

0 个答案:

没有答案