// pch.cpp: 与预编译标头对应的源文件
#include "stdafx.h"
// 当使用预编译的头时,需要使用此源文件,编译才能成功。
//////////////////////////////////////////////////////////////////////////
// 用例;
HMODULE g_hdll = NULL;
irc_IsAppRunning g_IsAppRunning = NULL;
irc_StartIRApp g_StartIRApp = NULL;
irc_CloseApp g_CloseApp = NULL;
irc_Connect g_Connect = NULL;
irc_loadSignalDataSet g_loadSignalDataSet = NULL;
irc_getDeviceNames g_getDeviceNames = NULL;
irc_getSignalsName g_getSignalsName = NULL;
irc_sendSignal g_sendSignal = NULL;
irc_sendSignals g_sendSignals = NULL;
irc_sendRepeatsSignal g_sendRepeatsSignal = NULL;
int g_nIRControl = 0;
BOOL LoadLogLibarary()
{
if (g_hdll == NULL)
{
g_hdll = (HMODULE)LoadLibrary(_T("IRControl.dll"));
if (!g_hdll)
return FALSE;
}
g_sendRepeatsSignal = (irc_sendRepeatsSignal)GetProcAddress(g_hdll, "sendRepeatsSignal");
if (!g_sendRepeatsSignal)
{
FreeLogLibarary();
return FALSE;
}
g_sendSignals = (irc_sendSignals)GetProcAddress(g_hdll, "sendSignals");
if (!g_sendSignals)
{
FreeLogLibarary();
return FALSE;
}
g_sendSignal = (irc_sendSignal)GetProcAddress(g_hdll, "sendSignal");
if (!g_sendSignal)
{
FreeLogLibarary();
return FALSE;
}
g_loadSignalDataSet = (irc_loadSignalDataSet)GetProcAddress(g_hdll, "loadSignalDataSet");
if (!g_loadSignalDataSet)
{
FreeLogLibarary();
return FALSE;
}
g_IsAppRunning = (irc_IsAppRunning)GetProcAddress(g_hdll, "IsAppRunning");
if (!g_IsAppRunning)
{
FreeLogLibarary();
return FALSE;
}
g_StartIRApp = (irc_StartIRApp)GetProcAddress(g_hdll, "StartIRApp");
if (!g_StartIRApp)
{
FreeLogLibarary();
return FALSE;
}
g_CloseApp = (irc_CloseApp)GetProcAddress(g_hdll, "CloseApp");
if (!g_CloseApp)
{
FreeLogLibarary();
return FALSE;
}
g_getDeviceNames = (irc_getDeviceNames)GetProcAddress(g_hdll, "getDeviceNames");
if (!g_getDeviceNames)
{
FreeLogLibarary();
return FALSE;
}
g_Connect = (irc_Connect)GetProcAddress(g_hdll, "Connect");
if (!g_Connect)
{
FreeLogLibarary();
return FALSE;
}
g_getSignalsName = (irc_getSignalsName)GetProcAddress(g_hdll, "getSignalsName");
if (!g_getSignalsName)
{
FreeLogLibarary();
return FALSE;
}
// 导出全局变量;
g_nIRControl = *(int*)GetProcAddress(g_hdll, "nIRControl");
if (!g_CloseApp)
{
FreeLogLibarary();
return FALSE;
}
return TRUE;
}
void FreeLogLibarary()
{
if (g_hdll)
{
if (FreeLibrary(g_hdll))
{
g_hdll = NULL;
g_IsAppRunning = NULL;
g_StartIRApp = NULL;
g_CloseApp = NULL;
}
}
}