WinCE 6.0 在调试DLL中的函数时传入的char*类型的参数,看到的值是空的,但函数的执行结果却是正确的
[复制链接]
dll 头文件 Function.h
class _declspec(dllexport)CFunction : public CObject
{
public:
CFunction();
virtual ~CFunction();
int Add(int a, int b);
char* Link(char* stra , char* strb);
};
dll cpp Function.cpp
int CFunction::Add(int a ,int b)
{
return a + b;
}
char* CFuntion::Link(char* stra, char* strb)
{
return strcat(stra, strb);
}
调用
把Function.h加到工程里面
加上 #pragma comment(lib,“DLLpro。lib”)
。。。
。。。
在其他文件包含该头文件
声明一个对象
CFunction m_cMyFunction
调用
void Fun()
{
int a = 10;
int b = 10;
int c = cMyFunction.Add(a,b);
//结果 c = 20 调试在CFunction里面的Add函数里看到的参数的值设正确的
char stra[100];
char strb[100];
memset(stra,'\0',100);
memset(strb,'\0',100);
strcpy(stra,"0123456789");
strcpy(stra,"abcdefg");
stra = cMyFunction.Link(stra,strb);
//结果 stra = 0123456789abcdefg 调试时在CFunction里面的Link函数传近的参数字符串为空
//但如果在Link函数里加上
// char temp[100];
// memset(temp,'\0',100);
// strcpy(temp,stra);
// 拷贝后的temp = 0123456789
}
函数实际的执行结果的说的,但就是调试时看不到char*参数的值,这是怎么回事啊,dll是Debug版的。