VCDLLÒѾ´´½¨ºÃ¡£
ÎÒ½¨ÁËÒ»¸öÀà
´óÖ´úÂëÈçÏÂ
C/C++ code:
typedef class ZHallAPI
{
public:
virtual int GetVersion() = 0;
virtual int Prepare() = 0;
virtual int UnPrepare() = 0;
virtual int Connect(char* szIPAddr, unsigned short usIPPort) = 0;
virtual int DisConnect() = 0;
virtual int ClientLogin(const LPCLIENTLOGIN lpClientLogin, LPCLIENTLOGINRST lpClientLoginRst, char* szErrInfo) = 0;
} HALLAPI, *LPHALLAPI;
LPHALLAPI __stdcall GetHallApi();
LPHALLAPI __stdcall GetHallApi()
{
static ZClientInstance Instance;
return &Instance;
}
int ZClientInstance::MyPrepare()
{
int iRet(0);
if(this->bPrepared)
{
return T_OK;
}
this->lpClientAPI = GetClientAPI();
iRet = this->lpClientAPI->Prepare();
if(Z_OK != iRet)
{
return ERR_TP_CLIENT_ERROR;
}
this->bPrepared = true;
return T_OK;
}
int ZClientInstance::Prepare()
{
int iRet =this->MyPrepare();
if(T_OK != iRet)
{
this->UnPrepare();
}
return iRet;
}
int ZClientInstance::GetVersion()
{
//return this->API_VERSION;
return 123;
}
.......................
¸ÃdllÔÚvcϵ÷ÓòâÊÔͨ¹ý£¬ÔÚdelphiÖвâÊÔµ÷Ó㬻ᱨµØÖ·Òì³£
Çë½Ì¸÷·¸ßÊÖ¡£ÎäÁÖǰ±²¡£ÎÒ½«B.EXE×ö³É×ÊÔ´Îļþ£¬È»ºó¼Óµ½123.dllÖС£ÓÃA.EXEÀ´µ÷ÓÃ123.dllÖеÄB.EXE
Çë¸÷λǰ±²°ïæָ½ÌÏ¡£A.exeÈçºÎÀ´µ÷ÓÃdllÖеÄexe£¿´úÂëÓÖ¸ÃÈçºÎд£¿
ÎÞÈ˻شð£¿
×ö³É×ÊÔ´Î ......
ÏÖÔÚÐèÒª´òÓ¡delphi´°ÌåÉÏËùÓеĶ«Î÷£¬ÎÒÏÈץͼÔÙ´òÓ¡£¬¿ÉÊÇ´òÓ¡²»³öÀ´£¬Çë´óÏÀÃǰïæ¡£
Ö»ÊÇÎҵĴúÂ룺
procedure TForm1.FormCreate(Sender: TObject);
var
cvsFullScreenCanvas:TCanvas;
dc: ......