Я хотел использовать собственный Dll в своем приложении на C # .net так:
public const int WFSDDESCRIPTION_LEN = 256;
public const int WFSDSYSSTATUS_LEN = 256;
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Auto)]
public struct LPWFSVERSION
{
[MarshalAs(UnmanagedType.U4, SizeConst = 4)]
int WVersion;
[MarshalAs(UnmanagedType.U4, SizeConst = 4)]
int WLowVersion;
[MarshalAs(UnmanagedType.U4, SizeConst = 4)]
uint WHighVerion;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = WFSDDESCRIPTION_LEN + 1)]
public string szDescription;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = WFSDSYSSTATUS_LEN + 1)]
public string szSystemStatus;
}
[DllImport("MSXFS.DLL", EntryPoint = "WFSStartUP", CharSet = CharSet.Auto, ExactSpelling = false)]
public static extern int WFSStartUP([MarshalAs(UnmanagedType.U4)]int dwVersionsRequired, ref LPWFSVERSION ver);
и вот код, в котором я использовал импортированную функцию:
LPWFSVERSION Ver = new LPWFSVERSION();
WFSStartUP(0x31, ref Ver);
проблема в том, что он выдает исключение, которое говорит: «Невозможно найти точку входа»
У меня есть дамп msxfs.dll с помощью dumpbin, и результат был следующим:Похоже, что в dll-стороне не было никаких проблем, поскольку мусорная корзина также могла найти точку входа.Я не знаю, в чем проблема?(