【发布时间】:2018-07-22 06:46:13
【问题描述】:
我想在使用 windows CE 设备的程序中使用 ini 文件。 我得到了异常“找不到 pinvoke dll 'kernel32'” 我该怎么做才能解决这个问题?请帮帮我!
string Path = "c:\\Settings.ini";
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key, string val, string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public string Read(string Section,string Key,string Value)
{
StringBuilder sb = new StringBuilder();
GetPrivateProfileString(Section, Key, Value, sb, 32, Path).ToString(); // Error occured!!
return sb.ToString();
}
它适用于 vs2017 但不适用于 vs2008。 请。给我你的答案!
【问题讨论】:
-
what should I do?。从格式化代码开始 -
我有点怀疑
GetPrivateProfileString可以接受StringBuilder作为参数... -
@Nyerguds 你错了。这让 marshaler 作为
char*调用者提供的缓冲区由被调用者填写。 -
这个 API 早就被弃用了。使用本机 C# 代码处理 ini 文件。
-
@DavidHeffernan 哦,很有趣。谢谢。
标签: c# dll pinvoke kernel32 missingmethodexception