stdafx.cpp 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. // pch.cpp: 与预编译标头对应的源文件
  2. #include "stdafx.h"
  3. // 当使用预编译的头时,需要使用此源文件,编译才能成功。
  4. //////////////////////////////////////////////////////////////////////////
  5. // 用例;
  6. HMODULE g_hdll = NULL;
  7. irc_IsAppRunning g_IsAppRunning = NULL;
  8. irc_StartIRApp g_StartIRApp = NULL;
  9. irc_CloseApp g_CloseApp = NULL;
  10. irc_Connect g_Connect = NULL;
  11. irc_loadSignalDataSet g_loadSignalDataSet = NULL;
  12. irc_getDeviceNames g_getDeviceNames = NULL;
  13. irc_getSignalsName g_getSignalsName = NULL;
  14. irc_sendSignal g_sendSignal = NULL;
  15. irc_sendSignals g_sendSignals = NULL;
  16. irc_sendRepeatsSignal g_sendRepeatsSignal = NULL;
  17. int g_nIRControl = 0;
  18. BOOL LoadLogLibarary()
  19. {
  20. if (g_hdll == NULL)
  21. {
  22. g_hdll = (HMODULE)LoadLibrary(_T("IRControl.dll"));
  23. if (!g_hdll)
  24. return FALSE;
  25. }
  26. g_sendRepeatsSignal = (irc_sendRepeatsSignal)GetProcAddress(g_hdll, "sendRepeatsSignal");
  27. if (!g_sendRepeatsSignal)
  28. {
  29. FreeLogLibarary();
  30. return FALSE;
  31. }
  32. g_sendSignals = (irc_sendSignals)GetProcAddress(g_hdll, "sendSignals");
  33. if (!g_sendSignals)
  34. {
  35. FreeLogLibarary();
  36. return FALSE;
  37. }
  38. g_sendSignal = (irc_sendSignal)GetProcAddress(g_hdll, "sendSignal");
  39. if (!g_sendSignal)
  40. {
  41. FreeLogLibarary();
  42. return FALSE;
  43. }
  44. g_loadSignalDataSet = (irc_loadSignalDataSet)GetProcAddress(g_hdll, "loadSignalDataSet");
  45. if (!g_loadSignalDataSet)
  46. {
  47. FreeLogLibarary();
  48. return FALSE;
  49. }
  50. g_IsAppRunning = (irc_IsAppRunning)GetProcAddress(g_hdll, "IsAppRunning");
  51. if (!g_IsAppRunning)
  52. {
  53. FreeLogLibarary();
  54. return FALSE;
  55. }
  56. g_StartIRApp = (irc_StartIRApp)GetProcAddress(g_hdll, "StartIRApp");
  57. if (!g_StartIRApp)
  58. {
  59. FreeLogLibarary();
  60. return FALSE;
  61. }
  62. g_CloseApp = (irc_CloseApp)GetProcAddress(g_hdll, "CloseApp");
  63. if (!g_CloseApp)
  64. {
  65. FreeLogLibarary();
  66. return FALSE;
  67. }
  68. g_getDeviceNames = (irc_getDeviceNames)GetProcAddress(g_hdll, "getDeviceNames");
  69. if (!g_getDeviceNames)
  70. {
  71. FreeLogLibarary();
  72. return FALSE;
  73. }
  74. g_Connect = (irc_Connect)GetProcAddress(g_hdll, "Connect");
  75. if (!g_Connect)
  76. {
  77. FreeLogLibarary();
  78. return FALSE;
  79. }
  80. g_getSignalsName = (irc_getSignalsName)GetProcAddress(g_hdll, "getSignalsName");
  81. if (!g_getSignalsName)
  82. {
  83. FreeLogLibarary();
  84. return FALSE;
  85. }
  86. // 导出全局变量;
  87. g_nIRControl = *(int*)GetProcAddress(g_hdll, "nIRControl");
  88. if (!g_CloseApp)
  89. {
  90. FreeLogLibarary();
  91. return FALSE;
  92. }
  93. return TRUE;
  94. }
  95. void FreeLogLibarary()
  96. {
  97. if (g_hdll)
  98. {
  99. if (FreeLibrary(g_hdll))
  100. {
  101. g_hdll = NULL;
  102. g_IsAppRunning = NULL;
  103. g_StartIRApp = NULL;
  104. g_CloseApp = NULL;
  105. }
  106. }
  107. }