我在 MV C++ 2012 中创建了一个 DLL,当我使用
Dumpbin /Exports filename
DLL 文件中的函数名称内部有一个等号。我不得不使用公共语言运行时支持 (/crl),因为我使用了 C# 中的 DLL。这就是为什么函数的名称会显示等号的原因吗?我的头文件:
#ifdef ColorDLL_EXPORTS
#define ColorDLL_API __declspec(dllexport)
#else
#define ColorDLL_API __declspec(dllexport)
#endif
extern "C"{
ColorDLL_API int ColorSelect(int i);
}
颜色DLL.cpp
#include "stdafx.h"
#include "ColorDLL.h"
#using <ColorDiologeClass.dll>
extern "C"{
ColorDLL_API int ColorSelect(){
ColorDiologeClass::Class1::ColorReturn(1);
return 1;
}
当我使用 Dumpbin 时,名称显示如下:
Name
ColorSelect = _ColorSelect
为什么是这样?我希望它显示为 ColorSelect,而不是 ColorSelect = _ColorSelect。如果我这样离开它,我将如何从需要确切函数名称的 JMP 之类的程序中调用此函数?会是 ColorSelect 吗?还是 ColorSelect = _ColorSelect?