能不能干了

mufengqing mufengqing 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
// CardCheck.cpp : Implementation of CCardCheck

#include "stdafx.h"
#include "CardCheck.h"
#include ".\cardcheck.h"

// CCardCheck


STDMETHODIMP CCardCheck::get_CardType(BSTR* pVal)
{
// TODO: Add your implementation code here

*pVal=SysAllocString(bstrCardType);
return S_OK;
}

STDMETHODIMP CCardCheck::put_CardType(BSTR newVal)
{
// TODO: Add your implementation code here

bstrCardType=SysAllocString(newVal);
return S_OK;
}

STDMETHODIMP CCardCheck::Validate(BSTR* bstrCardNo, VARIANT* vRetVal)
{
// TODO: Add your implementation code here

int i;
int nSum;
//convert the card number from bstr to char*
int len=wcslen(bstrCardNo); //这出错啦
char * pszCardNo=new char[len+1];
int last=WideCharToMultiByte //这出错啦(CP_ACP,0,bstrCardNo,len,pszCardNo,len,0,0);
pszCardNo[last]=0;


//convert the card type from bstr to char*
len=wcslen(bstrCardType);
char * pszCardType=new char[len+1];
last=WideCharToMultiByte(CP_ACP,0,bstrCardType,len,pszCardType,len,0,0);
pszCardType[last]=0;
CString s(pszCardType);
//check if one of the acceptd card types
if(s.CompareNoCase("VISA")!=0&&s.CompareNoCase("MASTER")!=0&&s.CompareNoCase("AMEX")!=0)
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
//check if the card number is valid for visa
if (s.CompareNoCase("VISA")==0)
{
if(strlen(pszCardNo)!=13&&strlen(pszCardNo)!=16)
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
if(pszCardNo[0]!='4')
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}

}

//check if the card number is valid for master
if(s.CompareNoCase("MASTER")==0)
{
if(strlen(pszCardNo)!=16)
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
if(pszCardNo[0]!='5')
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
if(pszCardNo<'1'||pszCardNo>'6')
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
}

//check if the number is valid for Amex
if(s.CompareNoCase("AMEX")==0)
{
if(strlen(pszCardNo)!=15)
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
if(pszCardNo[0]!='3')
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
if(pszCardNo!='4'&&pszCardNo!='7')
{
CComVariant n(1);
*vRetVal=(VARIANT)n;
return S_OK;
}
}

//check if the card number is valid luhn number
for(i=0,nSum=0;i<16;i+=2)
{
int nDigit=(pszCardNo[i]-48)*2;
if(nDigit<10)
{
nSum=nSum+nDigit;
}
else
{
nSum=nSum+nDigit/10;
nSum=nSum+nDigit%10;
}
nSum=nSum+(pszCardNo[i+1]-48);
}
nSum=nSum%10;
CComVariant p(nSum);
*vRetVal=(VARIANT)p;


return S_OK;
}
提示错误是下面提示
d:\LuhnChecker\CardCheck.cpp(33): error C2664: 'wcslen' : cannot convert parameter 1 from 'BSTR * ' to 'const wchar_t *'
d:\LuhnChecker\CardCheck.cpp(35): error C2664: 'WideCharToMultiByte' : cannot convert parameter 3 from 'BSTR * ' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


...全文

相关推荐

你能不能像打游戏一样干工作?

奇虎360董事长周鸿祎说,年轻人打游戏不是一件坏事,但是一个人应该要把握住自己,反而要像主动升级打怪那样,对自己的工作和学习,充满激情的进行自我目标认定、自我激励。如果你把本文当作纯鸡汤,那你就浪费周总的用心了。

weixin_38675967

织梦城市分站怎么安装织梦二级域名站群织梦制作企业分站教程

② 修改伪静态内容:复制截图中的两条伪静态出来,在另取一行黏贴,把fenzhan改成上面第①点说到的默认【默认的名称】,如果默认的名称为abc,就把abc复制黏贴上去,如果是abc/def就把abc/def复制黏贴上去,注意后面的ID要和你新创建的栏目ID一样。① 创建栏目的时候【文件保存目录】的名称要复制到【默认的名称】栏目,复制下去的目录名称前后不需要加“/”,二级栏目的也是一样的方式复制;然后研究下面的代码,把织梦对应的默认标签修改成下面的调用标签就可以。其他的环境的伪静态可能会出翻页的bug。

百创科技

织梦网做城市分站织梦分站群二级目录织梦城市分站教程

可以参考http://www.hlzcb.com/zhimengxueyuan/zhimenganzhuangshiyong/25830.html。想要增加修改城市 找到 mycity—city.php 想要添加自己的城市站点 还需要看下 pinyin.txt 有没有对应的拼音。其他的环境的伪静态可能会出现城市分站翻页的bug。1、上传到服务器上输入www.xxxx.com/install进行安装(具体安装方法找百度一大堆);②如果是IIS的服务器直接导入.htaccess规则,具体导入方法百度找找。

百创科技

PCB制程干膜贴膜工艺介绍

目前被使用的干膜有好几个品牌,不同的品牌在贴膜时的参数略有不同,不同批次的干膜贴膜的参数也略不同,具体的参数需与厂商沟通并根据自己设备的情况做调整。

weixin_38675967

PCB制成干膜贴膜技术介绍

干膜贴膜时,先从干膜上剥下聚乙烯保护膜,然后在加热加压的条件下将干膜抗蚀剂粘贴在覆铜箔板上。干膜中的抗蚀剂层受热后变软,流动性增加,借助于热压辊的压力和抗蚀剂中粘结剂的作用完成贴膜。贴膜通常在贴膜机上完成,贴膜机型号繁多,但基本结构大致相同,一般贴膜可连续贴,也可单张贴。

weixin_38650379
评论 2
收藏 已收藏
分享
返回顶部
mufengqing
VC.NET 7,538 成员 27,670 内容