|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
#include <stdio.h>
|
|
Packit |
1fb8d4 |
#include <winpr/crt.h>
|
|
Packit |
1fb8d4 |
#include <winpr/path.h>
|
|
Packit |
1fb8d4 |
#include <winpr/tchar.h>
|
|
Packit |
1fb8d4 |
#include <winpr/windows.h>
|
|
Packit |
1fb8d4 |
#include <winpr/library.h>
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
int TestLibraryLoadLibrary(int argc, char* argv[])
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
HINSTANCE library;
|
|
Packit |
1fb8d4 |
LPCSTR SharedLibraryExtension;
|
|
Packit |
1fb8d4 |
CHAR LibraryPath[PATHCCH_MAX_CCH];
|
|
Packit |
1fb8d4 |
PCHAR p;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (!GetModuleFileNameA(NULL, LibraryPath, PATHCCH_MAX_CCH))
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
printf("%s: GetModuleFilenameA failed: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
|
|
Packit |
1fb8d4 |
return -1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
/* PathCchRemoveFileSpec is not implemented in WinPR */
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (!(p = strrchr(LibraryPath, PathGetSeparatorA(PATH_STYLE_NATIVE))))
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
printf("%s: Error identifying module directory path\n", __FUNCTION__);
|
|
Packit |
1fb8d4 |
return -1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
*p = 0;
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
NativePathCchAppendA(LibraryPath, PATHCCH_MAX_CCH, "TestLibraryA");
|
|
Packit |
1fb8d4 |
SharedLibraryExtension = PathGetSharedLibraryExtensionA(PATH_SHARED_LIB_EXT_WITH_DOT);
|
|
Packit |
1fb8d4 |
NativePathCchAddExtensionA(LibraryPath, PATHCCH_MAX_CCH, SharedLibraryExtension);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
printf("%s: Loading Library: '%s'\n", __FUNCTION__, LibraryPath);
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (!(library = LoadLibraryA(LibraryPath)))
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
printf("%s: LoadLibraryA failure: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
|
|
Packit |
1fb8d4 |
return -1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
if (!FreeLibrary(library))
|
|
Packit |
1fb8d4 |
{
|
|
Packit |
1fb8d4 |
printf("%s: FreeLibrary failure: 0x%08"PRIX32"\n", __FUNCTION__, GetLastError());
|
|
Packit |
1fb8d4 |
return -1;
|
|
Packit |
1fb8d4 |
}
|
|
Packit |
1fb8d4 |
|
|
Packit |
1fb8d4 |
return 0;
|
|
Packit |
1fb8d4 |
}
|