我需要定义一个依赖于系统的整数类型,以便与一些低级库相兼容.我已经设置了x86和x64项目配置,并为它们定义了条件编译符号(IA32和INTEL64).
所以,我想做以下事情:
#if IA32
typedef int SysInt;
typedef uint SysUInt;
#elif INTEL64
typedef long SysInt;
typedef ulong SysUInt;
#endif
Run Code Online (Sandbox Code Playgroud)
但是,由于typedef在C#中不可用,因此不起作用.实现这个的最佳选择是什么?
提前致谢.最好的祝福.
Gab*_*abe 11
你想IntPtr和UIntPtr,这是在32位进程32位,并在64位进程64位.由于这些类型自动采用进程的"位数",因此不需要条件编译或两个不同的项目配置来使用它们.
但是,如果您确实想要对值进行数学运算,则应将它们转换为long或ulong进行数学运算,然后返回IntPtr或UIntPtr将它们传递给外部库.
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |