类库中调用webservice问题~
发布网友
发布时间:2022-04-29 23:47
我来回答
共2个回答
热心网友
时间:2022-04-11 22:29
大概思路是这样的:
我们的用户鉴权功能是由C#写的一个Web Service提供,为了方便VC的客户端使用,打算将对WebService的引用封装在一个类库中。
但是偶用vc写的一个自测程序去调用封装后的类库,在退出时就会出现“内存不能为读”的错误提示;
偶试了两种情况:
1、如果直接在自测程序中添加Web引用,然后直接调用自动生成的WebService的ATL代理类,退出时就不会出现这样的错误;
2、在类库中调用这个ATL代理类时,如果输出参数传递一个NULL,退出时也不会出现这个错误。
所以,初步确定应该是输出参数的释放有问题,但偶试了好久,也还是有“内存不能为读”的错误提示,不知道错在哪里了?大家帮忙看看,谢谢
封装的类库中的部分代码如下:
其中,m_pWS是atl代理类指针,在类库构造时创建,析构时释放;
// ***************************************************************
// 函数名称:CheckUser
// 功能描述:验证用户登录
// 访问的表:无
// 修改的表:无
// 输入参数:const CString& sUserid - 用户名称
// const CString& sUserpwd - 用户密码
// BYTE nSysfuncid - 是否能登录该子系统的系统功能编号
// 输出参数:bool* bRtn - 执行是否成功
// 返回值:CString - 输出信息
// 其它说明:无
// ***************************************************************
CString CAuthority::CheckUser(const CString& sUserid, const CString& sUserpwd , BYTE nSysfuncid, bool* bRtn)
{
HRESULT hr = S_OK;
CComBSTR bstrUserid = sUserid;
CComBSTR bstrUserpwd = sUserpwd;
CComBSTR bstrMsg = NULL;//static_cast < LPCOLESTR> (NULL);
bstrMsg.Empty();
hr = m_pWS-> CheckUser(bstrUserid, bstrUserpwd, nSysfuncid, bRtn, &bstrMsg);
// 获取返回值
CString sMsg(bstrMsg == NULL ? L " " : bstrMsg);
return sMsg;
热心网友
时间:2022-04-11 23:47
中新网5月25日电 据工信部数据显示,1-4月我国电子信息产品进出口额达到2854亿美元,同比增长41.5%,占全国外贸进出口总额的33.3%;其中出口1645亿美元,同比增长36.3%,比2008年同期增长3.2%,占全国外贸出口37.7%,代写硕士论文;进口1209亿美元,同比增长49.3%,*文,比2008年同期增长3.4%,占全国进口28.8%。
据悉,1-4月电子元件出口219亿美元,同比增长53.2%;电子器件出口186亿美元,同比增长74.1%;电子材料出口16亿美元,同比增长52.1%;这三个行业出口增速明显高于全行业平均水平。计算机产品出口621亿美元,同比增长37.5%;家用电子电器、通信设备出口250和265亿美元,同比分别增长19.9%和19.4%。出口金额前三名产品为:笔记本电脑264亿美元,四川成都导游培训,增长51.5%;手机123亿美元,增长19.5%;液晶显示板及模组80亿美元,增长84.3%。大部分行业进口保持快速增长,计算机、电子元件及电子器件进口分别增长56.5%、58.9%、51.6%。
相关的主题文章:
大学毕业生向母校提出每月出资150元助学
傅盛重返杀毒领域:18个月就业禁止协议过期
新周刊:和曹国伟聊微博