下面的代码,pInput是一个字char数组,里面有"12345678",执行完如下代码后,szDataIn没有值,请教各位大侠,我是哪里错了?char *szDataIn = new char[9];
char *szDataOut = new char[9];
memset(szDataIn,0,9);
memset(szDataOut,0,9);
strncpy(szDataIn,pInput,9);
char *szDataOut = new char[9];
memset(szDataIn,0,9);
memset(szDataOut,0,9);
strncpy(szDataIn,pInput,9);
2)strncpy(szDataIn,pInput,9);
先用strcpy试一下
xtern "C" _declspec(dllexport) int PASCAL bfEncrypt(char *pInput,char *pOutput,int iSize)
估计要有问题就是出在pInput的赋值\边界上
这样试试:
for (int i = 0; i < 9; i++)
{
szDataIn[i] = pInput[i];
}
char *szDataOut = new char[9];
memset(szDataIn,0,9); //如果把这一行注释掉,那么在执行完下一条语句后,是szDataIn中的内容被清空
memset(szDataOut,0,9);
很抱歉,没法帮你了。
不过如果你还是不行的话,可以试试这样
char szDataIn[9];
strncpy((char *)szDataIn,pInput,9);
这样的好处是你不用专门去释放szDataIn了。