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ÖвâÊÔµ÷Ó㬻ᱨµØÖ·Òì³£
ÔÚÍøÉÏ¿´µ½ºÜ¶àÈËд³ÌÐò´úÂë,´úÂëµÄÿһÐÐҪô¾Í¿ÕÒ»¸ö¿Õ¸ñ,Ҫô¾Í¿ÕºÃ¼¸¸ö,ÓеĻ¹ÒªÁíÆðÒ»ÐÐ,Õâ¸öÓй涨Âð?ÒªÔõôд?
ÄѵÀ²»ÄÜÔõÑùдÂð?ÎÒ´ò¸ö±È·½,(.´ú±í³ÌÐò´úÂë)
..............................
......... ......
function ReadTime(intDevno: Integer; var strGet: Pchar): Integer; stdcall; external 'ast.dll'; //¶ÁÈ¡ÈÕÆÚʱ
bcbµ÷ÓÃdelphi µÄdllÕâ¾äÔÚbcbÖÐÈçºÎת»¯¡£
Ó¦¸ÃÊÇC/C++ code:
int __stdcall ReadTime(int in ......