我有一个包含超过 400 个函数的 dll,而我的 exe 文件仅使用 dll 中的 15 个函数,所以我需要创建一个新的 dll 并导出函数并伪造它们的返回值以模拟更复杂系统的输出.
我尝试过的:
#include "stdafx.h"
//the compiler complains about the '@20'
__declspec ( dllexport ) XLStatus _xlActivateChannel@20(XLportHandle, XLuint64, unsigned int, unsigned int)
{
return 0;
}
// causing the exe to crash
dumpbin /exports vxlapi.dll (original dll): 显示重复的函数名(不是所有函数)
ordinal name
_xlActivateChannel@20
14 xlActivateChannel
注意:在 dll 的头文件中,函数声明如下:
DECL_STDXL_FUNC ( xlActivateChannel, XLACTIVATECHANNEL, (
XLportHandle portHandle,
XLaccess accessMask,
unsigned int busType,
unsigned int flags)
);
在 dumpbin / export dll 中为什么函数名以 '_' 下划线开头并以 '@number' 结尾,注意:exe 正在使用 let's say(decorated) 函数,以及如何创建新的 dll 和导出函数包含@,