编辑路径中的第一个INI文件

Ric*_*ras 1 delphi

我的软件使用DLL,它由INI文件配置.它获得了第一个具有特定名称(如果重要的话,Bemafi32.ini),它可以在系统路径中找到.

我想在我的软件中添加编辑此文件的功能.如果我的系统有2个或更多具有相同名称的文件(非常非常普通),我不想错误.我如何保证获得正确的文件?

Rob*_*edy 5

要查找路径上的第一个INI文件,然后利用对方的回答FileSearchGetEnvironmentVariable.DLL更可能使用与自身位于同一目录中的INI文件,而不是路径中的第一个.否则,DLL的所有副本将使用相同的 INI文件,因为所有进程的路径通常是相同的.

要将INI文件放在与DLL相同的目录中,您需要知道DLL的位置,并且可能需要知道要加载的DLL的哪个副本.这不是最容易弄清楚的事情,因此您可以将负担转移到操作系统:

  1. 自己加载DLL LoadLibrary.操作系统将使用其常规搜索算法来查找DLL.
  2. 调用GetModuleFileName以找出您加载的DLL的路径.
  3. 在与DLL相同的目录中打开INI文件.

(如果你的程序已经加载了DLL,因为它使用了DLL,那么你可以调用GetModuleHandle而不是LoadLibrary.)