定义了两个dll,但是函数重名了,于是想到了使用namespace.h文件
namespace xx
{
AFX_API_EXPORT CString WINAPI Fun();
}.cpp文件
CString WINAPI xx::Fun()
{
}由于使用了显式调用,def文件中的
Fun @1
该如何修改不修改发现编译报错:
error LNK2001: 无法解析的外部符号dll命名空间
namespace xx
{
AFX_API_EXPORT CString WINAPI Fun();
}.cpp文件
CString WINAPI xx::Fun()
{
}由于使用了显式调用,def文件中的
Fun @1
该如何修改不修改发现编译报错:
error LNK2001: 无法解析的外部符号dll命名空间
这里,其中一个dll调用了另一个dll,用的是隐式调用
不如先不用模块定义文件,AFX_API_EXPORT就是导出标识吧?
生成DLL后用Depends看看
目前无法编译成功,因为两个dll中,有同名函数,但是我已经用了命名空间,为什么不能区分
但是,如果是dll隐式调用dll,def文件中exports会报函数不唯一。
dll A是其他人写的。只能用隐式调用
dll B是需要开发的,规定了接口函数,是显式调用的,
B需要调用A才能运行
B与A有函数同名
用二进制编辑工具打开A.DLL,按照规律修改A.DLL的重名函数。