RTC1.3的例子问题

鼓捣了一天,终于把RTC1.3带的那个例子运行了起来,效果还不错啊,呵呵!可惜和我们以前架的SIP Server有点冲突,或许是NAT穿透的问题,恩,下周弄一个没有穿透的Server试试:)
 整个过程说不上艰苦,可也是麻烦不断,这里要说的是一定要看到程序的readme文件,大意了啊!
 
     下面说一下整个过程:
     首先,要把RTC Client SDK1.3下载下来,开始安装,第一次安装只是一个解压缩,路径默认不可修改,为C:/Program Files/RTC Client API v1.3 SDK,然后要执行该目录下INSTALLATION/RtcApiSetup.msi,才算真正安装完成。如果想执行例子,还需要把C:/Program Files/RTC Client API v1.3 SDK/SDK/INC加入到环境变量中的INCLUDE中。

 网址:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnrtcclnt/html/RTC_InformationAgent.asp。


     然后,因为例子不是VC++的工程,只能用nmake编译,而且其中用到了Windows Platform SDK的一些makefile文件,所以需要安装Windows Platform SDK,这个浪费了好多时间,前两次下的都是一个不完整版本,安装时才从网络上下载安装,速度奇慢,而且有些地方过不去,两次失败后终于发现还有一个完全版,当即晕倒,起来继续下载,完成,安装,搞定!


     网址:http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en。


     最后,点击开始菜单,在程序中找到Microsoft Platform SDK,进入Build Environment Window--->Windows XP 32-bit Build Environment--->click Set Windows XP 32-bit Build Environment (Debug),一个DOS窗口出现,nmake可用,然后就可以编译各个例子了。


     主要说明的是RTCSample这个例子,编译会出现问题,IRTCPresenceDevice2不能识别,不明白为什么,明明是RTC1.3里面的一个接口,事件仓促,没有细究,这一段只是1.3的一个新功能,先把它注释掉,包括:
 IRTCPresenceDevice2 *pDevice2 = NULL;
 
    pDevice2=NULL;
    hr=pDevice->QueryInterface(__uuidof(IRTCPresenceDevice2),(LPVOID *)&pDevice2);
    if (FAILED(hr))
    {
        DEBUG_PRINT(("QueryInterface Failed 0x%8x", hr));
    }

    if(pDevice2)
    {
        hr=pDevice2->get_DeviceID(&bstrDeviceID);
        if (FAILED(hr))
        {
            DEBUG_PRINT(("Device::get_DeviceID Failed 0x%8x", hr));
        }
    }
   
    SAFE_RELEASE(pDevice2);


    编译通过,生成.exe文件,然后需要把MANIFEST文件copy到.exe同级目录下,运行RTCSample.exe。
 注意,只有通过上面所述打开的窗口中nmake可用,运行cmd打开的不可用,而且要编译例子,只有这种方式,把nmake所在目录加入Path中,nmake可用,但编译会出现错误。

你可能感兴趣的:(windows,server,Microsoft,Build,vc++,makefile)