.


:




:

































 

 

 

 





, (run-time linking), , , DLL. . ; . . : LoadLibrary ( LoadLibraryEx), GetProcAddress FreeLibrary. 16- (far) .

: LoadLibrary LoadLibraryEx.

HINSTANCE LoadLibrary(LPCTSTR lpLibFileName)

HINSTANCE LoadLibraryEx(LPCTSTR lpLibFileName, HANDLE hFile, DWORD dwFlags)

( HINSTANCE, HANDLE) NULL. .DLL . LoadLibrary .-. (\); (/) .

DLL , DLL ( ), . LoadLibrary .DLL-, DLL DLL, .

LoadLibraryEx LoadLibrary, , . hFile . dwFlags :

1. LOAD_WITH_ALTERED_SEARCH_PATH: , . , , , lpLibFileName.

2. LOAD_LIBRARY_AS_DATAFILE: - , DllMain (. " DLL" ).

3. DONT_RESOLVE_DLL_REFERENCE: DllMain ; , DLL, .

DLL , , , . DLL , , .

BOOL FreeLibrary(HINSTANCE hLibModule)

, , , GetProcAddress.

FARPROC GetProcAddress(HMODULE hModule, LPCSTR lpProcName)

hModule, (HINSTANCE HMODULE), (instance) , LoadLibrary GetModuleHandle (. ). lpProcName , ; Unicode. NULL. FARPROC, " ", .

, hHandle, GetModuleFileName. : (.DLL .EXE) GetModuleHandle , , .

, .

:

2.4, ASCII Unicode, Asc2Un ( 2.5), /. 5.3 (Asc2UnMM) , . , Asc2UnMM , ; , NTFS, .

5.7 , , , . DLL, Asc2Un . , . , , , , , DLL, , . 5.9 , DLL . , FARPROC , , .

5.7. atouEL:

/* 5. atou, . */

#include "EvryThng.h"

 

int _tmain(int argc, LPTSTR argv[]) {

/* Asc2Un . */

BOOL (*Asc2Un)(LPCTSTR, LPCTSTR, BOOL);

DWORD LocFileIn, LocFileOut, LocDLL, DashI;

HINSTANCE hDLL;

FARPROC pA2U;

LocFileIn = Options(argc, argv, _T("i"), &DashI, NULL);

LocFileOut = LocFileIn + 1;

LocDLL = LocFileOut + 1;

/* , DashI. */

/* ASCII Unicode. */

hDLL = LoadLibrary(argv[LocDLL]);

if (hDLL == NULL) ReportError(_T("He DLL."), 1, TRUE);

/* . */

pA2U = GetProcAddress(hDLL, "Asc2Un");

if (pA2U == NULL) ReportError(_T("He ."), 2, TRUE);

/* . typedef. */

Asc2Un = (BOOL(*)(LPCTSTR, LPCTSTR, BOOL))pA2U;

/* . */

Asc2Un(argv[LocFileIn], argv[LocFileOut], FALSE);

FreeLibrary(hDLL);

return 0;

}





:


: 2015-09-20; !; : 685 |


:

:

: , .
==> ...

1947 - | 1569 -


© 2015-2024 lektsii.org - -

: 0.01 .