コード例 #1
0
ファイル: SourceLoader.cpp プロジェクト: GamerCode/EasyRTMP
CSourceLoader::~CSourceLoader(void)
{
	/*
	CString szLibrary;
	CString szModule;

	for (POSITION pos = m_LibraryMap.GetStartPosition(); pos != NULL; )
	{
		szModule.Empty();
		m_LibraryMap.GetNextAssoc(pos, szLibrary, szModule);

		HMODULE_ hModule = (HMODULE_)atol((const char *)szModule);
		if (hModule) FreeLibrary(hModule);
	}
	*/
	map<const char*, HMODULE_>::iterator iter = m_LibraryMap.begin();
	while (iter != m_LibraryMap.end())
	{
		HMODULE_ hModule = (HMODULE_)iter->second;
		if (hModule) FreeLib(hModule);
		iter ++;
	}

	m_LibraryMap.clear();
	pthread_mutex_destroy(&m_csLock);
}
コード例 #2
0
ファイル: Wave.cpp プロジェクト: mygaldre/mmvari
//---------------------------------------------------------------------------
FARPROC __fastcall CXWave::GetProc(LPCSTR pName)
{
	if( !m_hLib ) return NULL;

	FARPROC fn = ::GetProcAddress(m_hLib, pName+1);
	if( fn == NULL ){
		fn = ::GetProcAddress(m_hLib, pName);
		if( fn == NULL ) FreeLib();
	}
	return fn;
}
コード例 #3
0
ファイル: Wave.cpp プロジェクト: mygaldre/mmvari
//---------------------------------------------------------------------------
__fastcall CXWave::~CXWave(void)
{
	if( m_nTimerID ){
		::KillTimer(NULL, m_nTimerID);
    }
	if( m_hLib ){
		fmmwOutAbort();
        fmmwInClose();
    }
	FreeLib();
}
コード例 #4
0
DynamicLib::~DynamicLib(void)
{
    //如果还保留着句柄 和 名称的话,进行清理
    if (m_hDynLib != NULL)
    {
        FreeLib();
    }
    
//    if (m_pszLibName != NULL)
//    {
//        free(m_pszLibName);
//        m_pszLibName = NULL;
//    }
}
コード例 #5
0
ファイル: Wave.cpp プロジェクト: mygaldre/mmvari
//---------------------------------------------------------------------------
__fastcall CXWave::CXWave(LPCSTR pName)
{
	m_ItemName = pName;
    m_nTimerID = 0;

	char Name[MAX_PATH];
	if( !*GetEXT(pName) ){
		wsprintf(Name, "%s.mmw", pName);
		pName = Name;
    }

	m_hLib = ::LoadLibrary(pName);
	if( m_hLib ){

		fmmwPumpMessages = PROC(mmwPumpMessages);
		fmmwSetPTT = PROC(mmwSetPTT);
		fmmwGetTimeout = PROC(mmwGetTimeout);

		fmmwInOpen = PROC(mmwInOpen);
		fmmwInClose = PROC(mmwInClose);
		fmmwInRead = PROC(mmwInRead);

		fmmwGetInExist = PROC(mmwGetInExist);
		fmmwIsInCritical = PROC(mmwIsInCritical);

		fmmwOutOpen = PROC(mmwOutOpen);
		fmmwOutAbort = PROC(mmwOutAbort);
		fmmwOutFlush = PROC(mmwOutFlush);
		fmmwOutWrite = PROC(mmwOutWrite);

		fmmwIsOutCritical = PROC(mmwIsOutCritical);
		fmmwIsOutFull = PROC(mmwIsOutFull);
		fmmwGetOutRemaining = PROC(mmwGetOutRemaining);
		fmmwGetOutCounter = PROC(mmwGetOutCounter);
		fmmwSetOutCounter = PROC(mmwSetOutCounter);


		if( !m_hLib ){
			FreeLib();
		}
        else {
			//m_nTimerID = ::SetTimer(NULL, 0, 50, (int (__stdcall *)())TimeProc);	//$$$
			m_nTimerID = SetTimer(NULL, 0, 50, TimeProc);
		}
	}
}
コード例 #6
0
ファイル: winio.cpp プロジェクト: matrix207/VC
void winio_clean()
{
	if (pShutdownWinIo)	pShutdownWinIo();
	FreeLib();
}