TestWizardDLL.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. #include "stdafx.h"
  2. #include "TestWizardDLL.h"
  3. namespace TW {
  4. HMODULE g_hdll = NULL;
  5. OPEN_XML OpenXml = NULL;
  6. LOAD_XML LoadXml = NULL;
  7. ADD_ITEM AddItem = NULL;
  8. DEL_ITEM DelItem = NULL;
  9. REMOVEALL_ITEM RemoveAllItem = NULL;
  10. SAVE_XML Save2Xml = NULL;
  11. OPEN_DEVICE OpenDevice = NULL;
  12. CLOSE_DEVICE CloseDevice = NULL;
  13. SEND_KEY SendKey = NULL;
  14. SEND_KEY SendCmd = NULL;
  15. GETSIGNALSNAME GetSignalsName = NULL;
  16. OPEN_SWITCH OpenSwitch = NULL;
  17. CLOSE_SWITCH CloseSwitch = NULL;
  18. SEND_SWITCH SendSwitch = NULL;
  19. BOOL LoadLibrary()
  20. {
  21. if (g_hdll == NULL) {
  22. g_hdll = (HMODULE)::LoadLibrary(_T("TestWizard.dll"));
  23. if (!g_hdll)
  24. return FALSE;
  25. }
  26. OpenXml = (OPEN_XML)GetProcAddress(g_hdll, "OpenXML");
  27. if (!OpenXml)
  28. {
  29. UnloadLibrary();
  30. return FALSE;
  31. }
  32. LoadXml = (LOAD_XML)GetProcAddress(g_hdll, "LoadXML");
  33. if (!LoadXml)
  34. {
  35. UnloadLibrary();
  36. return FALSE;
  37. }
  38. AddItem = (ADD_ITEM)GetProcAddress(g_hdll, "AddItem");
  39. if (!AddItem)
  40. {
  41. UnloadLibrary();
  42. return FALSE;
  43. }
  44. DelItem = (DEL_ITEM)GetProcAddress(g_hdll, "DelItem");
  45. if (!DelItem)
  46. {
  47. UnloadLibrary();
  48. return FALSE;
  49. }
  50. RemoveAllItem = (REMOVEALL_ITEM)GetProcAddress(g_hdll, "RemoveAllItem");
  51. if (!RemoveAllItem)
  52. {
  53. UnloadLibrary();
  54. return FALSE;
  55. }
  56. Save2Xml = (SAVE_XML)GetProcAddress(g_hdll, "Save2XML");
  57. if (!Save2Xml)
  58. {
  59. UnloadLibrary();
  60. return FALSE;
  61. }
  62. OpenDevice = (OPEN_DEVICE)GetProcAddress(g_hdll, "OpenDevice");
  63. if (!OpenDevice)
  64. {
  65. UnloadLibrary();
  66. return FALSE;
  67. }
  68. CloseDevice = (CLOSE_DEVICE)GetProcAddress(g_hdll, "CloseDevice");
  69. if (!CloseDevice)
  70. {
  71. UnloadLibrary();
  72. return FALSE;
  73. }
  74. SendKey = (SEND_KEY)GetProcAddress(g_hdll, "SendKey");
  75. if (!SendKey)
  76. {
  77. UnloadLibrary();
  78. return FALSE;
  79. }
  80. SendCmd = (SEND_CMD)GetProcAddress(g_hdll, "SendCmd");
  81. if (!SendCmd)
  82. {
  83. UnloadLibrary();
  84. return FALSE;
  85. }
  86. GetSignalsName = (GETSIGNALSNAME)GetProcAddress(g_hdll, "GetSignalsName");
  87. if (!GetSignalsName)
  88. {
  89. UnloadLibrary();
  90. return FALSE;
  91. }
  92. // usb switch
  93. OpenSwitch = (OPEN_SWITCH)GetProcAddress(g_hdll, "OpenUsbSwitch");
  94. if (!OpenSwitch)
  95. {
  96. UnloadLibrary();
  97. return FALSE;
  98. }
  99. CloseSwitch = (CLOSE_SWITCH)GetProcAddress(g_hdll, "CloseUsbSwitch");
  100. if (!CloseSwitch)
  101. {
  102. UnloadLibrary();
  103. return FALSE;
  104. }
  105. SendSwitch = (SEND_SWITCH)GetProcAddress(g_hdll, "SendSwitch");
  106. if (!SendSwitch)
  107. {
  108. UnloadLibrary();
  109. return FALSE;
  110. }
  111. return TRUE;
  112. }
  113. void UnloadLibrary()
  114. {
  115. if (g_hdll) {
  116. if (FreeLibrary(g_hdll)) {
  117. g_hdll = NULL;
  118. OpenXml = NULL;
  119. LoadXml = NULL;
  120. AddItem = NULL;
  121. DelItem = NULL;
  122. RemoveAllItem = NULL;
  123. Save2Xml = NULL;
  124. OpenDevice = NULL;
  125. CloseDevice = NULL;
  126. SendKey = NULL;
  127. SendCmd = NULL;
  128. GetSignalsName = NULL;
  129. OpenSwitch = NULL;
  130. SendSwitch = NULL;
  131. CloseSwitch = NULL;
  132. }
  133. }
  134. }
  135. }