- 论坛徽章:
- 0
|
//这是结构定义
typedef struct MGR_LOG_DATA
{
char szName[16];
char szType[16];
char szTime[16];
char szMsg[256];
} Mgr_Log_Data ,* LPMGRLOGDATA;
//这是动态库接口程序
#include <mysql>//只要加了这句,就出问题,如果去掉,就没有问题
int DllGetLogInfo(char *hostname , LPMGRLOGDATA log , int sign)
{
LPMGRLOGDATA tmp_data = (LPMGRLOGDATA)log;
strncpy(tmp_data->szName , "dddddd" , 6);
strncpy(tmp_data->szType , "dddddd" , 6);
strncpy(tmp_data->szTime , "aaaaaa" , 6);
strncpy(tmp_data->szMsg , "eeeeee" ,6);
return 1;
}
//这是主程序
int main()
{
int num4;
int num;
int ii = 0;
LPMGRLOGDATA data2 = (LPMGRLOGDATA)malloc(sizeof(Mgr_Log_Data));
memset(data2 , 0 , sizeof(Mgr_Log_Data));
DllGetLogInfo(NULL , data2 , 0);
printf("%s , %s , %s , %s\n" , data2->szName , data2->szType , data2->szTime , data2->szMsg );
}
而最终的结果输出却是:
dddddd , , ,
请问,为什么会丢失数据?谁能帮我解答疑惑,紧急十分,谢谢拉!
#include <mysql>//只要加了这句,就出问题,如果去掉,就没有问题
[ 本帖最后由 988630 于 2006-7-3 16:23 编辑 ] |
|