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ÖвâÊÔµ÷Ó㬻ᱨµØÖ·Òì³£
³ÌÐòʹÓõÄÊÇOrcalÊý¾Ý¿â£¬Ï붨ÆÚ£¨Ã¿¼¾¶È£©¶ÔÊý¾Ý¿â½øÐб¸·Ý£¬Ã»É¶Í·Ð÷£¬ÇëÎÊÓ¦¸ÃÔõôŪ£¿
ÓÐʲôÌØÊâÒªÇóÂ𣬱ÈÈçҪǰ¶Ë½çÃ棿
Ò»°ãÓÃÊý¾Ý¿â×Ô´øµÄ¡°¼Æ»®ÈÎÎñ¡±ÅäÖÃһϾ͹»ÁË
ûÓÐʲôÌØÊâÒªÇó¡£ÀýÈ磬ֻҪµ ......
ÔÚÍøÉÏ¿´µ½ºÜ¶àÈËд³ÌÐò´úÂë,дµÄ´úÂëÿһÐж¼ÊÇҪô¾Í¿ÕÒ»¸ö¿Õ¸ñ,Ҫô¾Í¿ÕºÃ¼¸¸ö,Õâ¸öÓй涨Âð?Ôõô¿´?
ÒÔÏÂÊÇÎÒÔÚÍøÉÏÕÒµÄÒ»¶Î³ÌÐò´úÂë
===================================================================== ......
function ReadTime(intDevno: Integer; var strGet: Pchar): Integer; stdcall; external 'ast.dll'; //¶ÁÈ¡ÈÕÆÚʱ
bcbµ÷ÓÃdelphi µÄdllÕâ¾äÔÚbcbÖÐÈçºÎת»¯¡£
Ó¦¸ÃÊÇC/C++ code:
int __stdcall ReadTime(int in ......