如何将ULONG复制到PUCHAR

时间:2015-05-17 04:04:30

标签: c visual-studio unsigned-char

今天我正在尝试将unsigned long变量复制到unsigned char *变量的内容中。

这样做的原因是,我写了一个RC4密码,要求密钥输入为unsigned char *,我使用SYSTEMTIME类来获取值&将它与随机生成的long值组合以获取RC4的密钥 - 我将其用作用户创建的帐户的时间戳,以便在我的sqlite dbs中标记。

无论如何,我遇到的问题是我无法将ULONG复制到PUCHAR

我试过

wsprintfA(reinterpret_cast<LPSTR>(ucVar), "%lu", ulVar);

我试过

wsprintfA((LPSTR)ucVar, "%lu", ulVar);

然而,在执行我的程序后,ucVar中的结果只是空的,或者它甚至没有计算,并且使应用程序崩溃。

[编辑1]

我想也许memcpy方法可行,所以我尝试声明另一个变量并将其移动到ucVar,但它仍然使应用程序崩溃 - 即它没有到达{{1} }:

MessageBox()

[/ edit 1]

[编辑2]

在大小为64的ucVar上的HeapAlloc()解决了我的问题,谢谢你的建议!

[/ edit 2]

任何人都可以帮我解决这个问题吗?非常感谢!

此致   安德鲁

1 个答案:

答案 0 :(得分:1)

除非您拥有自己想要使用的内存,否则会发生各种各样的事情。这可能是因为错误没有引起注意,因为没有其他任何东西已经拥有该内存,即时崩溃,一个值消失,因为其他东西会在您设置内存和尝试从中检索值之间覆盖内存。它

处理动态内存分配时相当基本的概念,但对于不熟悉的人来说却是一个陷阱。