xmlrequest.CreateInstance("Msxml2.XMLHTTP")在XP系统执行失败

我喝多了 2010-03-27 09:27:36
if(SUCCEEDED(xmlrequest.CreateInstance("Msxml2.XMLHTTP")))
{
MessageBox("创建成功",MB_OK);
}
else
MessageBox("创建失败",MB_OK);

if(SUCCEEDED(xmlrequest.CreateInstance("Msxml2.XMLHTTP"))) 为什么这行代码在XP系统下执行失败,程序直接弹出
"创建失败"窗口,XP系统已经安装了MSXML4.0 SP2,IE8,NET3.5,WIN7系统和VISTA系统都没问题,就XP不行呢
...全文
243 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SullenSun 2010-03-27
  • 打赏
  • 举报
回复
#import "msxml3.dll"
using namespace MSXML2;
CoInitialize(0);
IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL;
BSTR bstrString = NULL;
HRESULT hr;

try {
hr=pIXMLHTTPRequest.CreateInstance("Msxml2.XMLHTTP.3.0");
SUCCEEDED(hr) ? 0 : throw hr;

hr=pIXMLHTTPRequest->open("GET", "http://localhost/books.xml ", false);
SUCCEEDED(hr) ? 0 : throw hr;

hr=pIXMLHTTPRequest->send();
SUCCEEDED(hr) ? 0 : throw hr;

bstrString=pIXMLHTTPRequest->responseText;

::MessageBox(NULL, _bstr_t(bstrString), _T("Results"), MB_OK);

if(bstrString)
{
::SysFreeString(bstrString);
bstrString = NULL;
}

} catch (...) {
::MessageBox(NULL, _T("Exception occurred"), _T("Error"), MB_OK);
if(bstrString)
::SysFreeString(bstrString);
}
可以的
jameshooo 2010-03-27
  • 打赏
  • 举报
回复
先看看CreateInstance返回值是什么,大部分情况都能马上判断出原因
我喝多了 2010-03-27
  • 打赏
  • 举报
回复
IXMLHTTPRequestPtr xmlrequest;

try
{
xmlrequest.CreateInstance("Msxml2.XMLHTTP");
xmlrequest->open(_bstr_t("GET"),_bstr_t("http://aion.plaync.co.kr/"),vFalse);
xmlrequest->send();
}
catch(...)
{
MessageBox("错误");
}

这样也直接弹出 “错误”框,好像IXMLHTTPRequestPtr 在XP系统下就是不能运行,为什么呢,请大侠指点
主  题: 在VC中使用XMLHTTP,怎样初始化,怎样建立连接?在线等。 我的一段代码在.NET中用C#已经调通,我想搬到VC++ 6.0上,但不知道任何各种写法规则。 C# 中为: MSXML2.XMLHTTP xmlHttp_ = new XMLHTTP(); xmlHttp_.open("PROPFIND", serverUrl, false, username, password); xmlHttp_.send(null); 放到VC++ 6.0 中应为什么? 以下是我写的,但运行出错。 #import "msxml4.dll" using namespace MSXML2; HRESULT hr; //MSXML2::IXMLHTTPRequest pIXMLHttpRequest; CString serverUrl ="http://services.msn.com/svcs/hotmail/httpmail.asp"; MSXML2::IXMLHTTPRequestPtr pIXMLHttpRequest; pIXMLHttpRequest.CreateInstance("Msxml2.XMLHTTP.4.0"); if (pIXMLHttpRequest==NULL) AfxMessageBox("pIXMLHttpRequest error"); try { // Create XMLHttpRequest object and initialize pIXMLHttpRequest. hr = pIXMLHttpRequest->open(_bstr_t(_T("PROPFIND")), _bstr_t(_T(serverUrl)), _variant_t(VARIANT_FALSE), _variant_t("test5_12"), _variant_t("1234567")); if(SUCCEEDED(hr)) ::MessageBox(NULL, _T("Success !"), _T(""), MB_OK); } catch(...) { //DisplayErrorToUser(); AfxMessageBox("error"); } 在调用方法open的时候出错! 回复人: masterz(www.fruitfruit.com) ( ) 信誉:273 2003-06-10 21:34:02Z 得分:20 ? #import "msxml.dll" #import "msxml2.dll" using namespace MSXML2; int main(int argc, char* argv[]) { printf("Test of XMLHTTP by masterz!\n"); CoInitialize(NULL); try { IXMLHTTPRequestPtr xmlrequest; xmlrequest.CreateInstance("Msxml2.XMLHTTP"); _variant_t varp(false); xmlrequest->open(_bstr_t("GET"),_bstr_t("http://www.csdn.net/expert/topic/855/855052.xml?temp=.176037"),varp); xmlrequest->send(); BSTR bstrbody; xmlrequest->get_responseText(&bstrbody); _bstr_t bstrtbody(bstrbody); printf("%s\n",(LPCTSTR)bstrtbody); } catch (_com_error &e) { printf("Description = '%s'\n", (char*) e.Description()); } CoUninitialize(); printf("program end\n"); return 0; } ///////Post with XMLHTTP/////////////////////// #import "msxml.dll" #import "msxml2.dll" #include "Atlbase.h" using namespace MSXML2; int main(int argc, char* argv[]) { printf("Test of XMLHTTP by masterz!\n"); CoInitialize(NULL); try { IXMLHTTPRequestPtr xmlrequest; //xmlrequest.CreateInstance("Msxml2.XMLHTTP"); xmlrequest.CreateInstance(__uuidof(XMLHTTP)); CComVariant vFalse(FALSE); CComVariant vNull(NULL); xmlrequest->open("POST", _bstr_t("http://211.157.102.21/member/logon.asp"),vFalse,vNull,vNull); xmlrequest->setRequestHeader("Content-Type:","application/x-www-form-urlencoded"); _bstr_t bsdata("name=xxx&pass=xxx&type=1");//use your login name and password xmlrequest->send(_variant_t(bsdata)); BSTR bstrbody; xmlrequest->get_responseText(&bstrbody); _bstr_t bstrtbody(bstrbody); printf("%s\n",(LPCTSTR)bstrtbody); //MessageBox(0,bstrtbody,"",MB_OK); } catch (_com_error &e) { printf("Description = '%s'\n", (char*) e.Description()); } CoUninitialize(); printf("program end\n"); return 0; }
<head> <base href="<%=basePath%>"> <title>在线考试信息系统</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> </head> [removed] function _reset() { document.getElementById("usName").value = ""; document.getElementById("usPassword").value = ""; document.getElementById("msg").value = ""; document.getElementById("yzmvl").value = ""; document.getElementById("isOkMsg").src = "<%=basePath%>/images/nos.png"; document.getElementById("usName").focus(); document.getElementById("login_ok").removeAttribute("disabled"); } function _init() { document.getElementById("usName").focus(); document.getElementById("yzmvl").value = ""; } var xmlRequest; function _change(value) { //创建XMLHttpRequest对象 //判断浏览器兼容性问题 在JSP中null可以当false使用 if(window.XMLHttpRequest) { //非IE浏览器 xmlRequest = new XMLHttpRequest(); } else { //IE浏览器 xmlRequest = new ActiveXObject("Microsoft.XMLHTTP"); } //设置回滚函数 xmlRequest.onreadystatechange = _callBack; //设置请求连接 xmlRequest.open("post", "randomCode?valueCod=" + value, true); //发送请求 xmlRequest.send(null); } //回滚函数 在请求的服务执行完毕后 主动调用 var vlCod; function _callBack() { //1.建立连接 请求信息发送完毕 服务器响应完毕 //readyState == 4 ------->服务器响应完毕 if(xmlRequest.readyState == 4) { //status == 200 表示服务器执行成功 如不成功:404 405 500 if(xmlRequest.status == 200) { vlCod = xmlRequest.responseText; if(vlCod == "1") { document.getElementById("isOkMsg").src = "<%=basePath%>/images/yes.png"; document.getElementById("login_ok").removeAttribute("disabled"); } else { document.getElementById("isOkMsg").src = "<%=basePath%>/images/NO.png"; document.getElementById("msg").value = "对不起!验证码错误。"; document.getElementById("login_ok").setAttribute("disabled", "disabled"); } } } } function _sub() { var usName = document.getElementById("usName").value; var usPassword = document.getElementById("usPassword").value; var yzmvl = document.getElementById("yzmvl").value; if(usName == null || usName == "") { document.getElementById("msg").value ="对不起!用户名不能为空。"; document.getElementById("usName").focus(); return false; } if(usPassword == null || usPassword == "") { document.getElementById("msg").value ="对不起!密码不能为空。"; document.getElementById("usPassword").focus(); return false; } if(yzmvl == null || yzmvl == "") { document.getElementById("msg").value ="对不起!验证码不能为空。"; document.getElementById("yzmvl").focus(); return false; } if(vlCod != 1 || vlCod !="1") { document.getElementById("msg").value =""; return false; } return true; } function changeCode() { document.getElementById("yzm").src = "randomCode"; } [removed]

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧