+ -
当前位置:首页 → 问答吧 → 在MFC_DLL中使用字符串参数的问题

在MFC_DLL中使用字符串参数的问题

时间:2011-12-25

来源:互联网

MFC_DLL,编译通过,但调用的时候出错。用int类型的时候就可以调用成功:各位看下下面的

#include "dllDemo.h" 
extern "C" _declspec(dllexport) void ReadPsw(char *name,char *password)
{
int h = 0; 
int n = 0;
CStdioFile File;
CString bbb,ccc;
CString Temp;
CString line;
CString FData = " ";
File.Open("login.txt",CFile::modeRead);
  if(File.ReadString(FData))
{
int nCount = 0;
char *ss = FData.GetBufferSetLength(FData.GetLength()); 
char *p;
for(p = strtok(ss,"#");p != NULL;p = strtok(NULL,"#"))
{
LPTSTR pBuff=bbb.GetBuffer(32); 
Temp = atoi((LPCTSTR)pBuff);
n++;
  switch(n)
{
case 1:
{
name = Temp.GetBuffer(Temp.GetLength());;
break;
}
case 2:
{
password = Temp.GetBuffer(Temp.GetLength());;
break;
}
default :
break;
}
}
}
File.Close();
}

作者: a2289610   发布时间: 2011-12-25

1、你的指针分配了空间没有?
2、一般这种需要附加的将字符串的长度传进来的,避免内存溢出。
3、另外,CString用完GetBuffer后需要调用ReleaseBuffer来释放的

楼主要注意细节

作者: Allen_zhang   发布时间: 2011-12-25