调用DLL中一个结构体的重载运算出错问题
/ CPlus.h: interface for the CPlus class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CPLUS_H__A672497A_CD6F_477A_A041_B8ECFD0B73B7__INCLUDED_)
#define AFX_CPLUS_H__A672497A_CD6F_477A_A041_B8ECFD0B73B7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct AFX_EXT_DATA MyStruct{
int x;
int y;
public :
friend BOOL operator==( const MyStruct& c,const MyStruct& d);
};
class AFX_EXT_CLASS CPlus
{
public:
CPlus();
virtual ~CPlus();
double x,y;
public:
int Add(int nNum1, int nNum2);
BOOL EqualStruct(MyStruct struct1,MyStruct struct2);
MyStruct ReturnStruct(MyStruct struct1);
};
#endif
***************************************************************
// CPlus.cpp: implementation of the CPlus class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "CPlus.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CPlus::CPlus()
{
}
CPlus::~CPlus()
{
}
int CPlus::Add(int nNum1, int nNum2)
{
return nNum1+nNum2;
}
BOOL CPlus::EqualStruct(MyStruct struct1,MyStruct struct2)
{
if(struct1==struct2)
return TRUE;
else
return FALSE;
}
MyStruct CPlus::ReturnStruct(MyStruct struct1)
{
return struct1;
}
BOOL operator ==(const MyStruct& c,const MyStruct& d)
{
if(
(c.x==d.x)&&(c.y==d.y)
)
{
return TRUE;
}
else
{
return FALSE;
}
}
问:我在另一个VC应用程序里面掉用CPlus的函数都可以,但是调用MyStruct的重载==运算就报错
代码如下
MyStruct struct1;
MyStruct struct2;
struct2.x=10;
struct2.y=10;
struct1.x=10;
struct1.y=10;
if(struct1==struct2){};
出错提示error LNK2001: unresolved external symbol "int __cdecl operator==(struct MyStruct const &,struct MyStruct const &)" (??8@YAHABUMyStruct@@0@Z)
c:\test\CPlusTest.exe : fatal error LNK1120: 1 unresolved externals
求高手帮忙看一下