我已经使用这个特殊功能几个月了,但是今天它停止工作了。我无法想象为什么,我不排除任何可能性,所以如果你有任何想法,请告诉!
我正在以这种方式加载函数:
[DllImport("kernel32")]
private static extern int GetPrivateProfilestring(string section, string key, string def, StringBuilder retVal, int size, string filePath);
然后我尝试以这种方式使用它:
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfilestring(Section, Key, "", temp, 255, strPath);
return temp.ToString();
正如所说,这已经工作了很长时间,但是从现在开始它会抛出这个异常:
System.EntryPointNotFoundException:无法在 DLL“kernel32”中找到名为“GetPrivateProfilestring”的入口点
为什么会发生这种情况?dll是否可能已更改(通过Windows更新或其他方式)?也许只是再也找不到了,那么例外会有所不同吗?我知道这不太可能,但是因为我说过我没有排除任何可能性,因为这一直有效并且源代码没有改变......
更新:奇怪的是,大写有所帮助,它现在似乎可以工作了。但是我仍然很好奇为什么会发生这种情况,为什么现在会发生?我可以向你保证,它已经工作了几个月。
我有点害怕只是更改它并在所有地方更新我们的软件,因为错误只发生在我的机器上(据我所知),但是旧方法已经在各种 PC 和配置上运行了 6 个多月.