@KennyTM的回答是正确的,如果"基本上是一个字符串",你的意思是它是一个指向std::string类实例的指针.如果你的意思是它是一个指向C字符串的指针,我怀疑它可能更有可能,你需要:
char *s = reinterpret_cast<char *>(your_ulong);
Run Code Online (Sandbox Code Playgroud)
或者,在您的情况下:
whcar_t *s = reinterpret_cast<wchar_t *>(your_ulong);
Run Code Online (Sandbox Code Playgroud)
另请注意,您无法安全地将指针存储在任何旧的整数类型中.我可以使用32位long类型和64位指针类型编译.如果你的编译器支持它,存储在指针为整数,正确的方法是使用stdint.h类型intptr_t和uintptr_t,这些都保证(由C99标准)必须足够大,以存储指针类型.
但是,C99不是C++的一部分,许多C++编译器(读取:Microsoft)可能不提供这种功能(因为谁需要编写可移植代码?).幸运的是,stdint.h存在变通方法非常有用,并且stdint.h可以在Internet上轻松找到与旧编译器兼容的可移植(和免费)实现.
| 归档时间: |
|
| 查看次数: |
859 次 |
| 最近记录: |