所以,我有两种类型的时刻:const的无符号字符*为char *
const unsigned char* unencrypted_data_char;
string unencrypted_data;
我试图从一个执行一个简单的数据转换到另一个(串 - > const的无符号字符*)
其结果是,我有以下几点:
strcpy((unencrypted_data_char),(unencrypted_data.c_str()));
不过,我收到的错误:
error C2664: 'strcpy' : cannot convert parameter 1 from 'const unsigned char *' to 'char *'
有什么建议吗?我认为使用reinterpret_cast会有所帮助,但似乎没有什么区别。
不幸的是,它不是我的选择,使其不变。 AES加密函数的参数,我传递unencrypted_data要求它的形式是“const unsigned char”,因此我的问题。 – BSchlinker 2010-04-05 02:18:56
BSchlinker,这不是问题。 'unsigned char *'可以隐式转换为'const unsigned char *'。 – 2010-04-05 02:21:16
不,不 - 如果一个函数需要像'void f(const char *)'这样的东西,它只是说* it *不会写入它!它不会阻止你给它一个可变的缓冲区。 – 2010-04-05 02:22:15