Я пытаюсь перейти на MS .NET Framework 4, и у меня возникает ошибка с функцией dllimport (см. Ниже).Когда код достигает dllimport, программа просто завершается с кодом ошибки 0x80000003.Я попытался изменить его так, чтобы вход и выход были StringBuilder, и я также попытался установить кодировку, изменив кодировку (на Unicode или ANSI) и установив EntryPoint (PathGetArgsA или PathGetArgsW).Этот код отлично работает в версии 3.5, но не в версии 4.
[DllImport("Shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern string PathGetArgs([In] string path);
[DllImport("Shlwapi.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern void PathRemoveArgs([In, Out] StringBuilder path);
public static bool ExtractArguments(string cmdLine, out string filePath, out string fileArgs)
{
StringBuilder strCmdLine = new StringBuilder(cmdLine.ToLower().Trim());
filePath = fileArgs = "";
if (strCmdLine.Length <= 0)
throw new ArgumentNullException("cmdLine");
fileArgs = string.Copy(PathGetArgs(strCmdLine.ToString())); // Error occurs here
PathRemoveArgs(strCmdLine);
filePath = string.Copy(strCmdLine.ToString());
if (!string.IsNullOrEmpty(filePath))
if (Utils.FileExists(filePath))
return true;
return false;
}
Спасибо!