Добавил:
Kaz
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лаба 6 Лабораторная работа 6 (МПиМК) / dll / dll
.cpp// dll.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
#include <stdio.h>
#define FNAME0 "file0.txt"
#define FNAME1 "file1.txt"
#define RES0 "file0.txt LONGER than file1.txt"
#define RES1 "file0.txt SHORTER than file1.txt"
#define RES2 "file0.txt EQUAL file1.txt"
#define RES3 "file0.txt > file1.txt"
#define RES4 "file0.txt < file1.txt"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
HANDLE hfile0, hfile1;
DWORD dwSize0, dwSize1;
char cRes[280];
char *pRes;
char c0, c1;
DWORD r0, r1;
if(ul_reason_for_call == DLL_PROCESS_ATTACH)
{
hfile0 = CreateFile(FNAME0, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0);
hfile1 = CreateFile(FNAME1, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, 0);
if(hfile0 == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "File open error: file0.txt", "Error", MB_OK);
return FALSE;
}
if(hfile1 == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "File open error: file1.txt", "Error", MB_OK);
CloseHandle(hfile0);
return FALSE;
}
dwSize0 = GetFileSize(hfile0, NULL);
dwSize1 = GetFileSize(hfile1, NULL);
if(dwSize0 != dwSize1)
if(dwSize0 > dwSize1) pRes = RES0;
else pRes = RES1;
else
{
while(TRUE)
{
ReadFile(hfile0, &c0, 1, &r0, NULL);
ReadFile(hfile1, &c1, 1, &r1, NULL);
if(!r0)
{
pRes = RES2;
break;
}
if(c0 > c1)
{
pRes = RES3;
break;
}
if(c0 < c1)
{
pRes = RES4;
break;
}
}
}
sprintf(cRes, "file0.txt size: %4u; file1.txt size: %4u\nResult: %s", dwSize0, dwSize1, pRes);
MessageBox(NULL, cRes, "Results", MB_OK);
CloseHandle(hfile0);
CloseHandle(hfile1);
}
return TRUE;
}