我正在創建兩個獨立的C++ .dll,它們都與同一塊硬件對話。如果兩者都同時連接,則它們的命令會混淆並且硬件的行爲不正確。所以我需要確保只有一個連接到硬件(即使兩個DLL都被加載並運行)。.DLL暴露全系統狀態的方法(Windows)
這是到目前爲止我的想法:
-
連接之前
- ,該DLL創建了一個已知的位置
- 當DLL連接,它會尋找其他DLL的文件,並拒絕連接,如果文件它是存在的。
- 斷開連接後,DLL刪除其文件。
這似乎很簡單,但我想知道是否有更好的方法?某種類型的DLL可以定義的系統範圍的變量?簡單是關鍵 - 代碼的線越少越好。
你可以添加一些示例代碼? – japreiss 2012-03-13 21:34:52
當然:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686927(v=vs.85).aspx – SecurityMatt 2012-03-13 21:36:36
該代碼在全局句柄變量中使用未命名的互斥體進行線程同步。我想使用一個已命名的互斥體作爲標誌變量而不共享任何句柄。這個例子不相關。 – japreiss 2012-03-13 21:40:35