Запуск приложения консоли C# Я написал на 64-битной Vista. Вот код:Почему я не могу заставить GetPrivateProfileString работать с помощью pinvoke?
class Class1
{
static void Main(string[] args)
{
Debug.Assert(File.Exists(@"c:\test.ini"));
StringBuilder sb = new StringBuilder(500);
uint res = GetPrivateProfileString("AppName", "KeyName", "", sb, sb.Capacity, @"c:\test.ini");
Console.WriteLine(sb.ToString());
}
[DllImport("kernel32.dll")]
static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
}
Я уверен, что я получу большой «DUH!». для ответа, но я не вижу, почему это не работает. Помимо кода Debug.Assert, этот код был вырезан из образца C# в this page
Я забыл упомянуть, я запускаю этот код на XP Pro 32-bit. – Lee
Я просто попробовал GetPrivateProfileSectionW и GetPrivateProfileSectionNamesW. Оба не работают одинаково. Также интересно, когда я пытаюсь получить имена разделов, возвращается только первый раздел, независимо от того, извлекается ли с помощью GetPrivateProfileStringW или GetPrivateProfileSectionNamesW. У меня было достаточно удовольствия с ними. CodePlex выглядит так, будто у него может быть пара замен. Если никто из них не работает, я откажусь от своего. – Lee
О, черт возьми! Ты прав! Раздел, который я пытаюсь прочитать, не может быть первой строкой INI-файла! Невероятно! Кто бы мог знать? Огромное спасибо. – Charles