我有两个预先存在的项目(C++,C#.NET 4.5.2),其中C#项目调用到C++项目。直到我将.NET 4.5.2项目移植到NET Core时,这一切都很完美。现在,当试图访问由C++项目构建的程序集时,我得到一个BadImageFormatException。是否可以从NET核心程序集调用该程序集?BadImageFormatException当调用由C++项目在NET核心构建的.dll
public static string CallCPlusPlusConvert(string inputFileName)
{
if (inputFileName == null) { throw new ArgumentNullException(nameof(inputFileName)); };
return SafeNativeMethods.Convert(inputFileName);
}
internal class SafeNativeMethods
{
[return: MarshalAs(UnmanagedType.BStr)]
[DllImport("CPlusPlusProject", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)]
internal static extern string Convert([MarshalAs(UnmanagedType.BStr)][In]string filePath);
}
是“转换”保留类型也许在.NET核心词? – Grantly
该方法的原始名称不是Convert。我删除了一个后缀,它给出了该方法属于哪个项目。 – Jeff
你有没有尝试过使用StringBuilder作为类型而不是字符串?在DLL调用? – Grantly