C++ 代码找错。

[复制链接]
查看11 | 回复2 | 2010-8-8 17:42:16 | 显示全部楼层 |阅读模式
int WINAPI GetString(char* serial)
{
char *p;
p="这是要返回的值";
memcpy(serial,p,strlen(p));
return strlen(p);
}
我在C#中调用这个API的时候:
//假设GetString已经DllImport了
Byte[] b=new Byte[200];
int r=GetString(b);
这样r是正确长度,可b还是没有变,全是0,请问错在什么地方。

回复

使用道具 举报

千问 | 2010-8-8 17:42:16 | 显示全部楼层
1.Byte* 和char* 应该有区别的,你是否应该注意一下?2.API函数是否应该修改成如下形式?int WINAPI GetString(char* serial){char *p;p="这是要返回的值";memcpy(serial,p,strlen(p)+1);//因为字符串的末尾有一个 \0return strlen(p);}3.祝你好运!
回复

使用道具 举报

千问 | 2010-8-8 17:42:16 | 显示全部楼层
参数,实参和形参的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行