VS2005下写了个简单的测试程序,输出map文件,但在map文件里找不到我写的函数
[code=C/C++][/code]
class CTestClass
{
public:
void ErrorFun(int* ptr);
void ErrorFun1(char* ptr);
void ErrorFun2(int* ptr);
void ErrorFun3(int* ptr);
CTestClass();
~CTestClass();
};
CTestClass::CTestClass()
{
}
CTestClass::~CTestClass()
{
}
void CTestClass::ErrorFun( int* ptr )
{
*ptr = 1;
}
void CTestClass::ErrorFun1( char* ptr )
{
strncpy(ptr,"linyanxin",strlen("linyanxin"));
}
void CTestClass::ErrorFun2( int* ptr )
{
*ptr = 1;
}
void CTestClass::ErrorFun3( int* ptr )
{
*ptr = 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
char* ptr = NULL;
CTestClass obj;
obj.ErrorFun1(ptr);
return 0;
}
[解决办法]
函数ErrorFun1(char* ptr )需要返回一个指针,在你实际调用时,系统会产生ptr的一个临时指针_ptr,修改是在_ptr上,ptr没发生变化。建议修改成char* ErrorFun1(char* ptr )