dt1985324
驱动牛犊
驱动牛犊
  • 注册日期2008-05-06
  • 最后登录2009-02-10
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望106点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
阅读:1578回复:9

一个简单问题

楼主#
更多 发布于:2008-07-31 12:02
UNICODE_STRING dst;
UNICODE_STRING src ;            
UNICODE_STRING src = RtlInitUnicodeString(L”123”);
UNICODE_STRING dst = RtlInitUnicodeString(L”456”);

RtlCopyUnicodeString(&dst,&src);    // 字符串拷贝!

这样是否会蓝屏?
应该怎么样去自由更改已经初始化后的dst字符串?
dt1985324
驱动牛犊
驱动牛犊
  • 注册日期2008-05-06
  • 最后登录2009-02-10
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望106点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-31 12:04
菜鸟问题 谢谢大家指教
dt1985324
驱动牛犊
驱动牛犊
  • 注册日期2008-05-06
  • 最后登录2009-02-10
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望106点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-08-05 08:47
不知道蓝的原因啊..
反正我后来是重新分配了一块足够大的内存给目标字符串,然后拷贝才成功,
不过这样,就需要自己手动释放内存了

不知道有没有聪明的办法..
dt1985324
驱动牛犊
驱动牛犊
  • 注册日期2008-05-06
  • 最后登录2009-02-10
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望106点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-08-07 11:39
确实是写错了

粗心

我找了一下 ,好想真的没有封装好的字符串赋值函数....

我自己定义了一个

首先判断目标字符串BUF是否空,不空就释放,

然后根据源字符串大小分配目标字符串的内存空间

最后在COPY
dt1985324
驱动牛犊
驱动牛犊
  • 注册日期2008-05-06
  • 最后登录2009-02-10
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望106点
  • 贡献值1点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2008-08-07 15:49
谢谢tiamo,那个好象是一个常量空间,确实不能写.

就算不是常量空间,也不能直接复制,因为不能确定两个字符串的缓冲区大小相同,可能出现字符串被截断.

内核中使用真的很麻烦,连赋值都需要自己定义一个函数.
游客

返回顶部