研究这个的缘由就是公司要我接一个短信接口,挺简单的,我就按照demo输入参数,调用一下他提供的dll的几个函数.资料也很详尽,有开发这个dll的sdk,但是,一个成熟的sdk,作为初学者,真心没什么动力去研究,让我看明白估计要花个一两个星期吧.好吧,不多说,顺顺利利的把dll接进去了,然后开始测试.运行成功,ok,挺高兴的,但是几分钟后,怎么回事?怎么程序直接崩掉了?看看demo,哦,好像参数有点不对.
他的demo
const char *data[2];
data[0]="123";
data[1]="456";
int ret=sendTemplateSMS(&p,"18123456789","123",data,2);
关键就是这个demo,我是直接给data[0]赋值一个cstring参数,会不会是这个问题呢?我就开始找cstring转char*,最后我的代码
CString str1 =Content;
std::string str2(str1.GetBuffer());
char *cr;
cr=new char[1000];
strcpy(cr,str2.c_str());
const char *data[2];
data[0] = cr;
data[1]="456";
int ret=sendTemplateSMS(&p,"18123456789","123",data,2);
str2.ReleaseBuffer();
cr =NULL;
delete cr;
转换完之后,运行一会儿还是崩溃,我有点慌了,怎么回事呢,查查字节,我的程序和demo都是多字节的,应该没问题啊,好吧,新人没自信,我又去查查多字节和宽字