读书人

100分求把下列VBSCRIPT 用C写成控制台

发布时间: 2012-02-11 09:51:34 作者: rapoo

100分求把下列VBSCRIPT 用C写成控制台应用程序
Set xPost = CreateObject( "Microsoft.XMLHTTP ")
xPost.Open "GET ", "http://www.yahoo.com/index.html ",0
xPost.Send()
Set sGet = CreateObject( "ADODB.Stream ")
sGet.Mode = 3
sGet.Type = 1
sGet.Open()
sGet.Write(xPost.responseBody)
sGet.SaveToFile "index.html ",2

[解决办法]
你这是要调用COM Automation啊,直接用C会很繁,如果不是不可能的话. 用C++倒还可以考虑一试.
[解决办法]
这个不是COM调用么?

直接在 C++ 中调用这个COM就好了 ~
[解决办法]
不如直接用socket,
send( "GET "),
recv,
write

[解决办法]
1、建立socket连接
int s = socket(AF_INET,SOCK_STREAM,0);
...
2、设置缓冲区大小
setsockopt(s,SOL_SOCKET,SO_RCVBUF, "2048 ",4);
...
3、填写sockaddr_in addr结构
memset(&addr,0,sizeof(addr));
addr.sin_family=AF_INET;
addr.sin_port=htons(80);
addr.sin_addr.s_addr=inet_addr( "/*雅虎网站的地址,去命令行里ping下就知道了*/ ");
4、连接
connect(s,(struct sockaddr *)&addr,sizeof(addr);
5、发送请求给它
send(s, "GET / HTTP/1.1 ",14,0);
send(s, "\n ",1,0);
send(s, "Host: www.yahoo.com ",19,0);
send(s, "\n ",1,0);
send(s, "Accept: */* ",11,0);
send(s, "\n ",1,0);
send(s, "\n ",1,0);
6、接收雅虎传来的消息
while(recv(s,buffer,sizeof(buffer),0))
{
...
}//要循环接收,因为一次只有两K
7、打开文件,写到文件里,这个自己去写吧

以上就是基本思路,自己去完善吧,希望对你有用。
[解决办法]
。。楼上两人闭眼睛说话的。。。微软 COM 讲究的就是语言无关,用 C++ 直接操作 COM 对象就 OK。。
[解决办法]
也可以直接使用Wininet API :
InternetOpenUrl InternetReadFile
[解决办法]
我的方法就是在C里模仿Wininet API InternetOpenUrl和InternetReadFile方法,将页面接收到Buffer里,已经试过,可行
[解决办法]
把COM当成神坛也算不了什么,
解决问题的方法有很多,不必要钓死在一棵树上.
用C,socket 解决更简洁,可移植性更好.

读书人网 >C语言

热点推荐