最近在开发公司的项目,写动态库时发现客户定义的函数名同系统的API冲突,函数名为DrawText,在编译的时候报错:
error C2733: “DrawTextW”: 不允许重载函数的第二个 C 链接
CreateDll.h文件:
extern “C” int __stdcall DrawText(int a, int b);
CreateDll.cpp文件:
int __stdcall DrawText(int a, int b)
{
int c;
c = a + b;
return c;
}
解决办法:
在.h文件及.cpp文件中新建一个功能和DrawText一用的函数并命名问test01
CreateDll.h文件:
extern “C” int __stdcall test01(int a,int b);
CreateDll.cpp文件:
int __stdcall test01(int a, int b)
{
int c;
c = a + b;
return c;
}
将def文件改为:
LIBRARY
EXPORTS
test01 @1
DrawText=test01