要求:
1,实现功能,提供一个接口,返回提供域名的IP地址,如下即可
{
struct hostent* he = gethostbyname(host_name);
if(he)
{
char* tmp = (char*)inet_ntoa((in_addr&)(*he->h_addr_list[0]));
return tmp;
}
return NULL
}2,可以被javascript调用
3,尽量短小,不需UI多谢
1,实现功能,提供一个接口,返回提供域名的IP地址,如下即可
{
struct hostent* he = gethostbyname(host_name);
if(he)
{
char* tmp = (char*)inet_ntoa((in_addr&)(*he->h_addr_list[0]));
return tmp;
}
return NULL
}2,可以被javascript调用
3,尽量短小,不需UI多谢
class ATL_NO_VTABLE CHost2IP :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CHost2IP, &CLSID_Host2IP>,
public IDispatchImpl<IHost2IP, &IID_IHost2IP, &LIBID_Host2IPLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{
public:
BEGIN_COM_MAP(CHost2IP)
COM_INTERFACE_ENTRY(IHost2IP)
COM_INTERFACE_ENTRY2(IDispatch, IHost2IP)
END_COM_MAP() STDMETHOD(GetIP)(BSTR szhostname, BSTR* szip)
{
_bstr_t name = szhostname;
struct hostent* he = gethostbyname(name);
if(he)
{
char* tmp = (char*)inet_ntoa((in_addr&)(*he-> h_addr_list[0]));
_bstr_t ip = tmp;
*szip = ip.detach();
}
return S_OK;
}
}
最好还是使用ATL向导来生成COM接口以及接口方法,因为需要IDL文件、注册表导入文件等等。
能被javascript调用的基本需求是:
1、实现IDispatch接口(例子就是)。
2、使用自动化标准数据类型。