我想用 GetPrivateProfileString
制作一个 INI 阅读器。我在用什么:
public class Config
{
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string Section, string Key, string Default, StringBuilder RetVal, int Size, string FilePath);
private string path;
public Config(string path)
{
this.path = path;
}
public string PopValue(string section, string key)
{
StringBuilder sb = new StringBuilder();
GetPrivateProfileString(section, key, "", sb, sb.Length, path);
return sb.ToString();
}
}
现在我的 INI 文件:
[mysql]
host=localhost
我使用的是什么:
Console.WriteLine(Configuration.PopValue("mysql", "host"));
但是,它只是打印出一个空行而不是
localhost
。我究竟做错了什么? 最佳答案
如果您可以使用第三方库,请尝试使用 Nini 。
我使用它并且很容易创建/管理复杂的 INI 文件并且是开源的。GetPrivateProfileString
签名是
DWORD WINAPI GetPrivateProfileString(
_In_ LPCTSTR lpAppName,
_In_ LPCTSTR lpKeyName,
_In_ LPCTSTR lpDefault,
_Out_ LPTSTR lpReturnedString,
_In_ DWORD nSize,
_In_ LPCTSTR lpFileName
);
所以出来不是
StringBuilder
使用 String
关于c# - GetPrivateProfileString 不起作用 .NET,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17469379/