要求:
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.   

    《ATL开发指南》源码,网上找一下自己下载!
      

  2.   


    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、使用自动化标准数据类型。