Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лаба 1-6 Системное программирование для ОС Windows [Вариант отсутствует, общий] / Лаба 4 / osisp_laba4 / LoadDatabase
.cpp#include "stdafx.h"
#include "LoadDatabase.h"
OPENDATABASEROUTINE openDatabaseRoutine;
CLOSEDATABASEROUTINE closeDatabaseRoutine;
SEARCHINDATABASEROUTINE searchInDatabaseRoutine;
FILLDATABASERECORD fillDatabaseRoutine;
extern HINSTANCE hInst;
extern HWND g_hMainWindow;
HMODULE g_hDatabaseLibrary;
const char *g_DatabasePtr = NULL;
int g_cRecordsInBase = 0;
BOOL LoadDatabaseDLL(void)
{
HMODULE hModule = LoadLibrary(TEXT("PhoneDB.dll"));
DWORD error = 0;
if (hModule == NULL)
error = GetLastError();
else {
openDatabaseRoutine = (OPENDATABASEROUTINE)GetProcAddress(hModule, "OpenDatabase");
closeDatabaseRoutine = (CLOSEDATABASEROUTINE)GetProcAddress(hModule, "CloseDatabase");
searchInDatabaseRoutine = (SEARCHINDATABASEROUTINE)GetProcAddress(hModule, "SearchInDatabase");
fillDatabaseRoutine = (FILLDATABASERECORD)GetProcAddress(hModule, "FillDatabaseRecord");
if (openDatabaseRoutine == NULL
|| closeDatabaseRoutine == NULL
|| searchInDatabaseRoutine == NULL
|| fillDatabaseRoutine == NULL)
error = GetLastError();
}
if (error) {
DWORD systemLocale = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL);
HLOCAL hlocal = NULL;
FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS |
FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL, GetLastError(), systemLocale,
(PTSTR) &hlocal, 0, NULL);
MessageBox(0, (TCHAR*)hlocal, NULL, MB_OK);
LocalFree(hlocal);
return FALSE;
} else
return TRUE;
}
BOOL GetFilename(TCHAR *szFile)
{
OPENFILENAME ofn;
memset(&ofn, 0, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hInstance = hInst;
ofn.hwndOwner = g_hMainWindow;
ofn.lpstrFilter = NULL;
ofn.lpstrCustomFilter = NULL;
ofn.lpstrFile = szFile;
ofn.nMaxFile = MAX_PATH * sizeof(*szFile);
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_OVERWRITEPROMPT;
ofn.lpstrTitle = NULL;
BOOL retval = GetOpenFileName(&ofn);
return retval;
}
Соседние файлы в папке osisp_laba4