我设计了多个程序,这些程序同时尝试对文件进行锁定,以便可以从所有程序中设置母版。但是,该文件也是程序成为主程序时必须加载的dll。
这是代码:
bool takeLock(){
.....
if ((handle = CreateFileA(path.c_str(), GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL)) == INVALID_HANDLE_VALUE) {
return false;
}
return true;
}
....
HMODULE lib = LoadLibraryA(path);
我选择GENERIC_WRITE是因为我认为LoadLibrary不会写回dll。但是失败了。它还在GENERIC_READ上失败。
LoadLibrary是否适合锁定?