我有一个导出3功能的DLL:
extern "C"
{
__declspec(dllexport) BOOLEAN __stdcall InitializeChangeNotify(void);
__declspec(dllexport) BOOLEAN __stdcall PasswordFilter(LPCWSTR AccountName,LPCWSTR FullName,LPCWSTR Password,BOOLEAN SetOperation);
__declspec(dllexport) NTSTATUS __stdcall PasswordChangeNotify(LPCWSTR UserName,ULONG RelativeId,LPCWSTR NewPassword);
}
Run Code Online (Sandbox Code Playgroud)
extern "C"
{
__declspec(dllexport) BOOLEAN __stdcall InitializeChangeNotify(void)
{
writeToLog("InitializeChangeNotify()");
return TRUE;
}
__declspec(dllexport) BOOLEAN __stdcall PasswordFilter(LPCWSTR AccountName,LPCWSTR FullName,LPCWSTR Password,BOOLEAN SetOperation)
{
writeToLog("PasswordFilter()");
return TRUE;
}
__declspec(dllexport) NTSTATUS __stdcall PasswordChangeNotify(LPCWSTR UserName,ULONG RelativeId,LPCWSTR NewPassword)
{
writeToLog("PasswordChangeNotify()");
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
我在VS 2010中编译.
我看到函数名称取决于:_InitializeChangeNotify@0, _PasswordChangeNotify@12.如何取消功能?
undname.exe在Windows上看起来就像是c++filt等同的.
我把它"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\undname.exe"放在我的电脑里.
从页面,
您可以使用undname.exe将装饰名称转换为其未修饰的表单.例如,
C:\>undname ?func1@a@@AAEXH@Z
Microsoft (R) C++ Name Undecorator
Copyright (C) Microsoft Corporation 1981-2000. All rights reserved.Undecoration
of :- "?func1@a@@AAEXH@Z"
is :- "private: void __thiscall a::func1(int)"
Run Code Online (Sandbox Code Playgroud)