<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">C#中调用c++的dll如何适应32位跟64位的平台</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">首先需要编译32/64两个版本的两个dll放到对应的运行目录下</span>
其次写一个平台判断方法
/// <summary>
/// 是否64位
/// </summary>
/// <returns></returns>
public static bool IsSys64bit()
{
if (IntPtr.Size == 8)
{
return true;
}
else
{
return false;
}
}
再在调用方法增加该判断即可
internal static string LIB_NAME = IsSys64bit() ? "libTestDLL_X64.dll" : "libTestDLL.dll";
[DllImport(LIB_NAME, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr Demo(string input, int cnt);