怎么了?szname不对了?strncpy(szname,"testname",9); 这行有问题吧
解决方案 »
- 比较两个txt文件的不同之处
- 如何获取指定IP的站点HTML内容?
- 如何使控件所在的窗体背景完全透明?
- C#中的LOCK关键字的用法??????????
- 请教一个简单的正则表达式问题,用于html解析
- WEB页面上的控件的拖拽停靠怎么做??
- 此处为啥会弹窗两次,求助。。急。。在线等。。。
- 在TextBox中怎么只让输入整数,不能输入小数呢?
- 关于窗体的最大化,最小化的探讨?????
- 请各位推荐一本编译原理的书。
- 求教函数 System.Text.Encoding.Default.GetBytes() 的问题,谢谢赐教!!!
- C#winfroms窗体问题!请高手指导下。。。。急啊!! 急死我啦!!!!!!!!!!!!!!
改成
strcpy(szname,"testname",strlen("testname"));
szname[strlen("testname")] = '\0';
再试试
……strcpy只能传2个参数吧直接strcpy(szname,"testname");就可以了,后面会自动加0x00.
或按这位仁兄的思路应该用memcpy
也不会有问题。
struct CTest
{
int nage;
char szname[128];
}
void SetTestData(CTest *pTest)
{
pTest->nage = 10;
strncpy(pTest->szname,"testname",9);
} C#
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct CTest
{
public int nage;
[MarshalAs(UnmanagedType.LPStr ,sizeset = 128)]
public string szname;
}
CTest ptest = new CTest();
SetTestData(ref ptest); 执行结果
ptest.nage = 10;
ptest.szmame = ""; // 这个值没有返回
期待解决,谢谢! 谢谢大家, 我问问题的关键是在定义一个结构体,结构体里有字符串,如何转入字符串,不应该是strcpy strncpy这类问题