在 C# 中查找预处理器指令,用于根据可执行文件是 64 位还是 32 位导入 dll:
#if WIN64
[DllImport("ZLIB64.dll", CallingConvention=CallingConvention.Cdecl)]
#else
[DllImport("ZLIB32.dll", CallingConvention=CallingConvention.Cdecl)]
这就是你需要做的。
首先,进入Project-><project name> Properties...
并转到“构建”选项卡。
在标有“条件编译符号”的文本框中,添加WIN32
适用于您的 x86 平台(可在对话框顶部选择)以及WIN64
适用于您的 x64 平台。然后保存。
请注意,如果您有一个用于“AnyCPU”的平台,您可能希望完全删除该平台,因为它不安全。
然后,进入源代码,并编写以下内容:
#if WIN64
[DllImport("ZLIB64.dll", CallingConvention=CallingConvention.Cdecl)]
#else
[DllImport("ZLIB32.dll", CallingConvention=CallingConvention.Cdecl)]
#endif
请注意,当您查看源代码时,其中一行看起来像是已被注释掉,因为整行都是灰色字体。这条线是“其他平台”的线。如果您在工具栏中选择平台,您会注意到语法颜色也会随之变化。
当然,在重新阅读我的答案后,我注意到您实际上不需要将 WIN32 放入条件符号列表中,因为它没有被使用,但在其他地方在 WIN32 而不是 64 上执行 #if 可能会很有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)